我想剪切 MKV 的一部分并将其编码为 MP4,同时刻录字幕。
但我不知道如何一次性完成所有操作(相关问题),于是我就一步步尝试起来。
当我首先剪切 MKV,然后将其编码为 MP4 时,它不会硬编码字幕。剪切的 MKV 容器仍保留字幕。我尝试了内部字幕和外部字幕。
测试 1(失败):直接来自 MKV 的字幕
ffmpeg -i konosuba.mkv -ss 180 -t 30 test.mkv
ffmpeg -i test.mkv -vf subtitles=test.mkv test2.mp4
测试 2(失败):外部字幕
ffmpeg -i konosuba.mkv -ss 180 -t 30 test.mkv
ffmpeg -i test.mkv -map 0:s:0 subs.ass
ffmpeg -i test.mkv -vf subtitles=subs.ass test2.mp4
当我首次将整个 MKV 编码为 MP4 时,它成功地对字幕进行了硬编码,之后我可以对其进行剪切。但是对于较大的源文件,这需要更长的时间 :(
- 测试 3(成功)
ffmpeg -i konosuba.mkv -vf subtitles=konosuba.mkv test.mp4
ffmpeg -i test.mp4 -ss 180 -t 30 test2.mp4
- 测试 3(成功)
我是不是做错了什么?我真的不明白为什么我不能刻录字幕,除非在编码原始 MKV 容器时不进行剪切。
编辑:仅尝试刻录字幕对我来说似乎不起作用(日志)
ffmpeg -i test2.mp4 -vf subtitles=subs.ass test3.mp4
日志:https://gist.github.com/anonymous/d2eb6f09fabba88afe86bd4607b048a4
建造:https://ffmpeg.zeranoe.com/builds/
操作系统:Windows 10 v1607
https://trac.ffmpeg.org/wiki/HowToBurnSubtitlesIntoVideo
https://ffmpeg.org/ffmpeg-filters.html#subtitles-1
答案1
只需将test3的两个命令合并即可:
ffmpeg -i konosuba.mkv -ss 180 -t 30 -vf subtitles=konosuba.mkv test.mp4