ffmpeg:隔离一个音频通道

ste*_*ade 9 audio mono ffmpeg

如何使用ffmpeg从音频文件中隔离一个通道?我有一个立体声音频文件,我需要输出是单声道音频文件中右声道的内容。

虽然我确信这很容易做到,但我无法弄清楚。谢谢您的帮助!

llo*_*gan 14

你有两种方法:

平移音频过滤器

pan 音频过滤器功能强大,但语法需要一些时间来理解。

使用 pan 时参考通道布局列表会很有帮助: ffmpeg -layouts

立体声右声道至单声道:

ffmpeg -i stereo.wav -af "pan=mono|FC=FR" right_mono.wav
Run Code Online (Sandbox Code Playgroud)

...与以下内容相同:

ffmpeg -i stereo.wav -af "pan=1|c0=c1" right_mono.wav
Run Code Online (Sandbox Code Playgroud)
  • mono是输出通道布局或通道数。或者,您可以使用1代替mono.
  • FC=FR创建˚F外前Ç输入从所述输出的信道˚F外前- [R输入的飞行。
  • c0=c1在这种情况下与上述相同:c0从输入的第二个通道 ( c1)创建单声道输出 ( )的第一个(也是唯一一个)通道。
  • 如果您想要左声道,请使用FC=FLc0=c0

更多信息:


-map_channel

您可以使用该-map_channel选项。它在后台使用 pan 并且不太灵活。

ffmpeg -i stereo.wav -map_channel 0.0.1 right_mono.wav
Run Code Online (Sandbox Code Playgroud)
  • 第一个0是输入文件ID
  • 接下来0是流说明符
  • 1是信道ID

所以这可以翻译为:第一个文件,第一个流,第二个通道(或右通道)。

-map_channel文档:

所述的顺序-map_channel选项指定输出流中的信道的顺序。输出通道布局是根据映射的通道数量推测的(如果是单声道,如果是-map_channel立体声,如果是两个,等等。