使用FFMPEG,将音频流从视频文件和输出中提取到单个立体声WAV文件



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

输入文件是MXF,带有一个视频轨道和两个独立的48K 24B PCM音轨。我想仅提取音频,将第一个曲目映射到左侧,第二个轨道向右,然后输出作为立体声波文件。

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

" mapchan:流#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

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文档和ffmpeg Wiki:音频频道操纵非常有用。

最新更新