如何选择带有 ffmpeg 的左音频通道并将其缩混为单声道?

Seb*_*bMa 4 audio ffmpeg

我有一部旧的“立体声”电影作为 mp4 文件。

声音只在左声道,右声道无声。

我想使用 ffmpeg 复制视频流:

ffmpeg -hide_banner -i video.mp4 -c:v copy ...
Run Code Online (Sandbox Code Playgroud)

并通过仅选择左声道将音频转换为单声道:

-map_channel 0.1.0 -map_channel -1
Run Code Online (Sandbox Code Playgroud)

但这并没有改变任何事情:-(

什么是正确的 ffmpeg 命令行?

是否也可以在不重新编码的情况下做到这一点?

llo*_*gan 11

至少有两种方法可以选择左声道并输出为单声道。

使用 -map_channel

假设输入只包含音频:

ffmpeg -i input -map_channel 0.0.0 output
Run Code Online (Sandbox Code Playgroud)
  • 第一个数字是输入文件 id:您只有一个输入,因此将是0. 第二个数字是流说明符:如果音频是第二个流,这在典型的视频文件中通常是这种情况,那么您将1改为使用。第三个数字是通道编号:在立体声输入中,第一个通道通常是 Front Left,第二个通道通常是 Front Right。

  • 如果您想要正确的频道,请改用-map_channel 0.0.1.

  • 如果输入包含视频,则音频可能(但不总是)被列为第二个流,因此您需要0.1.0改用。

使用平移音频过滤器

ffmpeg -i input -af "pan=mono|c0=FL" output
Run Code Online (Sandbox Code Playgroud)
  • 或者,您可以使用pan=mono|c0=c0.
  • 如果您想要正确的频道,请使用pan=mono|c0=FR(或pan=mono|c0=c1)。

另见