在 ffmpeg 中将 .mkv 转换为 .gif 格式,改变字幕开始时间

在 ffmpeg 中将 .mkv 转换为 .gif 格式,改变字幕开始时间

关注@LordNeckbeard建议,我可以为 gif 添加字幕轨道,但是字幕轨道包含在 .mkv 文件中。我可以调整输入文件的开始时间,但是字幕轨道从头开始。

生成调色板后,创建 gif 的命令是:

ffmpeg -v warning -ss $start_time -t $duration -i video.mkv -i $palette -filter_complex "fps=60,scale=720:-1:flags=lanczos, subtitles=video.mkv [x]; [x][1:v] paletteuse" -y "$outputfile"

但是字幕过滤器没有转到 $start_time。有没有办法在过滤器中指定它?还是我需要先提取字幕文件并编辑它以从适当的部分开始?

答案1

使用快速寻道时,ffmpeg 不会解码或筛选帧直到达到开始时间。因此,当(字幕)过滤器启动时,它会从 SRT 的开头开始。通过将ss和放置t在输入之后切换到慢速搜索可获得您想要的行为。

ffmpeg -v warning -i video.mkv -i $palette -ss $start_time -t $duration -filter_complex "fps=60,scale=720:-1:flags=lanczos, subtitles=video.mkv [x]; [x][1:v] paletteuse" -y "$outputfile

相关内容