If all you want is stereo to mono, -ac 1 is the whole answer. What’s rarely explained is how -ac 1 mixes the two channels, what changes when you write the mix yourself with pan, and why the mono file is no smaller than the stereo one. For this article we converted the same audio each way and measured the level with volumedetect to show the differences.
Verified: FFmpeg 8.1 on Windows — all 15 commands in this article were executed by the verification script and passed (2026-09-06).
Stereo → mono: -ac 1
ffmpeg -i input.mp3 -ac 1 output.mp3
To make only a video’s audio mono, leave the picture alone with -c:v copy.
ffmpeg -i input.mp4 -c:v copy -ac 1 -c:a aac output.mp4
-ac 1 adds the channels at 0.5 each
We took a stereo file with identical content on both sides (−19.1 dB), converted it to mono each way, and measured the mean volume with volumedetect.
| Method | Mean volume | Change |
|---|---|---|
| Original stereo | −19.1 dB | — |
-ac 1 |
−19.1 dB | 0 |
pan=mono|c0=0.5*c0+0.5*c1 |
−19.1 dB | 0 |
aformat=channel_layouts=mono |
−19.1 dB | 0 |
pan=mono|c0<c0+c1 |
−19.1 dB | 0 |
pan=mono|c0=c0+c1 |
−13.0 dB | +6.1 dB |
-ac 1 is equivalent to “L at 0.5 plus R at 0.5” ((L+R)/2) and leaves the level alone. Writing c0+c1 in pan is a plain sum, so anything present on both sides comes out 6 dB louder.
c0+c1 clips
To see how dangerous +6 dB is, we ran c0+c1 on a stereo file peaking at −0.1 dBFS (almost full scale). volumedetect reported a maximum of 0.0 dB with 310,400 of 441,000 samples (about 70%) in the 0 dB bin — most of the audio is pinned to the ceiling and distorted.
When you add channels in pan, keep the coefficients summing to at most 1 (0.5*c0+0.5*c1) or use <.
ffmpeg -i input.mp3 -af "pan=mono|c0=0.5*c0+0.5*c1" output.mp3
ffmpeg -i input.mp3 -af "pan=mono|c0<c0+c1" output.mp3
The < in c0<c0+c1 means “normalise the coefficients so they sum to 1”, so c0+c1 becomes 0.5 each. It’s the safe choice when you want to preserve the level.
Keep only one channel
When the right channel has noise on it, or the mic only recorded on the left, send one channel to both sides.
ffmpeg -i input.mp3 -af "pan=mono|c0=c0" output.mp3
That makes a mono file from the left channel (c0) alone. To stay stereo with the left on both sides:
ffmpeg -i input.mp3 -af "pan=stereo|c0=c0|c1=c0" output.mp3
Channel names FL/FR work in place of c0/c1 (pan=stereo|c0=FL|c1=FL). For a video, add -c:v copy.
ffmpeg -i input.mp4 -c:v copy -af "pan=stereo|c0=c0|c1=c0" -c:a aac output.mp4
Swap left and right
ffmpeg -i input.mp3 -af "pan=stereo|c0=c1|c1=c0" output.mp3
channelmap=map=FL-FR|FR-FL does the same but errors unless the input is actually stereo. pan works regardless of the input channel count, so it’s the one worth remembering.
Mono → stereo
ffmpeg -i input.mp3 -ac 2 output.mp3
The same signal is copied to both sides; there is no added width. The file size does not change at the same bitrate (see below). For a wider feel there are extrastereo and stereotools, but they have almost no effect on a source that was mono to begin with.
ffmpeg -i input.mp3 -af "extrastereo=m=2.5" output.mp3
extrastereo amplifies the difference between L and R: m=1 is the original, m>1 widens, m<1 narrows. It’s for making an already-stereo mix a bit wider; push it too far and the phase falls apart and centred sounds (vocals) thin out.
Split L / R into separate files and back
channelsplit has two outputs, so it goes in -filter_complex, not -af. In -af it fails with an error about filters with multiple outputs.
ffmpeg -i input.mp3 -filter_complex "channelsplit=channel_layout=stereo[left][right]" -map "[left]" left.wav -map "[right]" right.wav
To rebuild stereo from two mono files use join.
ffmpeg -i left.wav -i right.wav -filter_complex "[0:a][1:a]join=inputs=2:channel_layout=stereo[a]" -map "[a]" output.wav
amerge also combines them, but it only concatenates channels in order and carries no layout information, so you’d add -ac 2 to be explicit. This split/join pair is the entry point for processing one channel differently from the other (denoising only the left, for instance).
Fine-tune a stereo image (bleed a little L into R)
For a hard-panned source (vocals only on the left, guitar only on the right, as in some old recordings), mix a little of each side into the other.
ffmpeg -i input.mp3 -af "pan=stereo|c0=0.8*c0+0.2*c1|c1=0.2*c0+0.8*c1" output.mp3
Keep each row’s coefficients summing to 1.0 and the level stays the same.
Downmix 5.1 to stereo
For 5.1 sources such as film audio, -ac 2 uses FFmpeg’s built-in downmix coefficients, but dialogue in the centre channel can end up quiet. To bring it forward, write the coefficients yourself with pan.
ffmpeg -i input.mkv -c:v copy -af "pan=stereo|FL=0.5*FC+0.707*FL+0.707*BL+0.5*LFE|FR=0.5*FC+0.707*FR+0.707*BR+0.5*LFE" -c:a aac output.mp4
FC (centre) and LFE (bass) go to both sides at 0.5; the surrounds at 0.707 (−3 dB). The coefficients sum to more than 1, so clipping is possible in principle, but in a 5.1 mix all channels rarely peak together and these values are widely used. If in doubt, normalise with the < form (FL<...).
Why a mono file isn’t smaller
A CBR 128 kbps MP3 converted to mono came out at exactly the same 160,958 bytes (30 s). Bitrate is “data per second”, so fewer channels at the same bitrate is the same size.
To save space when going mono, lower the bitrate or use VBR. Mono needs roughly half the bitrate for the same quality, so specify -b:a 64k or -q:a 5 explicitly.
ffmpeg -i input.mp3 -ac 1 -b:a 64k output.mp3
FAQ
-ac 1 or pan=mono|c0=0.5*c0+0.5*c1?
Same result. When you’re combining with other filters (loudnorm, say), pan inside -af lets you control the order; for a plain mono conversion -ac 1 is enough.
Mixing to mono makes the sound disappear
If L and R carry the same signal in opposite polarity (you can create this with pan=stereo|c0=c0|c1=-1*c0), summing them cancels to silence. This happens with old “pseudo-stereo” recordings; the fix is to keep one channel (pan=mono|c0=c0).
What’s the difference between stereotools and pan?
pan is a matrix — which input channel, multiplied by what, goes to which output. stereotools bundles the functions of a DAW stereo tool: Mid/Side conversion, phase inversion, balance, stereo width. stereotools=mode=lr>ms converts L/R to Mid/Side, but for ordinary conversion pan is all you need.
Related articles
- Audio format conversion — choosing codecs and bitrates
- Measure volume — reproduce this article’s measurements with
volumedetect - Loudness normalisation — even out the level after going mono
- Extract audio — pull just the audio track out of a video