Normalize invalid PTS from containers for Trickplay generation
This change does not affect the keyframe only mode. Signed-off-by: nyanmisaka <nst799610810@gmail.com>
This commit is contained in:
@@ -926,6 +926,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(
|
||||
|
||||
Reference in New Issue
Block a user