[Ffmpeg-devel] MPEG4 over TS

Måns Rullgård mru
Fri Jun 3 12:06:44 CEST 2005

Erik Slagter <erik at slagter.name> writes:

> On Fri, 2005-06-03 at 11:27 +0200, M?ns Rullg?rd wrote:
>> Yes, and ADTS is a syntax for AAC elementary streams with a small (a
>> few bytes) header on each frame.  This header contains a sync pattern
>> and some information about the stream (channels, sample rate, etc),
>> much like MPEG1 audio.  This header can be omitted if the same
>> information can be conveyed by other means (e.g. "extradata" fields),
>> and the container can identify the frame boundaries.  AAC in quicktime
>> is stored this way.
> Ah, ok, clear. So with aac the first layer of encapsulation has been
> made explicit, while mpeg1 audio has it implicit. I like it, but the
> side effect of course is various "upper" layers. Hmmm.

Hmmm, I concur.

>> > another syntax for AAC. These aac people seem to get never tired of
>> > pulling out new dialects
>> Indeed.
> And this would be another first encapsulation layer then.
> So a "pure" aac es is actually not playable without having inside
> information.

The raw data blocks are not usable without information about number of
channels, sample rate, and some other things.

There are four formats commonly used with AAC streams: ADTS (Audio
Data Transport Format), ADIF (Audio Data Interchange Format), LATM
(Low Overhead Audio Transport Multiplex), and LOAS (Low Overhead Audio
Stream).  ADIF uses a single header followed by raw data, which makes
seeking impossible.  There are also ADTS format streams with an ADIF
header.  LOAS is a yet another format, and LATM is a multiplex format
related to LOAS.  Most of these can also be used in various
combinations encapsulated in other containers.  Ain't it fun?

M?ns Rullg?rd
mru at inprovide.com

More information about the ffmpeg-devel mailing list