Version 8 (modified by llogan, 6 years ago) (diff)

add some diagrams

Manipulating audio channels with ffmpeg

stereo → mono stream

Mix a single stereo stream down to a mono stream. Both channels of the stereo stream will be downmixed into the stream.

stereo to mono diagram

ffmpeg -i stereo.flac -ac 1 mono.flac

stereo → 2 × mono streams

Output each channel in stereo input to individual mono streams in one output file with the channelsplit audio filter.

stereo to 2 mono streams diagram

ffmpeg -i in.mp3 -filter_complex channelsplit out.mp3

stereo → 2 × mono files

Output each channel in stereo input to individual mono files:

stereo to 2 mono outputs diagram

ffmpeg -i stereo.wav -map_channel 0.0.0 left.wav -map_channel 0.0.1 right.wav

or with the pan audio filer:

ffmpeg -i stereo.wav -filter_complex "[0:0]pan=1:c0=c0[left];[0:0]pan=1:c0=c1[right]" -map "[left]" left.wav -map "[right]" right.wav

mono → stereo

Create a stereo output from one mono input:

ffmpeg -i input.mp3 -ac 2 output.m4a

or with the amerge audio filter:

ffmpeg -i input.mp3 -filter_complex "[0:a][0:a]amerge[aud]" -map "[aud]" output.m4a

2 × mono → stereo

Create a stereo output from two mono inputs:

ffmpeg -i left.mp3 -i right.mp3 -ac 2 output.wav

or with the amerge audio filter:

ffmpeg -i left.mp3 -i right.mp3 -filter_complex amerge output.mka

6 × mono → 5.1

Combine 6 mono inputs into one 5.1 (6 channel) output with the amerge audio filter:

ffmpeg -i front_left.wav -i front_right.wav -i front_center.wav -i lfe.wav -i back_left.wav -i back_right.wav \
-filter_complex "[0:a][1:a][2:a][3:a][4:a][5:a] amerge=inputs=6" output.wav

All inputs must have the same sample rate and format. If inputs do not have the same duration the output will stop with the shortest.

5.1 → stereo

Note that ffmpeg integrates a default down-mix (and up-mix) system that should be preferred (the -ac option) unless you have very specific needs.

To downmix you can simply use -ac 2:

ffmpeg -i 6channels.wav -ac 2 stereo.wav

If you want to map specific channels and drop the rest you can use the pan audio filter. This will map the Front Left of the input to the Front Left of the output, and the Front Right of the input to the Front Right of the output:

ffmpeg -i 6channels.wav -af "pan=stereo:c0=FL:c1=FR" stereo.wav

You can also map specific channels by number. This example will map the first and third channels of the input to the first and second channels of the output.

ffmpeg -i 6channels.wav -af "pan=stereo:c0=c0:c1=c2" output.wav

If the = in a channel specification is replaced by <, then the gains for that specification will be renormalized so that the total is 1, thus avoiding clipping noise.

See the pan audio filter documentation for additional information and examples.

2 × stereo → stereo

Combine two stereo inputs into one stereo output with the [htts:// amerge] and pan audio filters:

ffmpeg -i input1.wav -i input2.wav -filter_complex "amerge,pan=stereo:c0<c0+c2:c1<c1+c3" output.mp3

Mix both stereo channels to stereo

The left channel and right channel will each contain both the left and right channels (like "mono as stereo").

ffmpeg -i input.mp3 -af "pan=stereo:c0<c0+c1:c1<c0+c1" output.ogg

Switch stereo channels

Switch left channel to right and right channel to left:

ffmpeg -i stereo.ogg -map_channel 0.0.1 -map_channel 0.0.0 output.wav

or with the pan audio filer:

ffmpeg -i stereo.ogg -af pan=stereo:c0=c1:c1=c0 output.wav

Mute a channel

This example will mute the first channel (the left channel) but keep the second channel as is:

ffmpeg -i stereo.wav -map_channel -1 -map_channel 0.0.1 output.wav


Output from ffmpeg -layouts:

Individual channels:
FL          front left
FR          front right
FC          front center
LFE         low frequency
BL          back left
BR          back right
FLC         front left-of-center
FRC         front right-of-center
BC          back center
SL          side left
SR          side right
TC          top center
TFL         top front left
TFC         top front center
TFR         top front right
TBL         top back left
TBC         top back center
TBR         top back right
DL          downmix left
DR          downmix right
WL          wide left
WR          wide right
SDL         surround direct left
SDR         surround direct right
LFE2        low frequency 2

Standard channel layouts:
mono        FC
stereo      FL+FR
2.1         FL+FR+LFE
3.0         FL+FR+FC
3.0(back)   FL+FR+BC
4.0         FL+FR+FC+BC
quad        FL+FR+BL+BR
quad(side)  FL+FR+SL+SR
3.1         FL+FR+FC+LFE
5.0         FL+FR+FC+BL+BR
5.0(side)   FL+FR+FC+SL+SR
4.1         FL+FR+FC+LFE+BC
5.1         FL+FR+FC+LFE+BL+BR
5.1(side)   FL+FR+FC+LFE+SL+SR
6.0         FL+FR+FC+BC+SL+SR
6.0(front)  FL+FR+FLC+FRC+SL+SR
hexagonal   FL+FR+FC+BL+BR+BC
6.1         FL+FR+FC+LFE+BC+SL+SR
6.1         FL+FR+FC+LFE+BL+BR+BC
6.1(front)  FL+FR+LFE+FLC+FRC+SL+SR
7.0         FL+FR+FC+BL+BR+SL+SR
7.0(front)  FL+FR+FC+FLC+FRC+SL+SR
7.1         FL+FR+FC+LFE+BL+BR+SL+SR
7.1(wide)   FL+FR+FC+LFE+BL+BR+FLC+FRC
octagonal   FL+FR+FC+BL+BR+BC+SL+SR
downmix     DL+DR

Attachments (15)

Download all attachments as: .zip