ADTS
From MultimediaWiki
Audio Data Transport Stream (ADTS) is a format, used by MPEG TS or Shoutcast to stream audio, usually AAC.
[edit]
Structure
AAAAAAAA AAAABCCD EEFFFFGH HHIJKLMM MMMMMMMM MMMOOOOO OOOOOOPP (QQQQQQQQ QQQQQQQQ)
Header consists of 7 or 9 bytes (without or with CRC).
| Letter | Length (bits) | Description |
|---|---|---|
| A | 12 | syncword 0xFFF, all bits must be 1 |
| B | 1 | MPEG Version: 0 for MPEG-4, 1 for MPEG-2 |
| C | 2 | Layer: always 0 |
| D | 1 | protection absent, Warning, set to 1 if there is no CRC and 0 if there is CRC |
| E | 2 | profile, the MPEG-4 Audio Object Type minus 1 |
| F | 4 | MPEG-4 Sampling Frequency Index (15 is forbidden) |
| G | 1 | private stream, set to 0 when encoding, ignore when decoding |
| H | 3 | MPEG-4 Channel Configuration (in the case of 0, the channel configuration is sent via an inband PCE) |
| I | 1 | originality, set to 0 when encoding, ignore when decoding |
| J | 1 | home, set to 0 when encoding, ignore when decoding |
| K | 1 | copyrighted stream, set to 0 when encoding, ignore when decoding |
| L | 1 | copyright start, set to 0 when encoding, ignore when decoding |
| M | 13 | frame length, this value must include 7 or 9 bytes of header length: FrameLength = (ProtectionAbsent == 1 ? 7 : 9) + size(AACFrame) |
| O | 11 | Buffer fullness |
| P | 2 | Number of AAC frames (RDBs) in ADTS frame minus 1, for maximum compatibility always use 1 AAC frame per ADTS frame |
| Q | 16 | CRC if protection absent is 0 |
[edit]
Usage in MPEG-TS
ADTS packet must be a content of PES packet. Pack AAC data inside ADTS frame, than pack inside PES packet, then mux by TS packetizer.
[edit]
Usage in Shoutcast
ADTS frames goes one by one in TCP stream. Look for syncword, parse header and look for next syncword after.
