我试图使用ffmpeg向.mp4容器添加文本字幕:
ffmpeg -i input.mp4 -i input.srt -map 0.0 -map 0.1 -map 1.0 output.mp4
当我试图运行这一行时,它会给我一个错误:
流映射的nmber必须匹配输出流的数目。
如果我试图将MP4更改为MKV(尽管MP4支持文本字幕),如下所示:
ffmpeg -i input.mp4 -i input.srt -map 0.0 -map 0.1 -map 1.0 output.mkv
它正确地映射了流,但是给出了一个错误:
输出流#0.2找不到编码器(编解码id 94210)
当我写
ffmpeg -codecs
我可以看到SRT编解码器被支持作为解码器和编码器,但是我不确定MP4和MKV子编码使用什么,以及我是需要打开它还是单独编译它。
发布于 2018-05-25 13:20:59
ffmpeg -i infile.mp4 -i infile.srt -c copy -c:s mov_text outfile.mp4
-vf subtitles=infile.srt
将无法使用 -c copy
-c copy -c:s mov_text
顺序很重要。你在告诉FFmpeg:
如果你反转它们,你告诉FFmpeg:
或者,可以按任何顺序使用-c:v copy -c:a copy -c:s mov_text
。
发布于 2018-05-25 14:29:10
使用libass库(确保你的ffmpeg install在配置--enable-libass中有库)。
首先将字幕转换为.ass格式:
ffmpeg -i subtitles.srt subtitles.ass
然后使用视频过滤器添加它们:
ffmpeg -i mymovie.mp4 -vf ass=subtitles.ass mysubtitledmovie.mp4
https://stackoverflow.com/questions/-100004105
复制相似问题