如何使用 FFmpeg 将两个不确定的音频文件(可能是单声道或立体声)合并为一个立体声文件?

如何使用 FFmpeg 将两个不确定的音频文件(可能是单声道或立体声)合并为一个立体声文件?

输入:

两个音频文件,可能是立体声或单声道。

输出:

  • 一个立体声文件,立体声 FL 使用一个文件所有通道,而 FR 使用其他文件所有通道。
  • 总时长以最长的文件为准。
  • 希望可以通过FFmpeg实现。

有四种情况:

  • 单声道 + 单声道 -> 立体声
  • 单声道 + 立体声 -> 立体声
  • 立体声 + 单声道 -> 立体声
  • 立体声 + 立体声 -> 立体声

我希望有人可以帮助我,我是 FFmpeg 的新手。

答案1

  1. 使用以下方法获取每个输入的持续时间ffprobe确定哪个音频最短。
  2. 使用格式筛选。
  3. 应用阿帕德过滤较短的输入。
  4. 使用以下方法将多个输入流合并为一个多通道流:加入筛选。

例子:

ffmpeg -i input0 -i input1 -filter_complex "[0:a]aformat=channel_layouts=mono:sample_rates=44100,apad[a0];[1:a]aformat=channel_layouts=mono:sample_rates=44100[a1];[a0][a1]join=inputs=2:channel_layout=stereo[a]" -map "[a]" output

另请参阅FFmpeg Wiki:音频通道

相关内容