|
|
|
@ -1239,10 +1239,9 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|
|
|
|
// Example: we encoded half of desired length, then codec detected
|
|
|
|
|
// scene cut and inserted a keyframe; next forced keyframe would
|
|
|
|
|
// be created outside of segment, which breaks seeking.
|
|
|
|
|
// -sc_threshold 0 is used to prevent the hardware encoder from post processing to break the set keyframe.
|
|
|
|
|
gopArg = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
" -g:v:0 {0} -keyint_min:v:0 {0} -sc_threshold:v:0 0",
|
|
|
|
|
" -g:v:0 {0} -keyint_min:v:0 {0}",
|
|
|
|
|
Math.Ceiling(segmentLength * framerate.Value));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1262,6 +1261,12 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|
|
|
|
|| string.Equals(codec, "hevc_vaapi", StringComparison.OrdinalIgnoreCase))
|
|
|
|
|
{
|
|
|
|
|
args += keyFrameArg;
|
|
|
|
|
|
|
|
|
|
// prevent the libx264 from post processing to break the set keyframe.
|
|
|
|
|
if (string.Equals(codec, "libx264", StringComparison.OrdinalIgnoreCase))
|
|
|
|
|
{
|
|
|
|
|
args += " -sc_threshold:v:0 0";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|