Audio ffmpeg将MXF视频的多(N)个单声道音频通道合并为MP4视频的多(M)个立体声通道
我有一个带有16个音频单声道流的MXF文件,我需要用2将其重新编码到mp4文件中。代码是用换行符组织的。Audio ffmpeg将MXF视频的多(N)个单声道音频通道合并为MP4视频的多(M)个立体声通道,audio,video,ffmpeg,channels,Audio,Video,Ffmpeg,Channels,我有一个带有16个音频单声道流的MXF文件,我需要用2将其重新编码到mp4文件中。代码是用换行符组织的。\在Unix shell中打断一行 ffmpeg -i "in.mxf" \ -filter_complex "\ [a:0][a:1]amerge=inputs=2[ch1ch2];\ [a:8][a:9]amerge=inputs=2[ch9ch10]" \ -map 'v:0' \ -map '[ch1ch2]' \ -map '[ch9ch10]' \ -c:v copy \ -c:a
\
在Unix shell中打断一行
ffmpeg -i "in.mxf" \
-filter_complex "\
[a:0][a:1]amerge=inputs=2[ch1ch2];\
[a:8][a:9]amerge=inputs=2[ch9ch10]" \
-map 'v:0' \
-map '[ch1ch2]' \
-map '[ch9ch10]' \
-c:v copy \
-c:a aac -b:a 128k -ar 48000 -ac 2 \
"out.mp4"
“
而不是”
。如果我使用shell换行符\
,我会得到一个单引号的错误'
)amerge
过滤器并选择
- 第一个音频流
和a:0
- 第二个音频流
a:1
- 合并它们并
- 将其存储在输出板
(您可以给它任何名称)ch1ch2
amerge
过滤器并选择
- 第9个音频流
和a:8
- 第10个音频流
a:9
- 合并它们并
- 将其存储在输出板
ch9ch10
ch1ch2
映射到第一个音频流ch9ch10
映射到第二个音频流-map 0
,以将所有流堆叠在合并的流之下。(当然,最终会得到2+16个音频流。)
您可以添加更多的amerge
过滤器。使用;
您还可以将3个音频流与[a:0][a:1][a:2]amerge=inputs=3[ch1ch2ch3]
合并。
将音频频道命名为
-元数据:s:a:0 title=“频道1和频道2”
这对于测试很有用,因为你可以在VLC中看到名称。OP想要合并流,所以必须使用过滤器,比如amerge。映射和流复制将不起作用。谢谢你的回答drake7,但是,正如Gyan所说,我需要合并流。哦,我的糟糕;)你能提供一个5秒钟的测试文件:
ffmpeg-I”video.mxf吗“-map 0-c copy-t 5”video_5s.mxf
Hi drake7,感谢您的回答和帮助。您可以在此处下载视频片段:不客气;)感谢测试文件。我已成功测试并编辑了我的答案。