FFmpeg 字幕过滤器设置开始时间

FFmpeg subtitle filter set start time

我正在尝试为视频的较短部分嵌入字幕,但使用 subtitles 过滤器总是从字幕流的开头开始,而不是在指定的开始时间,即使在复制时也是如此来自同一视频。

例如,如果我开始对电影进行 10 分钟的编码,视频将从那里正确设置,但字幕将从头开始(在这种情况下偏移 10 分钟)。

ffmpeg -y -ss 600.0 -to 660.0 -i movie.mkv -filter_complex "[0:0]subtitles='movie.mkv':si=1[v]" -map "[v]" -c:v libx265 -crf 22 output.mkv

这在使用基于图片的字幕和叠加滤镜时不是问题,例如:

-filter_complex "[0:0][0:2]overlay[v]"

它似乎只影响基于文本的字幕。我不知道这是否不可能并且需要其他解决方案,或者我是否正在接近它。感谢您的帮助!

问题是我使用的是“快速搜索”时间,也就是在输入之前设置它,这似乎与 subtitle 过滤器不兼容。这意味着 -ss-to 需要在输入 -i movie.mkv

之后移动
ffmpeg -y  -i movie.mkv -ss 600.0 -to 660.0 -filter_complex "[0:0]subtitles='movie.mkv':si=1[v]" -map "[v]" -c:v libx265 -crf 22 output.mkv