[FFmpeg-devel] Chrome not able to playback aac_he_v2 when remuxed from mpegts to mp4 using the aac_adtstoasc bitstream filter

Anders Rein ARein at vizrt.com
Thu Apr 28 13:16:07 CEST 2016


Google Chrome is not able to playback aac_he_v2 streams remuxed from mpegts to mp4. To reproduce the problem:


ffmpeg -f lavfi -i 'aevalsrc=sin(2*PI*t*440)[out0]' -t 10 -movflags faststart -c:a libfdk_aac -ac 2 -ar 48000 -profile:a aac_he_v2 -f mpegts tmp.ts

ffmpeg -i tmp.ts -c copy -bsf:a aac_adtstoasc test.mp4


However if the audio is encoded directly to mp4 it works fine:


ffmpeg -f lavfi -i 'aevalsrc=sin(2*PI*t*440)[out0]' -t 10 -movflags faststart -c:a libfdk_aac -ac 2 -ar 48000 -profile:a aac_he_v2 -f mp4 test.mp4


It is only when using aac_he_v2 profile that Chrome refuses to playback the file. Using the aac_he profile works fine:


ffmpeg -f lavfi -i 'aevalsrc=sin(2*PI*t*440)[out0]' -t 10 -movflags faststart -c:a libfdk_aac -ac 2 -ar 48000 -profile:a aac_he -f mpegts tmp.ts

ffmpeg -i tmp.ts -c copy -bsf:a aac_adtstoasc test.mp4


There seems to be something wrong with the aac_adtstoasc bitstream filter that does not account for aac_he_v2. It might be a bug in Chrome as well since ffplay is able to playback all the variations without any problem, but please note that Chrome IS able to playback the file when it is encoded directly.


More information about the ffmpeg-devel mailing list