On Wed, May 19, 2021 at 12:17:38 +0200, Tobias Rapp wrote: > Looks like the data that should be found in the "esds" atom is missing or > incomplete when using -c:a copy. See this link for details on how AAC > profile information is stored in MP4: > > https://stackoverflow.com/questions/3987850/mp4-atom-how-to-discriminate-the-audio-codec-is-it-aac-or-mp3
Interesting stuff. > Don't know enough about TS (de)muxing, though, to find out where this > profile data should be parsed out from the input by FFmpeg. MPEG-TS and demuxing isn't the problem. If you look at the ffmpeg output in the original e-mail from decoding the file, it correctly identifies the codec as "aac (LC)". The issue is the encoding to MP4. The reason is that the AAC variants have only one codec tag AV_CODEC_ID_AAC, and that needs to map to various tags, e.g. 0x40 for AAC and 0x67 for AAC LC. https://github.com/FFmpeg/FFmpeg/blob/3749eede66c3774799766b1f246afae8a6ffc9bb/libavformat/isom.c#L34 When writing the tag in the esds atom, there's no additional info available allowing mapping to 0x67, therefore 0x40 is written: https://github.com/FFmpeg/FFmpeg/blob/3749eede66c3774799766b1f246afae8a6ffc9bb/libavformat/movenc.c#L711 I have no idea how this info could be carried forward. Moritz _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".