@ -294,7 +294,7 @@ namespace MediaBrowser.Api.Playback
{
if ( isWebm )
{
return Math . Max ( Environment . ProcessorCount - 1 , 1 ) ;
return Math . Max ( Environment . ProcessorCount - 1 , 2 ) ;
}
return 0 ;
@ -309,9 +309,9 @@ namespace MediaBrowser.Api.Playback
case EncodingQuality . HighSpeed :
return 2 ;
case EncodingQuality . HighQuality :
return isWebm ? Math . Max ( Environment . ProcessorCount - 1 , 1 ) : 0 ;
return isWebm ? Math . Max ( Environment . ProcessorCount - 1 , 2 ) : 0 ;
case EncodingQuality . MaxQuality :
return isWebm ? Math . Max ( Environment . ProcessorCount - 1 , 1 ) : 0 ;
return isWebm ? Math . Max ( Environment . ProcessorCount - 1 , 2 ) : 0 ;
default :
throw new Exception ( "Unrecognized MediaEncodingQuality value." ) ;
}
@ -1005,8 +1005,8 @@ namespace MediaBrowser.Api.Playback
}
// With vpx when crf is used, b:v becomes a max rate
// https://trac.ffmpeg.org/wiki/vpxEncodingGuide
return string . Format ( " - b:v {0}", bitrate . Value . ToString ( UsCulture ) ) ;
// https://trac.ffmpeg.org/wiki/vpxEncodingGuide . But higher bitrate source files -b:v causes judder so limite the bitrate but dont allow it to "saturate" the bitrate. So dont contrain it down just up.
return string . Format ( " - maxrate:v {0} -bufsize:v ({0}*2) - b:v {0}", bitrate . Value . ToString ( UsCulture ) ) ;
}
if ( string . Equals ( videoCodec , "msmpeg4" , StringComparison . OrdinalIgnoreCase ) )