Ogg — открытый мультимедийный контейнер¶
Ogg — открытый бесплатный мультимедийный контейнер, разработанный фондом Xiph.Org. Формат описывает потоковое мультимедиа: аудио, видео, текстовые субтитры и метаданные, упакованные в единый файл с расширением .ogg. Ogg не является кодеком: он лишь задаёт структуру упаковки сжатых данных, поэтому в контейнере могут использоваться различные кодеки — например, Vorbis и Opus для звука, Theora и AV1 для видео, Speex для речи.
¶История
Разработка формата началась в 1990-х годах в проекте Xiph.Org, изначально созданном для создания свободных аудиокодеков, не обремённых патентными ограничениями. Имя «Ogg» придумал Крис Керри (Chris Carrie), один из основателей проекта; по его словам, название не имеет сокращения и выбрано из-за «двойного O» в стиле «ниндзя-черепахи».
Первым кодеком, предназначенным для контейнера, стал Vorbis — аудиокодек, созданный как свободная альтернатива MP3 и AAC. В 2003 году формат Ogg Vorbis обрёл статус рекомендованного стандарта IETF (RFC 3533 описывает структуру контейнера Ogg). Позже в экосистему вошли:
- Theora — видеокодек, позиционировавшийся как свободная замена MPEG-4 и H.264;
- FLAC — кодек сжатия звука без потерь, упаковываемый в Ogg;
- Opus — гибридный аудиокодек, объединивший SILK и CELT, стандартизированный IETF в 2012 году (RFC 6716) и ставший основным «голосовым» кодеком для VoIP и браузеров;
- Speex — кодек, оптимизированный для сжатия речи.
¶Устройство
Файл Ogg состоит из последовательности пакетов, объединённых в «страницы» (pages). Каждая страница начинается с синхронизирующей последовательности «OggS», за которой следует заголовок с версией формата, типом страницы, идентификатором потока (serial number), номером страницы, контрольной суммой CRC и таблицей смещений пакетов. Такая структура позволяет:
- потоковую передачу с произвольным доступом к позиции в файле;
- мультиплексирование нескольких потоков (например, аудио + видео + субтитры) в одном файле;
- восстановление потока после обрыва соединения.
Внутри потока первый пакет содержит идентификационный заголовок (BOS — Beginning Of Stream), затем идут пакеты с параметрами кодека и, наконец, пакеты с собственно данными. Последняя страница помечается флагом EOS (End Of Stream).
¶Ogg Vorbis
Наиболее известное применение контейнера — формат Ogg Vorbis, ставший де-факто стандартом свободного сжатия звука с потерями. По субъективным оценкам качество Vorbis при сопоставимых битрейтах сопоставимо или превосходит MP3, а лицензия не требует уплаты роялти. Формат использовался в играх (Valve активно применяла Ogg Vorbis в движке Source), в стриминговых сервисах (Spotify в ранние годы), в Linux-дистрибутивах и в VoIP-приложениях.
¶Ogg Opus
С 2010-х годов Vorbis во многих областях вытеснен Opus — кодеком, разработанным Xiph.Org совместно с Skype Technologies и стандартизированным IETF. Opus обеспечивает высокое качество как для музыки, так и для речи при низкой задержке, что делает его предпочтительным для видеозвонков, стриминга и хранения. Браузеры Firefox, Chrome и другие поддерживают Opus в контейнере Ogg.
¶Поддержка и совместимость
Формат Ogg поддерживается большинством свободных медиаплееров (VLC, mpv, MPlayer), библиотеками GStreamer и FFmpeg, операционными системами Linux и Android. В Windows и macOS нативная поддержка ограничена: Apple не включает Ogg в стандартный набор кодеков, поэтому на этих платформах часто требуются сторонние кодеки или альтернативные плееры.
Среди проприетарных программ поддержка Ogg встречается нерегулярно. Некоторые портативные устройства и бытовые проигрыватели не умеют декодировать Vorbis или Opus, что ограничивает распространение формата в потребительской электронике.
¶Лицензирование
Спецификация контейнера Ogg и кодеки Vorbis, Theora, Speex, FLAC и Opus распространяются на свободных лицензиях (BSD, Creative Commons, IETF Trust). Это исключает патентные претензии и делает формат привлекательным для встраиваемых систем, игр и открытого ПО.
¶Применение
- Хранение музыки в свободных каталогах и стриминговых сервисах;
- Голосовые сообщения и видеозвонки (Opus в Ogg);
- Саундтреки компьютерных игр;
- Подкасты и радиотрансляции в интернете;
- Архивирование аудио в проектах Викимедиа (Wikimedia Commons принимает Ogg/Theora и Ogg/Opus).
¶См. также
- MP4 — конкурентный контейнер на основе MPEG-4;
- Matroska — расширяемый открытый контейнер;
- WebM — видеоконтейнер, основанный на структуре Matroska.
¶Источники
- RFC 3533 — The Ogg Encapsulation Format Version 0 (IETF)
- RFC 6716 — Definition of the Opus Audio Codec (IETF)
- Документация проекта Xiph.Org Foundation
- Спецификации Vorbis I, Theora I на сайте xiph.org
