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

问题描述

我正在尝试为视频的较短部分刻录字幕,但使用 subtitles 过滤器始终从字幕流的开头开始,而不是在指定的开始时间,即使从相同的视频。

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

/etc/passwd

使用基于图片的字幕和覆盖过滤器时,这不是问题,例如:

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

它似乎只影响基于文本的字幕。我不知道这是否是不可能的,是否需要另一种解决方案,或者我是否走错了路。任何帮助表示赞赏!

解决方法

问题是我使用了“快速搜索”时间,也就是在输入之前设置它,这似乎与 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