是否可以使用一个命令(同时)提取所有字幕轨道?
我们可以使用ffmpeg -i <video file> -map 0:s:<index> subs.srt
,但如果我们有带有许多字幕的视频容器文件,我们必须多次执行此命令(并index++
在每个命令后执行)
答案1
对于 Windows 用户:
示例:从视频 S01E01.mkv 中提取第 0 章至第 31 章的所有字幕(一步一步)到文件 S01E01_0.sub S01E01_1.sub ... S01E01_31.sub
FOR /L %X IN (0,1,31) DO ffmpeg -i S01E01.mkv -map 0:s:%X -c copy S01E01_%X.sub
答案2
示例:提取0到4的所有字幕,步长为1
for /L %%X in (0,1,4) do (
for %%A in ("*.mp4" "*.avi" "*.mkv") do (
%ffmpeg% -i "%%A" -vn -map 0:s:%%X -c copy subs_%%X.srt
)
)