[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