【问题标题】:Using ffmpeg, extract audio streams from video file and output to single stereo wav file使用 ffmpeg,从视频文件中提取音频流并输出到单个立体声 wav 文件
【发布时间】:2017-04-23 14:23:22
【问题描述】:

我已经尝试了几个小时来获得正确的参数来使用 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

【问题讨论】:

    标签: audio video ffmpeg


    【解决方案1】:

    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 非常有帮助。

    【讨论】:

    • 0:1:0 的 amerge 语法不正确。您所指的语法是map_channel。对于合并,三个值代表input id:stream specifier:stream id。例如,3:a:7 表示来自第 4 个输入文件的第 8 个音频流(计数从 0 开始)。
    猜你喜欢
    • 2012-12-06
    • 2018-10-16
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    相关资源
    最近更新 更多