Контейнерный формат


Контейнерный формат (неформально иногда называемый обёрткой, также метафайл) — это формат файла, который позволяет встраивать несколько потоков данных в один файл, обычно вместе с метаданными для идентификации и более подробного описания этих потоков[1]. Известные примеры контейнерных форматов включают архивные файлы (например, формат ZIP) и форматы, используемые для воспроизведения мультимедиа (такие как Matroska, MP4 и AVI). Одними из первых кроссплатформенных контейнерных форматов были Distinguished Encoding Rules и Interchange File Format 1985 года.

Конструкция

undefined

Хотя контейнеры могут определять, как закодированы данные или метаданные, они не предоставляют инструкций по декодированию этих данных. Программа, способная открыть контейнер, также должна использовать соответствующий кодек для декодирования его содержимого. Если у программы нет необходимого алгоритма, она не сможет использовать содержащиеся данные. В таких случаях программы обычно выдают сообщение об ошибке, указывающее на отсутствие кодека, который пользователь может попытаться установить.

Контейнерные форматы могут быть созданы для обёртывания любых типов данных. Хотя существуют примеры таких форматов файлов (например, WindowsDLL), большинство контейнерных форматов специализированы под определённые требования к данным. Например, поскольку аудио- и видео-потоки могут кодироваться и декодироваться с помощью множества различных алгоритмов, контейнерный формат может использоваться для создания видимости единого формата файла для пользователей программ воспроизведения мультимедиа.

Особенности

Различия между контейнерными форматами обусловлены пятью основными факторами:

  1. Популярность; насколько широко поддерживается контейнер.
  2. Избыточность. Это разница в размере файла между двумя файлами с одинаковым содержимым, но в разных контейнерах.
  3. Поддержка расширенных функций кодеков. Старые форматы, такие как AVI, не поддерживают новые возможности кодеков, такие как B-кадры, VBR-аудио или VFR-видео. Формат может быть «взломан» для добавления поддержки, но это создаёт проблемы совместимости.
  4. Поддержка расширенного содержимого, такого как главы, субтитры, метатеги, пользовательские данные.
  5. Поддержка потокового мультимедиа.

Форматы с единым кодированием

В дополнение к чистым контейнерным форматам, которые определяют только обёртку, но не кодирование, существует ряд форматов файлов, которые определяют и уровень хранения, и кодирование, как часть модульного дизайна и обратной совместимости.

Примеры включают JPEG File Interchange Format (JFIF) для хранения данных JPEG и Portable Network Graphics (PNG).

В принципе, кодирование может быть изменено при сохранении уровня хранения; например, Multiple-image Network Graphics (MNG) использует контейнер PNG, но обеспечивает анимацию, а JPEG Network Graphics (JNG) помещает JPEG-кодированные данные в контейнер PNG; однако в обоих случаях форматы имеют разные магические числа — формат определяет кодирование, хотя MNG может содержать как PNG-кодированные, так и JPEG-кодированные изображения.

Контейнерные форматы мультимедиа

Контейнерный файл используется для идентификации и чередования различных типов данных. Более простые контейнерные форматы могут содержать различные типы аудиоформатов, в то время как более продвинутые поддерживают несколько аудио- и видеопотоков, субтитры, информацию о главах и метаданные (теги) — а также синхронизирующую информацию, необходимую для одновременного воспроизведения различных потоков. В большинстве случаев заголовок файла, большая часть метаданных и синхронизирующие блоки определяются контейнерным форматом. Например, существуют контейнерные форматы, оптимизированные для низкокачественного интернет-видеостриминга, которые отличаются от требований к высококачественному стримингу Blu-ray.

Части контейнерного формата имеют различные названия: «чанки» (chunks) в RIFF и PNG, «атомы» (atoms) в QuickTime/MP4, «пакеты» (packets) в MPEG-TS (термин из телекоммуникаций) и «сегменты» (segments) в JPEG. Основное содержимое чанка называется «данные» или «полезная нагрузка» (payload). В большинстве контейнерных форматов чанки идут последовательно, каждый с заголовком, тогда как TIFF хранит смещения. Модульные чанки позволяют легко восстановить другие чанки в случае повреждения файла или потери кадров или битового сдвига, тогда как смещения приводят к ошибкам кадрирования при битовом сдвиге.

Некоторые контейнеры предназначены только для аудио:

  • AIFF (формат файла IFF, широко используется на платформе macOS)
  • WAV (формат файла RIFF, широко используется на платформе Windows)
  • XMF (Extensible Music Format)

Другие контейнеры предназначены только для неподвижных изображений:

Другие гибкие контейнеры могут содержать множество типов аудио- и видеоданных, а также другие медиа. Наиболее популярные мультимедийные контейнеры:[2][3]

  • 3GP (используется многими мобильными телефонами; основан на ISO base media file format)
  • ASF (контейнер для Microsoft WMA и WMV, которые сегодня обычно не используют контейнер)
  • AVI (стандартный контейнер Microsoft Windows, также основан на RIFF)
  • DVR-MS («Microsoft Digital Video Recording», проприетарный видео-контейнер, разработанный Microsoft на основе ASF)
  • Flash Video (FLV, F4V) (контейнер для видео и аудио от Adobe Systems)
  • IFF (первый кроссплатформенный контейнерный формат)
  • Matroska (MKV) (не ограничен каким-либо форматом кодирования, может содержать практически любые данные; это открытый стандарт контейнерного формата)
  • MJ2 — Motion JPEG 2000 file format, основан на ISO base media file format, определённом в MPEG-4 Part 12 и JPEG 2000 Part 12
  • QuickTime File Format (стандартный видео-контейнер QuickTime от Apple Inc.)
  • MPEG program stream (стандартный контейнер для MPEG-1 и MPEG-2 элементарных потоков на достаточно надёжных носителях, таких как диски; также используется на DVD-Video)
  • MPEG-2 transport stream (также MPEG-TS) (стандартный контейнер для цифрового вещания и передачи по ненадёжным каналам; также используется на Blu-ray Disc; обычно содержит несколько видео- и аудиопотоков, а также электронный программный гид)
  • MP4 (стандартный аудио- и видео-контейнер для мультимедийного портфолио MPEG-4, основан на ISO base media file format, определённом в MPEG-4 Part 12 и JPEG 2000 Part 12, который, в свою очередь, основан на формате файлов QuickTime)
  • Ogg (стандартный контейнер для аудиоформатов Xiph.orgVorbis и Opus, а также видеоформата Theora)
  • RM (RealMedia; стандартный контейнер для RealVideo и RealAudio)
  • WebM (подмножество Matroska, используется для распространения медиа через интернет-платформы; контейнер для свободных аудиоформатов Vorbis/Opus и видеоформатов VP8/VP9/AV1)

Существуют и другие контейнерные форматы, такие как NUT, MXF, GXF, ratDVD, SVI, VOB и DivX Media Format.

См. также

Примечания

  1. Ho, Anthony T. S. Handbook of Digital Forensics of Multimedia Data and Devices, Enhanced E-Book / Anthony T. S. Ho, Shujun Li. — John Wiley & Sons, 2016-05-20. — P. 146–(?). — ISBN 9781118757079.
  2. What Are Container File Formats (Media Containers)? Cloudinary (24 января 2024). Дата обращения: 22 августа 2024.
  3. Trattnig, Armin The Definitive Guide to Container File Formats. Bitmovin (14 июня 2022). Дата обращения: 22 августа 2024.

Ссылки