stop judder in higher bitrate source files by constraining up but not down

This commit is contained in:
tikuf 2014-04-02 17:53:50 +11:00
parent 9ff262bc2a
commit fcff9a6df5

View File

@ -294,7 +294,7 @@ namespace MediaBrowser.Api.Playback
{ {
if (isWebm) if (isWebm)
{ {
return Math.Max(Environment.ProcessorCount - 1, 1); return Math.Max(Environment.ProcessorCount - 1, 2);
} }
return 0; return 0;
@ -309,9 +309,9 @@ namespace MediaBrowser.Api.Playback
case EncodingQuality.HighSpeed: case EncodingQuality.HighSpeed:
return 2; return 2;
case EncodingQuality.HighQuality: case EncodingQuality.HighQuality:
return isWebm ? Math.Max(Environment.ProcessorCount - 1, 1) : 0; return isWebm ? Math.Max(Environment.ProcessorCount - 1, 2) : 0;
case EncodingQuality.MaxQuality: case EncodingQuality.MaxQuality:
return isWebm ? Math.Max(Environment.ProcessorCount - 1, 1) : 0; return isWebm ? Math.Max(Environment.ProcessorCount - 1, 2) : 0;
default: default:
throw new Exception("Unrecognized MediaEncodingQuality value."); 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 // With vpx when crf is used, b:v becomes a max rate
// https://trac.ffmpeg.org/wiki/vpxEncodingGuide // 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(" -b:v {0}", bitrate.Value.ToString(UsCulture)); return string.Format(" -maxrate:v {0} -bufsize:v ({0}*2) -b:v {0}", bitrate.Value.ToString(UsCulture));
} }
if (string.Equals(videoCodec, "msmpeg4", StringComparison.OrdinalIgnoreCase)) if (string.Equals(videoCodec, "msmpeg4", StringComparison.OrdinalIgnoreCase))