Merge pull request #17304 from nyanmisaka/normalize-invalid-pts-for-trickplay

Normalize invalid PTS from containers for Trickplay generation
This commit is contained in:
Bond-009
2026-07-20 08:36:25 +02:00
committed by GitHub
@@ -928,6 +928,25 @@ namespace MediaBrowser.MediaEncoding.Encoder
throw new InvalidOperationException("EncodingHelper returned empty or invalid filter parameters.");
}
// Normalize invalid PTS from containers for non keyframe only mode
if (!enableKeyFrameOnlyExtraction)
{
var fpsFilterIndex = filterParam.IndexOf("fps=", StringComparison.Ordinal);
if (fpsFilterIndex >= 0)
{
var inputFrameRate = (imageStream.ReferenceFrameRate.HasValue && imageStream.ReferenceFrameRate > 0)
? imageStream.ReferenceFrameRate.Value : 30;
var setPtsFilter = string.Create(CultureInfo.InvariantCulture, $"setpts=N/{inputFrameRate:F3}/TB,");
filterParam = filterParam.Insert(fpsFilterIndex, setPtsFilter);
}
else
{
throw new InvalidOperationException("EncodingHelper returned invalid filter parameters.");
}
}
try
{
return await ExtractVideoImagesOnIntervalInternal(