【发布时间】:2014-01-07 17:43:48
【问题描述】:
我检查了 FFMpeg 文档和许多论坛,发现从 .MP4 视频中提取字幕的正确命令行应该如下所示:
ffmpeg -i video.mp4 -vn -an -codec:s:0 srt out.srt
但是,我收到以下错误,这让我怀疑这是否可行:
为输出流 #0:0 打开编码器时出错 - 参数可能不正确 比如bit_rate、rate、width或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)
编辑
我已经使用 cmets 中显示的简化命令行进行了测试,但仍然遇到相同的错误。这是运行命令的a link to the detailed verbose output。我还尝试在结果输出中完全禁用元数据和章节,但仍然会产生相同的错误。
【问题讨论】:
-
简单的
ffmpeg -i in.mp4 out.srt对我有效。 (ffmpeg 2.0.1) -
尝试
ffmpeg ... -loglevel debug ...以获取有关错误的更多信息 -
我已经尝试了这两个建议,但我无法确定一个明显的错误。也许这是由于 ffmpeg 试图在生成的 srt 文件中输出章节标记引起的?我已经包含了详细的调试输出。
-
也看不到任何明显的东西,但可以尝试ffmpeg.org/download.html 的更新版本并使用
ffmpeg -i video.mp4 -map 0:s:0 output.srt仅使用第一个字幕流作为输出。 (顺便说一句,ffmpeg CLI 问题与 SO 无关,所以我投票将其移至 Super User。) -
对不起,我的帖子离题了。我会确保在 SU 中提出这类问题。我将尝试更新版本的 ffmpeg。干杯。
标签: ffmpeg extract subtitle srt