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
我正在尝试为视频的较短部分嵌入字幕,但使用 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