Version 5 (modified by llogan, 5 years ago) (diff)

add mono to stereo example

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.

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.

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

stereo → 2 × mono files

Output each channel in stereo input to individual mono files:

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.

2 × stereo → stereo

Combine two stereo inputs into one stereo output with the 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

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 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