Ogg Media | это... Что такое Ogg Media? (original) (raw)

Ogg Media (OGM) — формат, контейнер для хранения потоков данных, таких как видео, аудио, и субтитры. Обеспечивает необходимые средства для надёжной транспортировки файла, контроля целостности файла, минимизации количества перемещений по файлу во время воспроизведения нескольких потоков (чередование).

Контейнер Ogg Media — сторонняя модификация контейнера Ogg, рассчитанного на свободные кодеки, поддерживаемые Xiph.Org, сделанная для поддержки несвободных кодеков, обычно используемых с контейнером AVI, с помощью DirectShow. Ogg Media была создана в 2002 году независимо от Xiph.Org, которая в 2004 году опубликовала просьбу убрать вводящее в заблуждение слово «Ogg» из названия контейнера.[1]

Содержание

Формат OGM

Каждый поток данных в терминах ogg называется логический поток (англ. logical bitstream), несколько логических потоков объединяются в физический поток (англ. physical bitstream).

Существуют следующие методы объединения логических потоков в один физический:

Каждый логический поток разбивается на пакеты (англ. packets). Формат пакета определяется используемым кодеком. Пакеты делятся на сегменты (англ. segments), размер каждого из сегментов не превышает 255 байт. Сегменты объединяются в страницы (англ. pages), каждая страница содержит в себе не более 255 сегментов (общий размер данных в одной странице никогда не превышает 64 Кб). Пакет может содержаться более чем в одной странице (то есть быть в размере больше 64 Кб), в этом случае для страницы содержащей продолжение пакета выставляется специальный флаг «продолжение пакета» (англ. continued_packet_flag).

Структура пакета

смещение (hex) размер тип название описание
0x0 4 FOURCC capture_pattern всегда равен 'OggS', 0x4f 0x67 0x67 0x53
0x4 1 BYTE stream_structure_version версия структуры, должна быть равна 0
0x5 1 битовое поле header_type_flag 0x1 continued_packet_flag страница содержит продолжение пакета
0x2 begin_of_stream страница является первой страницей потока
0x4 end_of_stream страница является последней страницей потока
0x6 8 INT64 absolute_granule_position номер последнего фрейма или семпла (отсчёта), закодированного целиком в этом пакете. Фреймы, не поместившиеся в пакет целиком не учитываются, если нет фреймов, поместившихся в пакет целиком, указывается величина -1
0xE 4 INT32 page_serial_number номер логического потока (в рамках заданного физического потока), к которому относится содержимое страницы. Должно быть уникальным в рамках одного физического потока.
0x12 4 UINT32 Page_checksum CRC32-код страницы
0x1A 1 BYTE page_segments количество сегментов в странице. Число [0-255], числа 0 и 255 допустимы (при числе 0 страница не содержит сегментов (и информации) и должна быть просто пропущена).
0x1B page_segments BYTE[] segment_table таблица размеров сегментов в странице. Количество записей в таблице определяется page_segment, в случае нулевого значения, segment_table отсутствует

Существенной особенностью формата является отсутствие общего заголовка для физического потока. Например, бинарное объединение двух файлов будет давать рабочий файл. В OGM-файлах отсутствует индекс у видеопотока (что увеличивает устойчивость формата при передаче данных, но затрудняет воспроизведение).

Каждая страница содержит CRC-код для проверки правильности данных при передаче и воспроизведении.

См. также

Примечания

  1. OGM
Просмотр этого шаблона Медиаконтейнеры
Видео/аудио 3GPASFAVIBink • DMF • DPX • EVO • FLVMatroska (MKV) • WebM • MPEG-PS • MPEG-TSMP4MXF • NUT • OggOgg MediaQuickTimeRealMediaSmackerRIFFVOBсравнениесжатие
Аудио AIFFAPE • AU • DSDDXDMLPMP3FLAC • SHN (англ.) WAVWMAсравнениесжатие
Графические форматы (сжатие)
Растровые Без потерь: BMPFPXGIFICOILBMJBIGPCXPNGPNMPSDRAWTGAWBMPXCFВключая сжатие с потерями: EXRICERJBIG2JPEG / JP2 / JPEG-LSJPEG XR (HD Photo) • PGF (англ.) • TIFFWebPАнимационные: APNGGIFMNG
Векторные AICDREMFEPSPSSVGWMFXPSАнимационные: SVGSWF3D: 3DSVRMLX3D
Комплексные CGMDjVuPDF
Просмотр этого шаблона Медиаконтейнеры
Видео/аудио 3GPASFAVIBink • DMF • DPX • EVO • FLVMatroska (MKV) • WebM • MPEG-PS • MPEG-TSMP4MXF • NUT • OggOgg MediaQuickTimeRealMediaSmackerRIFFVOBсравнениесжатие
Аудио AIFFAPE • AU • DSDDXDMLPMP3FLAC • SHN (англ.) WAVWMAсравнениесжатие
Графические форматы (сжатие)
Растровые Без потерь: BMPFPXGIFICOILBMJBIGPCXPNGPNMPSDRAWTGAWBMPXCFВключая сжатие с потерями: EXRICERJBIG2JPEG / JP2 / JPEG-LSJPEG XR (HD Photo) • PGF (англ.) • TIFFWebPАнимационные: APNGGIFMNG
Векторные AICDREMFEPSPSSVGWMFXPSАнимационные: SVGSWF3D: 3DSVRMLX3D
Комплексные CGMDjVuPDF