有没有办法对语言管理的多个音频和子流进行编码
Is there a way to encode multiple audio and sub streams managed by language
所以,我有一个装满 .mkv 的文件夹,我有一个可以将它们全部转换为 mp4 的衬垫
这些新文件现在有多个音频和字幕流,一个 eng,一个 ger 一个 jap 和相同的字幕,有没有一种方法可以让我轻松指定使用 f.e。德语音频和刻录 eng 字幕。
我的一条线:
for /R %f IN (*.mkv) DO ffmpeg -i "%f" -c copy "%~nf.mp4"
我要如何修改这个 Liner 才能使其正常工作。
我发现使用 -vf subtitles=foo.ass 我可以对字幕进行硬编码,但是我如何 select 从文件中包含一个音频和/或字幕流?
我会如何 select f.e。音频流但 none 字幕流
我发现,
-map 0:V -map 0:a:m:language:ger -map 0:s
我可以获得一个只有德语音频文件的文件,但现在我需要同样的字幕,只包含英语的
I can get a file with which only has the german audio files, but now i need the same for the subtitles, to only include the english ones
ffmpeg -i input.mkv -map 0:v -map 0:a:m:language:ger -map 0:s:m:language:eng -c copy output.mkv
要刻录字幕,您必须提供文件名,以及可选的流索引。您可以使用ffprobe
来确定所需字幕语言的字幕索引:
ffprobe -v error -select_streams s -show_entries tags=language -of default=nw=1:nk=1 input.mkv
示例输出:
ger
eng
所以 ger
是索引 #0 而 eng
是索引 #1。
最终 ffmpeg
命令:
ffmpeg -i input.mkv -filter_complex "subtitles=f=input.mkv:si=1[v]" -map "[v]" -map 0:a:m:language:ger -c:a copy -movflags +faststart output.mp4
所以,我有一个装满 .mkv 的文件夹,我有一个可以将它们全部转换为 mp4 的衬垫 这些新文件现在有多个音频和字幕流,一个 eng,一个 ger 一个 jap 和相同的字幕,有没有一种方法可以让我轻松指定使用 f.e。德语音频和刻录 eng 字幕。 我的一条线:
for /R %f IN (*.mkv) DO ffmpeg -i "%f" -c copy "%~nf.mp4"
我要如何修改这个 Liner 才能使其正常工作。 我发现使用 -vf subtitles=foo.ass 我可以对字幕进行硬编码,但是我如何 select 从文件中包含一个音频和/或字幕流? 我会如何 select f.e。音频流但 none 字幕流
我发现,
-map 0:V -map 0:a:m:language:ger -map 0:s
我可以获得一个只有德语音频文件的文件,但现在我需要同样的字幕,只包含英语的
I can get a file with which only has the german audio files, but now i need the same for the subtitles, to only include the english ones
ffmpeg -i input.mkv -map 0:v -map 0:a:m:language:ger -map 0:s:m:language:eng -c copy output.mkv
要刻录字幕,您必须提供文件名,以及可选的流索引。您可以使用ffprobe
来确定所需字幕语言的字幕索引:
ffprobe -v error -select_streams s -show_entries tags=language -of default=nw=1:nk=1 input.mkv
示例输出:
ger
eng
所以 ger
是索引 #0 而 eng
是索引 #1。
最终 ffmpeg
命令:
ffmpeg -i input.mkv -filter_complex "subtitles=f=input.mkv:si=1[v]" -map "[v]" -map 0:a:m:language:ger -c:a copy -movflags +faststart output.mp4