Opened 8 years ago

Closed 8 years ago

#5233 closed defect (fixed)

ffmpeg native aac encoder does not uses sensible default values to bitrate on multchannel audios

Reported by: Marcus Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: yes

Description

The native ffmpeg native aac encoder defaults do 128kbps bitrate, regardless of the input audio is stereo or an AC3 / DTS multichannel audio.

The fdk_aac compiled ffmpeg defaults to 489kbps bitrate when the input is a 5.1 channel audio.

It would be nice if the ffmpeg aac native encoder uses 'sensible defaults' like the fdk_aac counterpart.

How to reproduce:

C:\Users\marcu\Downloads\ffmpeg-20160212-git-6973846-win64-static\ffmpeg-20160212-git-6973846-win64-static\bin>ffmpeg -i http://www.mysurround.com/test/TestMySurround-en.dbr.wma audio.mp4
ffmpeg version N-78395-g6973846 Copyright (c) 2000-2016 the FFmpeg developers

built with gcc 5.3.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
libavutil 55. 17.100 / 55. 17.100
libavcodec 57. 24.102 / 57. 24.102
libavformat 57. 25.100 / 57. 25.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 31.100 / 6. 31.100
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100

Input #0, asf, from 'http://www.mysurround.com/test/TestMySurround-en.dbr.wma':

Metadata:

WMFSDKNeeded : 0.0.0.0000
DeviceConformanceTemplate: M3
WM/WMADRCPeakReference: 32767
WM/WMADRCPeakTarget: 32767
WM/WMADRCAverageReference: 3822
WM/WMADRCAverageTarget: 3822
WMFSDKVersion : 11.0.5721.5145
IsVBR : 1

Duration: 00:00:54.04, start: 0.000000, bitrate: 297 kb/s

Stream #0:0(fre): Audio: wmapro (b[1][0][0] / 0x0162), 48000 Hz, 5.1, fltp, 384 kb/s

Output #0, mp4, to 'audio.mp4':

Metadata:

WMFSDKNeeded : 0.0.0.0000
DeviceConformanceTemplate: M3
WM/WMADRCPeakReference: 32767
WM/WMADRCPeakTarget: 32767
WM/WMADRCAverageReference: 3822
WM/WMADRCAverageTarget: 3822
WMFSDKVersion : 11.0.5721.5145
IsVBR : 1
encoder : Lavf57.25.100
Stream #0:0(fre): Audio: aac (LC) ([64][0][0][0] / 0x0040), 48000 Hz, 5.1, fltp, 128 kb/s
Metadata:

encoder : Lavc57.24.102 aac

Stream mapping:

Stream #0:0 -> #0:0 (wmapro (native) -> aac (native))

Press [q] to stop, ? for help
[aac @ 0000020f47e6a8c0] Queue input is backward in timepeed=12.6x
[mp4 @ 0000020f47da4d60] Non-monotonous DTS in output stream 0:0; previous: 1199103, current: 1198080; changing to 1199104. This may result in incorrect timestamps in the output file.
[aac @ 0000020f47e6a8c0] Queue input is backward in timepeed= 9.8x
[mp4 @ 0000020f47da4d60] Non-monotonous DTS in output stream 0:0; previous: 2561007, current: 2559984; changing to 2561008. This may result in incorrect timestamps in the output file.
size= 473kB time=00:00:54.05 bitrate= 71.6kbits/s speed=9.97x
video:0kB audio:461kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.587044%
[aac @ 0000020f47e6a8c0] Qavg: 53019.391


Geral
Nome completo : C:\Users\marcu\Downloads\ffmpeg-20160212-git-6973846-win64-static\ffmpeg-20160212-git-6973846-win64-static\bin\audio.mp4
Formato : MPEG-4
Perfil do Formato : Base Media
ID do Codec : isom
Tamanho do arquivo : 473 KiB
Duração : 54s 80ms
Taxa de Bits Total, Modo : Variável
Taxa de Bits Total : 71.6 Kbps
Programa usado : Lavf57.25.100

Áudio
ID : 1
Formato : AAC
Formato/Informações : Advanced Audio Codec
Perfil do Formato : LC
ID do Codec : 40
Duração : 54s 80ms
Modo da taxa de bits : Variável
Taxa de bits : 69.8 Kbps
Taxa de bits máxima : 128 Kbps
Nº de canais : 2 canais
Channel(s)_Original : 6 canais
Posições dos canais : Front: L C R, Side: L R, LFE
Taxa de amostragem : 48.0 KHz
Tamanho da Faixa : 461 KiB (97%)
Idioma : Francês

Change History (2)

comment:1 by Hendrik, 8 years ago

You should really never assume that a default bitrate is going to be "good", and instead simply set an appropriate value manually.

comment:2 by Rostislav Pehlivanov, 8 years ago

Analyzed by developer: set
Reproduced by developer: set
Resolution: fixed
Status: newclosed

Thanks for the report, the encoder will now pick a default bitrate based on the number of channels, type of channels and pairing (which provides a better estimate than libfdk's way of 64000*number_of_channels).

Fixed in git master, commit f0a8212436c4.

Note: See TracTickets for help on using tickets.