Медиаконтейнер

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

Медиаконтейнер, мультимедиаконтейнер (англ. Media container) — формат файла или потоковый формат (поток, в отличие от файла, не является предметом хранения), чьи спецификации определяют только способ представления данных (а не алгоритм кодирования) в пределах одного файла. Медиаконтейнер определяет размер и структуру представляемых данных, вместе с тем он не определяет никакую кодификацию самих данных. Медиаконтейнер фактически является метаформатом, так как он хранит данные и информацию о том, как данные будут сохраняться внутри файла. Как следствие, программа, которая способна корректно идентифицировать и открыть файл (прочитать поток), записанный в каком-либо формате, впоследствии может быть не способна декодировать фактические данные, записанные внутри медиаконтейнера, так как или метаданные в медиаконтейнере являются недостаточными, или программное обеспечение неспособно декодировать данные, закодированные в медиаконтейнере.

В теории формат-контейнер способен хранить любой тип данных, однако на практике для каждого типа данных существуют отдельные группы контейнеров. Эти группы «настроены» для специфических требований и информации, которая будет сохраняться в них. Медиаконтейнеры являются типичным примером такой группы файловых контейнеров, которые предназначены для сохранения медиаинформации, которая условно делится на изображения, видео и аудио. В случае фильмов медиаконтейнер должен не только сохранять видео- и аудиопоток, но и метки для их синхронизации при воспроизведении. В медиаконтейнере может сохраняться несколько однотипных потоков, например фильм (видеопоток) с несколькими звуковыми дорожками (аудиопотоками) и субтитрами (текстовыми потоками).

Список медиаконтейнеров

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

Составные части контейнера файла имеют различные наименования. В RIFF и PNG их часто называют chunks (куски), в MPEG-TS их называют packets (пакеты), а в JPEG они называются «segments» (сегменты). Основной контент данных составных частей называется «данные» или «полезная нагрузка». В большинстве контейнерных форматов каждая составная часть в последовательности имеет свой заголовок (англ. header), в то время как медиаконтейнер TIFF вместо этого сохраняет смещения, что приводит к трудностям в сохранении информации. Модульные составные части облегчают восстановление других составных частей в случае повреждения файла или при «выпадении» кадров или при bit slip[en].

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

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

Некоторые медиаконтейнеры предназначены для сохранения только статических изображений:

  • FITS (англ. Flexible Image Transport System — гибкая транспортная система изображения) — медиаконтейнер для статичных изображений, необработанных данных (англ. raw data) и связанных метаданных.
  • TIFF (англ. Tagged Image File Format — теговый файловый формат изображений) — медиаконтейнер для статичных изображений и связанных метаданных.

Большинство медиаконтейнеров приспособлено для сохранения всех или почти всех типов медиаинформации, включая аудио, видео и текст. Самые популярные из них:

  • 3gp (используется на многих мобильных телефонах, основан на стандартизированном ISO формате медиафайлов, определён спецификаций MPEG-4 Part 12)
  • ANIM — медиаконтейнер для цифровой анимации на линейке классических компьютеров Commodore Amiga, следует основным спецификациям IFF ILBM.
  • ASF (англ. Advanced Systems Format — продвинутый системный формат) — стандартный медиаконтейнер для Microsoft WMA и WMV.
  • AVI (англ. Audio Video Interleave — чередование аудио и видео) — стандартный медиаконтейнер для Microsoft Windows, базируется на RIFF, один из самых распространённых.
  • CDXL (другое наименование для формата ANIM) — медиаконтейнер для анимации для Amiga CDTV и Amiga CD32.
  • DVR-MS (англ. Digital Video Recording — Microsoft — цифровая видеозапись — Майкрософт) — проприетарный медиаконтейнер, разработанный Microsoft и базирующийся на ASF. DVR-MS использует видео стандарта MPEG-2 и аудио стандартов MPEG-1 Layer II или Dolby Digital AC-3 (ATSC A/52).
  • IFF (англ. Interchange File Format — чередующийся файловый формат) — первый платформо-независимый медиаконтейнер.
  • Matroska (MKV, Матрёшка) — открытый свободный стандарт и медиаконтейнер.
  • MPEG-TS (англ. MPEG-2 transport stream — транспортный поток MPEG) — медиаконтейнер для цифрового широковещательного телевидения. Стандартно содержит несколько видео- и аудиопотоков и расписание телепрограмм (Electronic Program Guide).
  • MP4 (MPEG-4 Part 14) — медиаконтейнер, поддерживающий аудио и видео из группы MPEG-4.
  • M4V — медиаконтейнер на базе MPEG-4 Part 14 с добавлением возможности DRM-защиты и поддержки кодека AC3
  • MOV — медиаконтейнер для мультимедийного фреймворка QuickTime, разработанный Apple.
  • Ogg — медиаконтейнер для аудиокодека Vorbis от Xiph.org и видеокодека Theora.
  • OGM (Ogg Media) медиаконтейнер для кодеков от Xiph.org, более не поддерживаемый и формально отторгнутый Xiph.org.[1]
  • RealMedia — медиаконтейнер для RealVideo и RealAudio.
  • MXF ( англ. Material eXchange Format — формат обмена данными) — контейнер для профессионального хранения и обработки видео- и аудиоматериалов.

Есть также много других медиаконтейнеров, например NUT, MPEG-1, MXF, GXF, ratDVD, SVI, VOB и DivX Media Format.

Single coding formats

В дополнение к «чистым» контейнерным форматам, которые определяют только «обёртку», а не алгоритм кодирования, есть некоторые файловые форматы, которые определяют и слой хранения, и слой кодирования, как часть модульного дизайна и для совместимости «снизу вверх». К таким медиаконтейнерам относятся JPEG File Interchange Format (JFIF) для JPEG-изображений и Portable Network Graphics (PNG). Такие полнофункциональные медиаконтейнеры (хотя понятие «медиаконтейнер» к ним не совсем применимо) называются «Single coding format» (рус. Единый формат кодирования).

Различия

Все различия между разными медиаконтейнерами происходят из пяти основ:

  • Популярность. Насколько распространён и поддерживается данный контейнер.
  • Размер файла. Показывает различие в файловом размере между двумя файлами, которые имеют одинаковый контент, но сохранены различными медиаконтейнерами.
  • Поддержка расширенной функциональности кодека. Старые медиаконтейнеры, такие как AVI, не поддерживают новые особенности кодеков, такие как B-кадры, переменный битрейт аудиопотока и переменную частоту кадров видеопотока. Контейнер может быть «взломан» для добавления поддержки, но это создаёт проблемы совместимости.
  • Поддержка расширенного контента. Поддерживает ли медиаконтейнер разделы, субтитры, мета-теги и пользовательские данные.
  • Поддержка потокового мультимедиа.

Remux

Remux (ремультиплексирование) — принятый в сфере видеокодирования термин, означающий перекомпоновку содержимого медиаконтейнера. Его важной особенностью является отсутствие перекодировки (сохранение исходного качества) основных элементарных потоков (видео- и аудиопотока). Заменяется лишь медиаконтейнер, также могут добавляться или удаляться субтитры, меню, множественные аудиопотоки (дополнительные звуковые дорожки) и прочие второстепенные данные.

Примечания