file.mp4
└─ftyp
├─mdat
└─moov
├─mvhd
├─trak
│ ├─tkhd
│ └─mdia
│ ├─mdhd
│ ├─hdlr
│ └─minf
│ ├─vmhd
│ ├─dinf
│ │ └─dref
│ │ └─alis
│ │
│ └─stbl
│ ├─stsc
│ ├─stts
│ ├─stsd
│ │ └─avc1
│ │ └─avcC
│ │
│ ├─stss
│ ├─stco
│ └─stsz
│
└─trak
├─tkhd
└─mdia
├─mdhd
├─hdlr
└─minf
├─smhd
├─dinf
│ └─dref
│ └─url
│
└─stbl
├─stsd
│ └─mp4a
│ └─esds
│
├─stts
├─stsc
├─stsz
└─stco
ftyp (file type) — содержит тип файла и его совместимость. [копируем]
mdat (media data) — содержит медиа данные. В видео треках, этот атом содержал бы кадры видео. Количество mdat атомов может быть от нуля и более. [парсим]
moov (movie box) — содержит все метаданные по работе с mdat.
mvhd (movie header) — определяет общие параметры (timescale, длительность наибольшего трека и т.д.).
trak (track) — содержит один трек презентации. Презентация может содержать один или более треков.
tkhd (track header) — описаны характеристики одного трека (timescale, длительность конкретного трека и т.д.). В одном треке может находится только один tkhd атом.
mdia (media) — контейнер медиа описаний хранящий все объекты, которые имеют информацию о медиа данных принадлежащих треку.
mdhd (media header) — содержит параметры трека (timescale, длительность конкретного трека и т.д.).
hdlr (handler reference) — описывает процесс проигрывания медиа-данных трека. [копируем]
minf (media information) — контейнер, хранящий один определенный media header, data information и sample table.
vmhd (video media header) — содержит общую информацию о презентации видео данных. [копируем]
dinf (data information) — содержит объекты, которые объявляют место хранения медиа информации в треке. [копируем]
dref (data reference) — содержит таблицу ссылок. Позволяет иметь треку одновременно несколько источников. [не используем]
alis (???) — ???. [не используем]
stbl (sample table) — содержит таблицу с индексацией по времени и данным медиа сэмплов в треке. Используя находящиеся здесь таблицы можно определить их тип, размер, контейнер и оффсет (смещение) данных в mdat.
stsc (sample to chunk) — сэмплы внутри медиа данных сгруппированы в чанки. Чанки могут различный размер, и сэмплы внутри чанков тоже могут отличаться размером. Эта таблица может быть использована для поиска чанков, в которых хранятся сэмплы, их позицию и связанное с конкретным сэмплом описание.
stts (decoding time to sample) — содержит компактную версию таблицы, которая позволяет проводить индексацию по дельте и количеству сэмплов.
stsd (sample description) — дает подробное описание типа использованного кодирования и информацию об инициализации необходимой для данной кодировки. [копируем]
avc1 (AVC) — обозначает совместимость с расширениями AVC. [не используем]
avcC (???) — ??? [не используем]
stss (sync sample) — хранит ключевые кадры.
stco (chunk offset) — хранит сдвиг каждого чанка относительно начала файла. Существует два типа оффсетов: 32 битный и 64 битный.
stsz (sample size) — содержит число сэмплов и таблицу с размерами каждого сэмпла в байтах.
trak («—») — «—».
tkhd («—») — «—».
mdia («—») — «—».
mdhd («—») — «—».
hdlr («—») — «—». [копируем]
minf («—») — «—».
smhd (sound media header) — содержит общую информацию об аудио данных. [копируем]
dinf («—») — «—». [копируем]
dref («—») — «—». [не используем]
url (url) — ссылка на местоположение медиа-данных используемых в презентации. [не используем]
stbl («—») — «—».
stsd («—») — «—». [копируем]
mp4a (mp4) — обозначает, что файл имеет незащищенный формат.
esds (???) — ???
stts («—») — «—».
stsc («—») — «—».
stsz («—») — «—».
stco («—») — «—».
- Start offset
- Box size
- Box type
- Start offset
- Box size
- Box type
- Samples
- No.
- Sample delta
- Size
- Chunk num
- Chunk offset
- i-Frame
- Sample offset
- Start offset
- Box size
- Box type
- Start offset
- Box size
- Box type
- Version
- Flags
- Creation time (UTC)
- Modification time (UTC)
- Time scale
- Duration
- Duration (ms)
- Next track id
- Volume
- Rate
- Start offset
- Box size
- Box type
- Start offset
- Box size
- Box type
- Version
- Flags
- Creation time (UTC)
- Modification time (UTC)
- Track id
- Duration
- Width
- Height
- Start offset
- Box size
- Box type
- Start offset
- Box size
- Box type
- Version
- Flags
- Creation time (UTC)
- Modification time (UTC)
- Time scale
- Duration
- Language
- Start offset
- Box size
- Box type
- Version
- Flags
- Handler type
- Name
- Start offset
- Box size
- Box type
- Start offset
- Box size
- Box type
- Version
- Flags
- Start offset
- Box size
- Box type
- Version
- Flags
- Start offset
- Box size
- Box type
- Start offset
- Box size
- Box type
- Version
- Flags
- Enty count
- Start offset
- Box size
- Box type
- Start offset
- Box size
- Box type
- Version
- Flags
- Location
- Start offset
- Box size
- Box type
- Start offset
- Box size
- Box type
- Version
- Flags
- Entry count
- List
- No.
- First chunk
- Samples per chunk
- Samples description index
- Start offset
- Box size
- Box type
- Version
- Flags
- Entry count
- List
- No.
- Sample count
- Sample delta
- Start offset
- Box size
- Box type
- Version
- Flags
- Start offset
- Box size
- Box type
- Width
- Height
- Horiz resolution
- Ver resolution
- Compression name
- Start offset
- Box size
- Box type
- Configuration version
- AVC profile indication
- AVC profile compatibility
- AVC level indication
- NAL Unit length size
- Num sequence parameter sets
- Sequence parameter set (0)
- Num picture parameter sets
- Picture parameter set (0)
- Start offset
- Box size
- Box type
- Start offset
- Box size
- Box type
- Version
- Flags
- Entry count
- List
- No.
- Sample number
- Start offset
- Box size
- Box type
- Version
- Flags
- Entry count
- List
- No.
- Chunk offset
- Start offset
- Box size
- Box type
- Version
- Flags
- Sample size
- Sample count
- List
- No.
- Sample size