Opened 10 years ago

Closed 9 years ago

Last modified 9 years ago

#3244 closed enhancement (invalid)

Support LATM AAC in MP4 container

Reported by: ramitb Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords: mov
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug: Request to support LATM AAC in MP4 container
How to reproduce:

ffmpeg -y -i "H264 Copy Remux Fail (LATM AAC).ts" -vcodec copy -acodec copy -map 0:1 -map 0:2 "H264 Copy Remux Fail (LATM AAC)-converted.mp4"
ffmpeg version N-59362-ge079661 Copyright (c) 2000-2013 the FFmpeg developers
built on Dec 25 2013 17:42:26 with gcc 4.8.0 (GCC)
configuration: --arch=x86 --target-os=mingw32 --cross-prefix=/home/mcebuddy/Software/ffmpeg/sandbox/mingw-w64-i686/bin/i686-w64-mingw32- --pkg-config=pkg-config --enable-gpl --enable-libx264 --enable-avisynth --enable-libxvid --enable-libmp3lame --enable-version3 --enable-zlib --enable-librtmp --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libopenjpeg --enable-gnutls --enable-libgsm --enable-libfreetype --enable-libopus --disable-w32threads --enable-frei0r --enable-filter=frei0r --enable-libvo-aacenc --enable-bzlib --enable-libxavs --extra-cflags=-DPTW32_STATIC_LIB --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-libschroedinger --enable-libvpx --enable-libilbc --enable-iconv --enable-libtwolame --extra-cflags=-DLIBTWOLAME_STATIC --enable-libmodplug --extra-libs=-lstdc++ --enable-libzvbi --enable-libcaca --prefix=/home/mcebuddy/Software/ffmpeg/sandbox/mingw-w64-i686/i686-w64-mingw32 --enable-static --disable-shared --enable-libsoxr --enable-fontconfig --enable-libass --enable-libutvideo --enable-libbluray --extra-cflags= --enable-nonfree --enable-libfdk-aac --enable-runtime-cpudetect
libavutil      52. 59.100 / 52. 59.100
libavcodec     55. 46.100 / 55. 46.100
libavformat    55. 22.100 / 55. 22.100
libavdevice    55.  5.102 / 55.  5.102
libavfilter     4.  0.102 /  4.  0.102
libswscale      2.  5.101 /  2.  5.101
libswresample   0. 17.104 /  0. 17.104
libpostproc    52.  3.100 / 52.  3.100
Input #0, mpegts, from 'H264 Copy Remux Fail (LATM AAC).ts':
Duration: 00:01:48.57, start: 1.400000, bitrate: 21151 kb/s
Program 1 
Metadata:
service_name    : BBC One HD
service_provider: BBC One HD
Stream #0:0[0x100](eng): Audio: aac_latm ([17][0][0][0] / 0x0011), 48000 Hz, stereo, fltp (hearing impaired)
Stream #0:1[0x101](eng): Audio: aac_latm ([17][0][0][0] / 0x0011), 48000 Hz, stereo, fltp
Stream #0:2[0x102]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv), 1920x1080 [SAR 1:1 DAR 16:9], max. 104857 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
[mp4 @ 03d7d380] Could not find tag for codec aac_latm in stream #0, codec not currently supported in container
Output #0, mp4, to 'H264 Copy Remux Fail (LATM AAC)-converted.mp4':
Metadata:
encoder         : Lavf55.22.100
Stream #0:0(eng): Audio: aac_latm ([17][0][0][0] / 0x0011), 48000 Hz, stereo
Stream #0:1: Video: mpeg2video (a[0][0][0] / 0x0061), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, max. 104857 kb/s, 25 fps, 90k tbn, 90k tbc
Stream mapping:
Stream #0:1 -> #0:0 (copy)
Stream #0:2 -> #0:1 (copy)
Could not write header for output file #0 (incorrect codec parameters ?): Error number -22 occurred

Change History (10)

comment:1 by Carl Eugen Hoyos, 10 years ago

Keywords: mov added
Resolution: invalid
Status: newclosed

Please reopen this ticket if you can either point to a specification that defines latm in isom or if you can provide a sample (that can be played with any media player).

comment:2 by ramitb, 10 years ago

As far as I know:
LATM is defined as part of the specifications ISO/IEC 14496-3
ISO/IEC 14496-3 are supported by MP4 Containter format (ISO/IEC 14496-14:2003)

See section 1.7.1 of the specifications here:
http://www.nhzjj.com/asp/admin/editor/newsfile/2010318163752818.pdf

comment:3 by Hendrik, 10 years ago

The spec defines the LATM/LAOS container format, not how to put it into MP4. In fact, it would make no sense to put it into MP4 like that, instead the underlying AAC should be extracted and put into the MP4 container, no sense in putting a container into a container.

comment:4 by Kieran Kunhya, 10 years ago

What happens if you are using one of the multitude of scalable AAC profiles? Afaik you have to use LATM for these.

Last edited 10 years ago by Kieran Kunhya (previous) (diff)

comment:5 by ramitb, 10 years ago

So is this not a viable option? Is there some way to put the AAC into the MP4 file using ffmpeg without recoding?

comment:6 by ramitb, 9 years ago

Any update on this? BTW does one ask ffmpeg to extract the underlying aac and then embed it into the mp4 container?

comment:7 by ramitb, 9 years ago

Heck, kinda funny but, even microsoft supports decoding LATM aac and converting it to ADTS

https://msdn.microsoft.com/en-us/library/windows/desktop/dd742784(v=vs.85).aspx

Last edited 9 years ago by ramitb (previous) (diff)

comment:8 by ramitb, 9 years ago

Resolution: invalid
Status: closedreopened

Not sure why this was closed. handbrake support it and so it most other encoding software.

comment:9 by Carl Eugen Hoyos, 9 years ago

Resolution: invalid
Status: reopenedclosed

Please reopen this ticket if you can either point to a specification that defines latm in isom or if you can provide a sample (that can be played with any media player).

comment:10 by ramitb, 9 years ago

Fair enough, let me find a sample. I don't know about the specs

Note: See TracTickets for help on using tickets.