输入:
两个音频文件,可能是立体声或单声道。
输出:
- 一个立体声文件,立体声 FL 使用一个文件所有通道,而 FR 使用其他文件所有通道。
- 总时长以最长的文件为准。
- 希望可以通过FFmpeg实现。
有四种情况:
- 单声道 + 单声道 -> 立体声
- 单声道 + 立体声 -> 立体声
- 立体声 + 单声道 -> 立体声
- 立体声 + 立体声 -> 立体声
我希望有人可以帮助我,我是 FFmpeg 的新手。
答案1
- 使用以下方法获取每个输入的持续时间
ffprobe
确定哪个音频最短。 - 使用格式筛选。
- 应用阿帕德过滤较短的输入。
- 使用以下方法将多个输入流合并为一个多通道流:加入筛选。
例子:
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:音频通道。