3

I have a couple of mp3s that are stereo but one of the channels is silent, quite annoying to listen to, especially in earphones. I can't get new recordings (the tracks are bootlegs with unknown origin) so I the second best option I guess would be to convert them to mono replacing the silent track with the other track.

I read this similar question Convert mp3 from mono to stereo using Lame but the solutions suggested does not seem to apply to my situation.

What tool can replace one track with the other in my situation, preferably lossless and preferably using "joint stereo" (= the new channel will in practice be empty, avoiding increasing the size of the files in a significant way)?

d-b
  • 956

3 Answers3

4

So I tried the ffmpeg method and I get the impression that it is reencoding. It takes quite a while to process, uses up a lot of cpu (both way more than MP3directcut); the resulting files show a different codec in Mediainfo's readout; and when comparing spectrograms from original and split files there are marked differences. Just to check I transcoded the original with the same encoding settings (lame 128kpbs cbr stereo mp3 -> lame 128 cbr stereo mp3) and the original was much closer to the transcode than to the split files from ffmpg.

I really don't think this method is lossless. You might as well use a program like Audacity.

Jayden
  • 41
4

You can do this with ffmpeg. Their Audio Channel Manipulation page has many examples, including this example to split audio channels into separate files:

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

It will do the same with any format it understands, which includes mp3. The example splits one stereo file into two mono files, without any reencoding. I assume all players will (by default) play the one channel to each speaker. You can follow this example to make a stereo file with the same audio copied into both channels. To get joint stereo you have to reencode, which (on mp3) is not lossless; that page does not have an example.

If you're doing this on Windows (and not using Cygwin), it looks like the best source is the Zeranoe FFmpeg builds

ShadSterling
  • 1,576
2

I can't comment ShadSterling's nor Jayden's answers (not enough rep), so here's my 2 cents.

This command does indeed seem to reencode (in my case, left.wav and right.wav were in Vorbis, while stereo.wav was aac), as Jayden hinted.

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

However, this command, taken from the same examples page, does seem (for me the resulting file was in the same codec as the source - AAC - but this not a complete proof that no reencoding happened) to do the job (no reencoding) :

ffmpeg -i stereo.wav -af "pan=mono|c0=c1" mono.m4a
mll
  • 53