[FFmpeg-user] stereo downmix error aac HEv2

Sean Darcy seandarcy2 at gmail.com
Sat Mar 15 00:10:30 CET 2014


On 03/14/2014 07:00 PM, Sean Darcy wrote:
> On 03/14/2014 06:19 PM, Sean Darcy wrote:
>> stripping audio from a VOB , I was trying to reencode to a lower
>> bitrate, and downmix to mono. git March 13.
>>
>>   This worked fine:
>>
>> ffmpeg -i /mnt/dvd/VIDEO_TS/VTS_01_1.VOB -vn -c:a libfdk_aac -b:a 48k
>> -ac 1  1-Talk-show-ac1-48testk.m4a
>>
>> and I can use HEv2 if I don't downmix:
>>
>> ffmpeg -i /mnt/dvd/VIDEO_TS/VTS_01_1.VOB -vn -c:a libfdk_aac -profile:a
>> aac_he_v2 -b:a 48k  1-Talk-he-ac2-48testk.m4a
>>
>> But:
>>
>> ffmpeg -i /mnt/dvd/VIDEO_TS/VTS_01_1.VOB -vn -c:a libfdk_aac -profile:a
>> aac_he_v2 -b:a 48k -ac 1 1-Talk-he-ac1-48testk.m4a
>> ffmpeg version 2.2.git Copyright (c) 2000-2014 the FFmpeg developers
>>    built on Mar 13 2014 15:33:24 with gcc 4.8.2 (GCC) 20131212 (Red Hat
>> 4.8.2-7)
>>    configuration: --prefix=/usr --bindir=/usr/bin
>> --datadir=/usr/share/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man
>> --shlibdir=/usr/lib64 --extra-cflags='-Ofast -march=native -mtune=native
>> -fopenmp -fomit-frame-pointer -pipe' --enable-avresample --enable-static
>> --enable-shared --enable-gray --enable-gpl --enable-nonfree
>> --enable-version3 --enable-postproc --enable-avfilter
>> --enable-avresample --enable-pthreads --enable-x11grab --enable-gray
>> --enable-vaapi --enable-hardcoded-tables --enable-libaacplus
>> --enable-avisynth --enable-frei0r --enable-libfdk-aac --enable-libgsm
>> --enable-libmp3lame --enable-libopenjpeg --enable-libopus
>> --enable-librtmp --enable-libschroedinger --enable-libspeex
>> --enable-libtheora --enable-libvo-aacenc --enable-libvorbis
>> --enable-libvpx --enable-libx264 --enable-libxvid --enable-zlib
>> --disable-debug --cpu=amdfam10 --arch=x86_64 --enable-pic
>> --enable-libopencv --enable-openssl
>>    libavutil      52. 66.101 / 52. 66.101
>>    libavcodec     55. 52.102 / 55. 52.102
>>    libavformat    55. 34.101 / 55. 34.101
>>    libavdevice    55. 11.100 / 55. 11.100
>>    libavfilter     4.  3.100 /  4.  3.100
>>    libavresample   1.  2.  0 /  1.  2.  0
>>    libswscale      2.  5.101 /  2.  5.101
>>    libswresample   0. 18.100 /  0. 18.100
>>    libpostproc    52.  3.100 / 52.  3.100
>> Input #0, mpeg, from '/mnt/dvd/VIDEO_TS/VTS_01_1.VOB':
>>    Duration: 00:07:22.24, start: 0.280633, bitrate: 19421 kb/s
>>      Stream #0:0[0x1bf]: Data: dvd_nav_packet
>>      Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x480
>> [SAR 8:9 DAR 4:3], max. 3000 kb/s, 29.97 fps, 29.97 tbr, 90k tbn,
>> 59.94 tbc
>>      Stream #0:2[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
>> [libfdk_aac @ 0x12b3300] Unable to initialize the encoder: SBR library
>> initialization error
>> Output #0, ipod, to '1-Talk-he-ac1-48testk.m4a':
>>      Stream #0:0: Audio: aac (HE-AACv2), 48000 Hz, mono, s16, 48 kb/s
>> Stream mapping:
>>    Stream #0:2 -> #0:0 (ac3 -> libfdk_aac)
>> Error while opening encoder for output stream #0:0 - maybe incorrect
>> parameters such as bit_rate, rate, width or height
>>
>> Thanks for any help.
>>
>> sean
>
> Oddly, this works:
>
> ffmpeg -i /mnt/dvd/VIDEO_TS/VTS_01_1.VOB -vn -c:a libfdk_aac -profile:a
> aac_he_v2 -b:a 48k -ac 2 1-Talk-he-ac1-48testk.m4a
>
> So it's not just a problem passing the audio channels argument.
>
> sean

More messing around, and it seems the HEv2 won't handle mono at all! 
Here I've taken the output from the successful downmix above and used it 
as input:

ffmpeg -i 1-Talk-show-ac1-48testk.m4a -vn -c:a libfdk_aac -profile:a 
aac_he_v2 -b:a 48k  1-Talk-he-from-ac1-48testk.m4a
ffmpeg version 2.2.git Copyright (c) 2000-2014 the FFmpeg developers
   built on Mar 13 2014 15:33:24 with gcc 4.8.2 (GCC) 20131212 (Red Hat 
4.8.2-7)
   configuration: --prefix=/usr --bindir=/usr/bin 
--datadir=/usr/share/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man 
--shlibdir=/usr/lib64 --extra-cflags='-Ofast -march=native -mtune=native 
-fopenmp -fomit-frame-pointer -pipe' --enable-avresample --enable-static 
--enable-shared --enable-gray --enable-gpl --enable-nonfree 
--enable-version3 --enable-postproc --enable-avfilter 
--enable-avresample --enable-pthreads --enable-x11grab --enable-gray 
--enable-vaapi --enable-hardcoded-tables --enable-libaacplus 
--enable-avisynth --enable-frei0r --enable-libfdk-aac --enable-libgsm 
--enable-libmp3lame --enable-libopenjpeg --enable-libopus 
--enable-librtmp --enable-libschroedinger --enable-libspeex 
--enable-libtheora --enable-libvo-aacenc --enable-libvorbis 
--enable-libvpx --enable-libx264 --enable-libxvid --enable-zlib 
--disable-debug --cpu=amdfam10 --arch=x86_64 --enable-pic 
--enable-libopencv --enable-openssl
   libavutil      52. 66.101 / 52. 66.101
   libavcodec     55. 52.102 / 55. 52.102
   libavformat    55. 34.101 / 55. 34.101
   libavdevice    55. 11.100 / 55. 11.100
   libavfilter     4.  3.100 /  4.  3.100
   libavresample   1.  2.  0 /  1.  2.  0
   libswscale      2.  5.101 /  2.  5.101
   libswresample   0. 18.100 /  0. 18.100
   libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '1-Talk-show-ac1-48testk.m4a':
   Metadata:
     major_brand     : M4A
     minor_version   : 512
     compatible_brands: isomiso2
     encoder         : Lavf55.34.101
   Duration: 00:40:51.28, start: 0.042667, bitrate: 49 kb/s
     Stream #0:0(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, 
fltp, 48 kb/s (default)
     Metadata:
       handler_name    : SoundHandler
[libfdk_aac @ 0x1079840] Unable to initialize the encoder: SBR library 
initialization error
Output #0, ipod, to '1-Talk-he-from-ac1-48testk.m4a':
   Metadata:
     major_brand     : M4A
     minor_version   : 512
     compatible_brands: isomiso2
     encoder         : Lavf55.34.101
     Stream #0:0(und): Audio: aac (HE-AACv2), 48000 Hz, mono, s16, 48 
kb/s (default)
     Metadata:
       handler_name    : SoundHandler
Stream mapping:
   Stream #0:0 -> #0:0 (aac -> libfdk_aac)
Error while opening encoder for output stream #0:0 - maybe incorrect 
parameters such as bit_rate, rate, width or height

Is this a bug? Or does the HEv2 profile simply not accept mono?

sean



More information about the ffmpeg-user mailing list