我检查了FFmpeg的文档和许多论坛,并计算出正确的命令行来从.MP4视频中提取的字幕看起来应该像这样:是否可以使用ffmpeg从MP4视频中提取SubRip(SRT)字幕?
ffmpeg -i video.mp4 -vn -an -codec:s:0 srt out.srt
不过,我得到下面的错误,这使它我质疑是否可行在所有:
错误而输出流#0开口编码器:0 - 也许不正确的参数 如BIT_RATE,速率,宽度或高度
使用ffmpeg -codecs
,我可以确认ffmpeg应该能够编码子标题字幕。
使用ffmpeg -i video.mp4
,我可以看到,有嵌入在视频2个字幕轨道:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
...
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1/0x31637661), yuv420p, 720x572 [SAR 64:45 DAR 256:143], 1341 kb/s, 25 fps, 25 tbr, 90k tbn, 180k tbc
Stream #0:1(eng): Audio: aac (mp4a/0x6134706D), 48000 Hz, stereo, fltp, 191 kb/s
Stream #0:2(fra): Audio: aac (mp4a/0x6134706D), 48000 Hz, stereo, fltp, 191 kb/s
Stream #0:3(eng): Subtitle: dvd_subtitle (mp4s/0x7334706D)
Stream #0:4(und): Subtitle: mov_text (text/0x74786574)
EDIT
我与评价,但我所示的简化的命令行测试仍然会得到相同的错误。这里是a link to the detailed verbose output运行命令。我也尝试完全禁用结果输出中的元数据和章节,但仍然产生相同的错误。
简单的'ffmpeg -i in.mp4 out.srt'正确工作。 (ffmpeg 2.0.1) – pogorskiy
尝试'ffmpeg ... -loglevel debug ...'以获取有关错误的更多信息 – pogorskiy
我已经尝试了这两个建议,但我无法确定一个明显的错误。也许这是由ffmpeg试图在生成的srt文件中输出章节标记引起的?我已经包含了详细的调试输出。 –