FFMPEG:向视频文件添加其他音频轨道

时间:2015-12-04 14:28:32

标签: audio video ffmpeg

我有两个包含以下视频的视频文件:


文件1:

Stream #0:0(deu): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 126 kb/s (default)
Stream #0:1(deu): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 384 kb/s
Stream #0:2(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 4971 kb/s, 23.98 fps, 23.98 tbr, 2997 tbn, 5994 tbc (default)
Stream #0:3: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 480x480 [SAR 72:72 DAR 1:1], 90k tbr, 90k tbn, 90k tbc

文件2:

Stream #0:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 126 kb/s (default)
Stream #0:1(eng): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 384 kb/s
Stream #0:2(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 4925 kb/s, 23.98 fps, 23.98 tbr, 23976 tbn, 47952 tbc (default)
Stream #0:3(eng): Subtitle: eia_608 (c608 / 0x38303663), 1920x1080, 0 kb/s
Stream #0:4: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 480x480 [SAR 72:72 DAR 1:1], 90k tbr, 90k tbn, 90k tbc


两个文件都具有完全相同的视频内容,但第一个视频具有德语音轨,第二个视频具有英语音轨。

如何从德语视频文件中提取音轨并将其添加到英语视频文件中,而不会丢失英文字幕,并且能够在媒体播放器中选择这些音轨? < / p>

我搜索了这个,我找到了类似问题的多个答案,但没有一个有效:有些只包括一个音轨,有些同时播放了两个。

我不确定是否应该在Super User上询问这个问题,但由于在Stack Overflow上有很多关于ffmpeg的问题,我在这里问过。

1 个答案:

答案 0 :(得分:1)

重要的是要注意FFmpeg无法添加到文件中,它必须一次性创建包含流,设置和元数据的新文件。这使得它成为解决问题的好方案是创建新文件不是问题。

ffmpeg -i FILE1 \
     -i FILE2 \
     -map 1:2 -map 1:0 -map 1:1 -map 0:0 -map 0:1 -map 1:3 -map 1:4 \
     -c copy \
     -disposition:a -default -disposition:a:0 default \
     -disposition:v -default -disposition:v:0 default \
     OUTPUT

有关上述命令的信息,请访问FFmpeg Documentation 5.4 Main Options5.11 Advanced options

生成的OUTPUT文件将按如下方式映射流:

Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 4925 kb/s, 23.98 fps, 23.98 tbr, 23976 tbn, 47952 tbc (default)
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 126 kb/s (default)
Stream #0:2(eng): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 384 kb/s
Stream #0:3(deu): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 126 kb/s
Stream #0:4(deu): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 384 kb/s
Stream #0:5(eng): Subtitle: eia_608 (c608 / 0x38303663), 1920x1080, 0 kb/s (default)
Stream #0:6: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 480x480 [SAR 72:72 DAR 1:1], 90k tbr, 90k tbn, 90k tbc