[FFmpeg-user] FFmpeg produces m4a files that won't play on Marantz CD6003
richard at richsim900.plus.com
Sat Apr 16 21:07:15 CEST 2011
The Marantz CD6003 will play m4a files via a USB device or iPod
connected to a USB port, but m4a files created using ffmpeg will not
play. Testing has shown that the problem appears to be caused because
the average bit rate (avgBitrate ) in the DecoderConfigDescriptor within
the esds atom is set to zero. Where the avgBitrate is a non zero value,
the m4a files play OK.
I'm using Ubuntu 8.04 (Hardy). FFmpeg version git-N-28888-g6f73d5e built
on Apr 5 2011 with gcc 4.2.4
If I convert an mp3 to m4a using libfaac:
ffmpeg -i test2.mp3 -acodec libfaac test2.m4a
the m4a file won't play. Check the metadata using:
and the avgBitrate in the decConfigDescr in the esds atom = 0.
If I convert the same mp3 to m4a using faac:
ffmpeg -i test4.mp3 -f wav - | faac -o test4.m4a -b 152 -
the m4a file plays OK, but the the avgBitrate in the decConfigDescr in
the esds atom = 151859
An m4a file that does not play (avgBitrate = 0) can be made playable by
changing a tag (any tag) using EasyTag or mp4tags. When a tag is
changed, EasyTag or mp4tags automatically changes the avgBitrate to the
correct (or estimated) value (e.g. avgBitrate =128002).
The problem with m4a files also occurs when I use get_iplayer. The
latest patched version of get_iplayer does this:
rtmpdump downloads flv
ffmpeg remuxes flv to aac using: ffmpeg -i -vn -acodec copy -y
ffmpeg remuxes aac to m4a and removes ADTS using: fmpeg -i -vn -acodec
copy -absf aac_adtstoasc -y
atomicparsley tags the m4a
Again the resulting m4a file will not play, and the avgBitrate in the
esds atom is zero. The m4a file can be made playable using mp4tags to
alter a tag. This automatically changes the avgBitrate to the correct
(or estimated) value, but the file only plays after a long delay. The
-optimize option of mp4creator can be used to remove free atoms and the
resulting m4a files plays OK without a long delay.
Could this problem of setting the AvgBitrate to zero be resolved?
ffmpeg does know the average bit rate, but it doesn't store it in the
m4a file, and so a zero value results.
More information about the ffmpeg-user