MPEG-4 Part 14 - формат медиаконтейнера, является частью международного стандарта MPEG-4. Так же известен как MP4 и ISO/IEC 14496-14:2003. Первая версия формата, ISO / IEC 14496-1: 2001, была выпущена в 2001 году, итоговая версия - в 2003. Основан на формате ISO / IEC (14496-12: 2004), который основан на видео контейнере MOV (так же известном как Apple QuickTime).[2]
Поддерживает упаковку видео и аудио потоков, субтитров, статичных изображений и метаданных. Так же имеется возможность потокового вещания с передачей необходимых метаданных. Не включает в себя алгоритмы сжатия информации. Некоторые версии формата имеют возможности шифрования и защиты от копирования (DRM). MP4 наиболее часто используется для упаковки потокового видео, видео для мобильных устройств, аудио файлов музыки и аудиокниг. Официальным расширением является .mp4.
Файл MP4, как и любой файл формата MPEG-4 состоит из дерева блоков, называемых атомами (Atom) или контейнерами (Box). Атомы имеют иерархическую фиксированную структуру типов. [3]
Каждый атом имеет байтовую структуру вида:
Номера байт |
Назначение |
---|---|
0…3 |
Размер атома в байтах. Соответственно каждый атом может иметь размер в пределах от 1 байта до 4 гигабайт. |
4…7 |
Описание типа атома. |
8…N |
Содержимое атома. |
Тип |
Назначение |
Количество вхождений |
---|---|---|
ftyp |
Описание типа файла и типов версий основных его структур |
1 |
pdin |
Информация прогрессивной загрузки видео |
0…1 |
moov |
Контейнер, содержит любые метаданные |
1 |
moof |
Контейнер, содержит отдельные видеофрагмент |
0…N |
mfra |
Контейнер, содержит функционал произвольного доступа к видеофрагменту |
1 |
mdat |
Контейнер, содержит потоки видео, аудио, субтитров |
0…N |
meta |
Контейнер, содержит метаданные |
0…1 |
free, skip |
Атомы неиспользуемого места |
0…N |
Тип |
Назначение |
Количество вхождений |
---|---|---|
mvhd |
Заголовок видео, полное описание |
1 |
trak |
Контейнер для отдельной дорожки или потока |
1…N |
mvex |
Информация о продолжении фрагмента |
1…N |
ipmc |
Содержит IPMP дескрипторы |
0…1 |
udta |
Пользовательская информация и информация о треке |
0…1 |
iods |
Содержит дескриптор mp4 файла |
0…1 |
Тип |
Назначение |
Количество вхождений |
---|---|---|
mfhd |
Заголовок фрагмента видео |
1 |
traf |
Контейнер для фрагмента трека |
0…N |
Тип |
Назначение |
Количество вхождений |
---|---|---|
tfra |
Произвольный доступ к фрагменту трека. |
1…N |
mfro |
Смещение для произвольного доступа к фрагменту видео |
1 |
Тип |
Назначение |
Количество вхождений |
---|---|---|
hdlr |
Объявление типа метаданных |
1 |
dinf |
Информация о данных положения медиа информации в треке |
1 |
ipmc |
Содержит IPMP дескрипторы |
0..1 |
iloc |
Предоставляет информацию о положениях отдельных упакованных файлов в данном, или каком-либо другом файле |
0..1 |
ipro |
Информация о защите файла |
0..1 |
iinf |
Информация об отдельных элементах |
0..1 |
xml, bxml |
Для хранения первичных данных в формате XML |
0..1 |
pitm |
Описание ссылочных типов первичных данных |
0..1 |
Тип |
Назначение |
---|---|
tkhd |
Заголовок трека, общая информация о треке |
tref |
Контейнер ссылок дорожки |
edts |
Контейнер списка редактирования |
mdia |
Контейнер для медиаинформации в дорожке |
Тип |
Назначение |
---|---|
mehd |
Расширение заголовка видео |
trex |
Расширение дорожки |
Тип |
Назначение |
---|---|
cprt |
Авторские права |
Тип |
Назначение |
---|---|
tfhd |
Заголовок фрагмента трека |
trun |
Фрагмент трека |
sdtp |
Независимый одноразовый контейнер образцов |
sbgp |
Группа образца |
subs |
Информация о подвыборке |
Тип |
Назначение |
---|---|
dref |
Ссылка на данные, объявляет источник(и) медиаданных в дорожке |
Тип |
Назначение |
---|---|
sinf |
Информация о схеме защиты данных |
Тип |
Назначение |
---|---|
elst |
Список редактирования |
Тип |
Назначение |
---|---|
mdhd |
Заголовок медианосителя, общая информация о медиаданных |
hdlr |
Обработчик, объявляет тип носителя (обработчика) |
minf |
Контейнер информации о медиаданных |
Тип |
Назначение |
---|---|
frma |
Контейнер оригинального формата |
imif |
Контейнер с информацией об IPMP |
schm |
Контейнер типа схемы |
schi |
Контейнер информации о схеме |
Тип |
Назначение |
---|---|
vmhd |
Заголовок видео, общая информация (только видеодорожка) |
smhd |
Заголовок звукового носителя, общая информация (только звуковая дорожка) |
hmhd |
Заголовок носителя подсказки, общая информация (только дорожка подсказки) |
nmhd |
Нулевой медиа-заголовок, общая информация (только некоторые треки) |
dinf |
Информационный контейнер данных |
stbl |
Контейнер с образцом таблицы, контейнер для карты времени/пространства |
Тип |
Назначение |
---|---|
dref |
Поле ссылки на данные, объявляет источник (и) медиаданных в дорожке |
Тип |
Назначение |
---|---|
stsd |
Описания образцов (типы кодеков, инициализация и т. д.) |
stts |
(decoding) time-to-sample |
ctts |
(composition) time-to-sample |
stsc |
Информация о частичном смещении данных (sample-to-chunk) |
stz2 |
Компактные размеры образцов (кадрирование) |
stco |
Смещение фрагмента, информация о частичном смещении данных |
co64 |
Смещение 64-битного блока |
stss |
Таблица образцов синхронизации (точки произвольного доступа) |
stsh |
Таблица образцов теневой синхронизации |
padb |
Образцы битов заполнения (sample padding bits) |
stdp |
Приоритет деградации образца |
sdtp |
Независимый и одноразовый контейнер для образцов |
sbgp |
Sample-to-group box |
sgpd |
Sample group definition box |
subs |
Sub-sample information |
Информация об структурных атомах для MP4 была взята из источника “The MP4 Registration Authority” [1]
Описание типов атомов содержится в спецификации ISO/IEC 14496-14:2003 [2]
Корневой уровень |
Уровень 1 |
Уровень 2 |
Уровень 3 |
Уровень 4 |
Уровень 5 |
ftyp |
|||||
pdin |
|||||
moov |
mvhd |
||||
trak |
tkhd |
||||
tref |
|||||
edts |
elst |
||||
mdia |
mdhd |
||||
hdlr |
|||||
minf |
vmhd |
||||
smhd |
|||||
hmhd |
|||||
nmhd |
|||||
dinf |
dref |
||||
stbl |
stsd |
||||
stts |
|||||
ctts |
|||||
stsc |
|||||
stsz |
|||||
stz2 |
|||||
stco |
|||||
co64 |
|||||
stss |
|||||
stsh |
|||||
padb |
|||||
stdp |
|||||
sdtp |
|||||
sbgp |
|||||
sgpd |
|||||
subs |
|||||
mvex |
mehd |
||||
trex |
|||||
ipmc |
|||||
udta |
cprt |
||||
iods |
|||||
moof |
mfhd |
||||
traf |
tfhd |
||||
trun |
|||||
sdtp |
|||||
sbgp |
|||||
subs |
|||||
mfra |
tfra |
||||
mfro |
|||||
mdat |
|||||
free |
|||||
skip |
|||||
meta |
hdlr |
||||
dinf |
dref |
||||
ipmc |
|||||
iloc |
|||||
ipro |
sinf |
frma |
|||
imif |
|||||
schm |
|||||
schi |
|||||
iinf |
|||||
xml |
|||||
bxml |
|||||
pitm |
Правообладатель: ISO
Используемые расширения файлов: .mp4
MIME type: video/mp4, audio/mp4
Выпущен: октябрь 2002
Последняя версия: ISO/IEC 14496-14:2020 (январь 2020)
Хранимая информация: аудио, видео, текст
Звук с переменным битрейтом: Есть
Переменная частота кадров: Есть
Аппаратные плееры: Есть
Потоковое мультимедиа: Есть
Метаданные: Есть
Главы: Не поддерживается на уровне стандарта, есть два популярных представления: текстовая дорожка (QuickTime) и атом пользовательских данных (Nero)
Вложения: Есть
Интерактивные меню: Есть
3D-визуализация: Только на уровне формата видео
Поддерживаемые форматы сжатия видео
Поддерживаемые форматы сжатия аудио