[FFmpeg-user] Input 5.1 DTS, output 2.0 MP3: Atrocious Quality

Andy Furniss adf.lists at gmail.com
Sat May 16 11:27:53 CEST 2015

John L wrote:
>> Instead, take the 5.1 and _DOWNMIX_ all tracks to a single stereo
>> for the phone/tablet by declaring -acodec xxxx -ac 2. No
>> intermediate steps should be required. Consider also - Do you need
>> pcm_s32le ? pcm_s16le is usual.
> I fail to see how that is any different than what I am doing now. I
> was under the impression that the flags -acodec and -c:a were the
> same. Regardless using -acodec reults in identical clipping and noise
> generation dts->mp3. For reference here is the command I used: ffmpeg
> -i inter.dts -acodec libmp3lame -ac 2 inter-new.mp3 The resulting mp3
> file still has horrendous crackling and noise.
> What I thought I stated quite clearly in my OP is the following:
> 5.1DTS->2.0MP3 results in horrible noise and clipping in the
> resulting mp3 file 5.1DTS>2.0PCM->2.0MP3 does not generate the same
> atrocious noise. please reference the files I've included in the
> dropbox link in my OP.
> inter.dts was the ripped 5.1 audio
> inter-test.mp3 was encoded to 2.0mp3 format directly from 5.1dts and
> when played back on my laptop(s) (Windows, Linux, Mac; in Windows MP,
> ffplay, mplayer, vlc, xine, and more), Phones (s5,s3,iphone,htc one),
> tablet, ipod and my Sansa MP3 player all has horrific noise.
> inter.mp3 was generated by converting the 5.1DTS to 2.0PCM and then
> the 2.0PCM to 2.0MP3, sounds just fine when played back on all of my
> devices.
> I am fully aware that there should be NO NEED to use an intermediary
> wave format to downsample to stereo audio from 5.1 for a conversion
> to mp3. But that's exactly why I'm writing this problem into the
> group because it is NOT working as expected.

IIRC this has come up before. The issue seems to be that sometimes -ac 2
normalises and sometimes it doesn't (depending on what codec is used).

You can see whether or not the matrix is normalised with -loglevel debug.

FWIW dts may contain meta data specifying a matrix typically (and by
default if there is none) this will be partially normalised.

To use this you put -request_channels 2 before -i infile.dts.

More information about the ffmpeg-user mailing list