Fortunately, MPlayer is able to amend the situation using the audio filter pan.
For the sole purpose of correcting poor audio balance, the ideal usage might be an alias in your shell rc:
alias -g downmix-stereo="-af-add pan=2:1:1:1:1"However, as there are any number of ways to interpret a list of ones and colons, I'll break it down as clearly as I can.
The "-af" option stands for audio filter, and pan is the name of the filter we're applying. If we put more than one -af on the commandline, all but the last filter will be ignored, so for safety we use -af-add to append filters onto a list.
The first digit in the example is 2: the number of output channels. This should be set approximately to the number of speakers you have. For normal headphones, this is 2.
The four 1's in the example control the left/right output balance fore each input channel. For example,
pan=2:1:0:0:0 means that the left input channel is played in the left output channel at full volume. The right input channel is muted. Another: pan=2:0:1:0:1 would play both input channels in the right output channel only.All we need do is set the outputs to "1:1" for both inputs as in the code snippet above, and the file plays back as if it were monaural, more or less.
The more obvious solution might have been to use the "channels" audio filter to copy the left channel to the right and vice-versa. Unfortunately, 'channels' doesn't work that way: rather than mixing the channels, the second channel swap overrides the first. The result is not what you'd intended.
Hopefully that's a little clearer than the documentation. Happy hacking!