我已经查看了FFMpeg文档和许多论坛,并找到正确的命令行来从.MP4视频中提取字幕,应该是这样的:
ffmpeg -i video.mp4 -vn -an -codec:s:0 srt out.srt
然而,我遇到了以下错误,这让我怀疑这是否可行:
Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
使用ffmpeg -codecs
,我可以确认ffmpeg应该能够编码subrip字幕。
使用ffmpeg -i video.mp4
,我可以看到视频中嵌入了两个字幕轨道:
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)
编辑
我已经尝试了在评论中给出的简化命令行,但仍然遇到相同的错误。在此处提供详细的详细输出链接以便查看运行该命令所产生的详细信息。我还尝试完全禁用结果输出中的元数据和章节,但仍然会产生相同的错误。
ffmpeg -i in.mp4 out.srt
命令可以正确地工作。(ffmpeg 版本为 2.0.1) - pogorskiyffmpeg ... -loglevel debug ...
获取有关错误的更多信息。 - pogorskiy