The way to "mixdown" from stereo to mono in any supported file in ffmpeg is like so:
ffmpeg -i file.ext -ac 1 file_mono.ext
The "-ac 1" bit instructs ffmpeg to output just 1 audio channel, i.e. mono. By default, this operation will preserve your file format but will revert your bitrate to the ffmpeg default of 64kbs. If you want a higher bitrate, you can do:
ffmpeg -i file.ext -ac 1 -ab 192k file_mono.ext
...replacing 192k with your preferred bitrate.
Note that your install of ffmpeg must support your particular GSM codec in order for this to work properly. I know some GSM encoded audio is supported in ffmpeg through libgsm but I have never dealt with GSM files myself. I have successfuly converted other types of files (MP3) to mono without a hitch, however.
From the 'pan' filter documentation: "Note that ffmpeg integrates a default down-mix (and up-mix) system that should be preferred (see "-ac" option) unless you have very specific needs." – OrangeDog – 2014-09-12T08:49:55.180
Both input and output files must be only audio files. Input cannot be video. – Kevin – 2014-12-29T07:35:19.763
1Audio Channel Manipulation "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
– Joel Purra – 2015-02-21T14:29:44.380@Kevin - input can be a video file, i just verified, (with or without -vn) – Berry Tsakala – 2017-02-22T12:02:57.183
3Is this really mixing, or just dropping of channels? – Jonny – 2014-04-15T03:05:56.000