使用ffmpeg为一个视频单独添加多个字幕

App*_*ppa 6 ffmpeg subtitle mkv srt

我正在尝试使用 ffmpeg 将多种语言的字幕添加到视频中。我成功添加了一种语言,但似乎无法添加第二种语言。我使用这个简单的脚本为我的视频添加英文字幕。

ffmpeg -i %1 -i subs_eng.srt -map 0 -vcodec copy -acodec copy -scodec subrip -metadata:s:s:0 language=English "%~n1"_eng.mkv
Run Code Online (Sandbox Code Playgroud)

此外,我还运行另一个脚本来添加荷兰语字幕。

ffmpeg -i %1 -i subs_nl.srt -map 0? -vcodec copy -acodec copy -scodec subrip -metadata:s:s:1 language=Dutch "%~n1"_nl.mkv
Run Code Online (Sandbox Code Playgroud)

但每当我添加第二语言时,它似乎没有做任何事情。命令终端显示ffmpeg正在处理视频,但vlc媒体播放器中只有1种可用的字幕语言(第一种)。

我真的希望能够在两次拍摄中添加它,而不是在同一个脚本中,因为我的所有视频都没有两种语言。

Gya*_*yan 5

如果没有-map字幕流,ffmpeg 将从所有输入中仅选择一个字幕流。

ffmpeg -i %1 -i subs_nl.srt -map 0 -map 1 -vcodec copy -acodec copy -c:s:0 copy -c:s:1 subrip -metadata:s:s:1 language=Dutch "%~n1"_nl.mkv
Run Code Online (Sandbox Code Playgroud)

我将现有字幕流的编解码器模式设置为新字幕流的编解码器copy模式subrip。这假设您之前混合了一个字幕流。