使用ffmpeg,从视频文件中提取音频流并输出到单个立体声wav文件

时间:2016-12-08 11:01:34

标签: audio video ffmpeg

我已经尝试了几个小时来获得正确的参数,用ffmpeg进行下面的操作,但我有点超出我的深度。如果有人能给我一些指导,那将非常有帮助。

输入文件是MXF,带有一个视频轨道和两个独立的48k 24b PCM音轨。 我想只提取音频,将第一首曲目映射到左侧,将第二首曲目映射到右侧并输出为立体声波形文件。

我正在尝试对下面的命令进行修改,但似乎对视频流不满意,给出了错误

  

“mapchan:stream#0.0不是音频流。”

ffmpeg -i test2.mxf -vn -map_channel 0.0.1 output.wav_CH0 -map_channel 0.0.2 output.wav_CH1

这是ffmpeg对流有用的分析:

    Stream #1:0: Video: mpeg2video (4:2:2), yuv422p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], max. 50000 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc
Stream #1:1: Audio: pcm_s24le, 48000 Hz, mono, s32, 1152 kb/s
Stream #1:2: Audio: pcm_s24le, 48000 Hz, mono, s32, 1152 kb/s
Stream #1:3: Audio: pcm_s24le, 48000 Hz, mono, s32, 1152 kb/s
Stream #1:4: Audio: pcm_s24le, 48000 Hz, mono, s32, 1152 kb/s
Stream #1:5: Audio: pcm_s24le, 48000 Hz, mono, s32, 1152 kb/s
Stream #1:6: Audio: pcm_s24le, 48000 Hz, mono, s32, 1152 kb/s
Stream #1:7: Audio: pcm_s24le, 48000 Hz, mono, s32, 1152 kb/s
Stream #1:8: Audio: pcm_s24le, 48000 Hz, mono, s32, 1152 kb/s

1 个答案:

答案 0 :(得分:0)

filtergraph函数似乎可以解决问题。

ffmpeg -i test2.mxf -filter_complex "[0:1:0][0:2:0]amerge=inputs=2[aout]" -map "[aout]" output.wav

0:1:0似乎代表input1(-i选项),stream1(轨道),频道(左/右,如果它是立体声)。 - 我的解释在这里可能是错的,但它仍然有用。

ffmpeg documentationFFmpeg Wiki: Audio Channel Manipulation非常有帮助。