vij*_*jay 53 ffmpeg extract subtitles
我试图从视频中提取字幕作为.srt文件,我使用了以下命令:
FFMPEG -i mytestmovie.mkv -vn -an -codec:s:0.1 srt sub.srt
Run Code Online (Sandbox Code Playgroud)
但是,我收到了一个错误为无法识别的选项codec:s:0:1
那么,你能告诉我确切的命令以及如何.srt在视频中将字幕提取为文件吗?
jm3*_*jm3 93
简单的:
ffmpeg -i Movie.mkv -map 0:s:0 subs.srt
Run Code Online (Sandbox Code Playgroud)
evi*_*oup 10
-codec:s:0:1是不正确的。如果您使用,-codec:s:0则 ffmpeg 将使用规定的编解码器用于传递到输出的第一个字幕流,如果您使用,-codec:s:1则它将用于第二个字幕流,依此类推。
您还可以使用-codec:s选择所有输出字幕流,或-codec:2选择第三个输出流,无论它是什么。
您可能会感到困惑,因为该-map选项的行为方式不同 - 在那里,您必须选择所选流来自哪个输入。(因此,-map 0:s:0将从第一个输入中获取第一个字幕流,并将其提供给输出)。但是,-map用于选择要从输入中获取哪些流;而使用流映射的大多数其他选项在被选择后用于流(因此无需指定它们来自哪个输入文件),因为它们被传递到输出。
ffmpeg -i video.mkv subs.srt
Run Code Online (Sandbox Code Playgroud)
很邪恶吧?
刚刚为我工作,为一堆包含单个 SRT 流的 MKV。显然这是默认行为。我的 ffmpeg 版本是 20170516,来自 ubuntu 16.4
情况 1 - 视频中的单个字幕:
# as by Berry Tsakala
> ffmpeg -i video.mkv subs.srt
Run Code Online (Sandbox Code Playgroud)
情况 2 - 多个字幕:
> ffprobe video.mkv
Stream #0:0(eng): Video: h264 (Main)...
Stream #0:1(rus): Audio: ac3, 48000 Hz...
Stream #0:2(eng): Audio: eac3, 48000 Hz...
Stream #0:3(rus): Subtitle: subrip
Stream #0:4(eng): Subtitle: subrip <-- wanted subs
Stream #0:5(eng): Subtitle: subrip
Stream #0:6(eng): Subtitle: subrip
Run Code Online (Sandbox Code Playgroud)
然后如果你想要流0:4,那么只需使用0:4:
ffmpeg -i video.mkv -map 0:4 subs.srt
Run Code Online (Sandbox Code Playgroud)
在这种情况下,这个0:s:0概念对我来说看起来毫无用处,因为它让我们在头脑中进行计算。
| 归档时间: |
|
| 查看次数: |
97593 次 |
| 最近记录: |