MKV — мультимедийный контейнер Matroska¶
MKV (расширение файла .mkv) — открытый мультимедийный контейнерный формат, разработанный проектом Matroska в 2002–2003 годах. Формат способен объединять в одном файле видеопотоки, аудиодорожки, субтитры и метаданные практически любых кодеков, не изменяя их. Название происходит от Matroska — традиционной русской куклы-матрёшки, символизирующей «вложенность» данных.
¶История создания
Работа над Matroska началась в 2002 году как ответ на ограниченность существующих контейнеров: AVI не поддерживал длинные файлы и современные кодеки, Ogg был ориентирован преимущественно на аудио. В основу формата был взят открытый стандарт МЭК (ISO) MPEG-4 Part 12 (ISO Base Media File Format), а также наработки проекта MCF (Multimedia Container Format).
В 2003 году Matroska получил статус свободного и открытого стандарта, лицензия — LGPL. Стандартизация шла через IETF: в 2014 году формат Matroska был принят как RFC 6381 и RFC 7069, а позднее доработан в серии RFC 9559 (2024). Проект разрабатывался преимущественно энтузиастами, среди участников были представители компании Hauppauge, а также разработчики плееров и кодеков.
¶Устройство и структура
MKV основан на системе «элементов» (EBML — Extensible Binary Meta Language), бинарном формате с гибкой схемой, описанной в спецификации. Каждый элемент состоит из идентификатора, размера и данных. Файл начинается с обязательного заголовка EBML и заголовка сегмента, внутри которого размещаются:
- SeekHead — индекс расположения ключевых элементов;
- Info — метаданные (таймкод, дата создания, приложение-генератор);
- Tracks — описание дорожек (видео, аудио, субтитры) и используемых кодеков;
- Clusters — блоки с собственно мультимедийными данными, сгруппированные вокруг ключевых кадров;
- Cues — таблица навигации для быстрого перемотки;
- Attachments — вложенные файлы (шрифты, обложки);
- Chapters — структура глав;
- Tags — произвольные метки (название, исполнитель, жанр).
Такая архитектура позволяет вставлять новые типы элементов без нарушения совместимости.
¶Возможности формата
Ключевые свойства MKV:
- Поддержка неограниченного числа видеопотоков, аудиодорожек и субтитров в одном файле.
- Совместимость с любыми видеокодеками (H.264/AVC, H.265/HEVC, AV1, VP9, MPEG-2) и аудиокодеками (AAC, AC-3, DTS, FLAC, Opus, Vorbis, MP3).
- Поддержка субтитров в форматах SRT, ASS/SSA, VobSub (PGS), WebVTT.
- Возможность хранить «флаги» дорожек: язык, название, режим по умолчанию, привязка к языковой дорожке.
- Встроенные метаданные и обложки.
- Поддержка интерактивных меню на базе меню DVD (ограниченная) и системы «глобальных» глав.
- Возможность потоковой передачи (Matroska был адаптирован для WebM — профиля, разработанного совместно с Google для HTML5-видео).
¶Сравнение с MP4
| Параметр | MKV | MP4 (MPEG-4 Part 14) |
|---|---|---|
| Лицензия | Открытая, LGPL | Ограниченная, патенты MPEG LA |
| Число дорожек | Не ограничено | Ограничено схемой MP4 |
| Субтитры | Разные типы, включая векторные ASS | Обычно только текстовые |
| Метаданные | Гибкие, расширяемые | Стандартизированные, строгие |
| Потоковая передача | Ограниченно | Широко поддерживается |
| Популярность в стриминге | Средняя | Высокая |
MP4 остаётся предпочтительным для потоковых сервисов и мобильных устройств, MKV — для локального хранения и «сборки» файлов из разных источников.
¶Поддержка и программное обеспечение
MKV поддерживают многие плееры: VLC, MPC-HC, mpv, Windows Media Player (через кодеки), Kodi, Plex, а также аппаратные приставки и ТВ-приставки. Для создания и редактирования файлов используются MKVToolNix (набор утилит для манипуляции с дорожками и метаданными), HandBrake (перекодирование), FFmpeg (конвертация). На Windows для воспроизведения в системных приложениях используется пакет кодеков LAV Filters.
¶Применение
MKV широко распространён в среде цифрового копирования фильмов и сериалов («рипы»), где требуется сохранить исходное видео, несколько аудиодорожек (дубляж, оригинальный звук) и субтитры. Формат популярен среди аниме-сообщества благодаря поддержке векторных субтитров ASS с эффектами. Открытость лицензии и гибкость структуры сделали MKV основой для WebM — профиля, используемого в браузерах для HTML5-видео.
Источники:
- RFC 9559 — Matroska Media Container Format Specifications (IETF)
- RFC 6381 — The 'Codecs' and 'Profiles' Parameters for 'Bucket' Media Types
- Спецификация EBML (matroska.org)
- Документация проекта MKVToolNix
