MKV расшифровывается как Matroska, открытый контейнерный формат, который в 2002 году начал разрабатывать Стив Ломм и группа участников. Они хотели видеоконтейнер без владельца и без ограничений. Название взято от русской матрешки и хорошо передает идею: файл Matroska - это коробка, в которую можно положить что угодно. В то время как MP4 принимает строго определенный набор кодеков и функций, Matroska изначально задумывался как контейнер для чего угодно, поэтому стал форматом по умолчанию для киноархивов, аниме с несколькими наборами субтитров и копий Blu-ray дисков на жестком диске. Его базовая структура со временем была опубликована как интернет-стандарт, а Google использовала ее подмножество при создании WebM.
Как устроен файл MKV
Matroska основана на EBML - двоичной структуре, которая работает как компактная версия XML: все является элементом, элементы могут вкладываться друг в друга, и каждый элемент указывает свою длину. Файл состоит из заголовка, затем сегмента с дорожками, индекса для перемотки и собственно медиаданных, разбитых на кластеры из небольших блоков с метками времени.
Сам по себе формат MKV ничего не сжимает. Видео внутри обычно в H.264, HEVC, AV1 или VP9; звук может быть в AAC, Opus, FLAC, DTS или Dolby audio и других форматах. Поскольку контейнеру безразлично, что именно он хранит, один файл может содержать несжатую звуковую дорожку рядом с сжатой, несколько дубляжей, принудительные и полные наборы субтитров в текстовом или растровом виде, метки глав для выбора сцен, а также вложения: обложку или точный шрифт, который нужен дорожке субтитров, чтобы выглядеть как задумано.
Какие метаданные содержит файл MKV
Matroska хранит метаданные в двух местах, и оба попадают в отчет.
Блок информации о сегменте описывает сам файл. В нем находятся общий заголовок, продолжительность, дата создания в UTC, уникальный идентификатор сегмента и два показательных поля: приложение для мультиплексирования и приложение-записывающее, которые указывают библиотеку и программу, создавшие файл, часто с номерами версий. Затем у каждой дорожки есть собственная запись с именем, кодом языка, кодеком, размерами отображения и флагами, помечающими дорожку как основную или принудительную.
Описательные метаданные используют систему тегов Matroska, которая более структурирована, чем большинство других. Теги группируются по объекту, к которому относятся, поэтому тег может относиться ко всему файлу, к одной дорожке, к главе или к коллекции верхнего уровня, похожей на альбом. Каждый тег состоит из имени и значения. Принятые имена пишутся заглавными буквами; чаще всего встречаются TITLE, ARTIST, DATE_RELEASED, GENRE, COMMENT, DESCRIPTION, ENCODER, PART_NUMBER и TOTAL_PARTS. В теге также можно указать язык, на котором он написан, поэтому одно и то же поле может встречаться несколько раз для разных аудиторий.
Обычно Matroska не содержит метаданные камеры. В ней нет блока EXIF, нет модели камеры и поля GPS, потому что файлы MKV чаще всего создаются при конвертации или копировании другого файла, а не самой камерой. Личные следы здесь другого рода: приложение-записывающее показывает, какую программу и версию вы использовали, дата создания показывает, когда это было, заголовок и имена дорожек часто сохраняют название исходного релиза или диска, а вложением может быть любой файл, в том числе тот, который кто-то однажды оставил внутри.
Когда выбирать MKV
Используйте MKV, когда файл важен и его нужно сохранить. Это самый подходящий контейнер здесь для фильма с несколькими звуковыми дорожками на разных языках, субтитрами, между которыми вы хотите переключаться, и главами; он без проблем работает с необычными кодеками.
Альтернатива - MP4, и он выигрывает по распространенности: браузеры, телефоны, телевизоры и приставки воспроизводят MP4 без дополнительной поддержки, тогда как работа MKV зависит от устройства и наличия подходящих плееров. Разумная привычка - архивировать в MKV, а распространять в MP4. Переход между ними часто сводится к ремультиплексированию: потоки копируются в другой контейнер без потерь, если только используемые внутри кодеки поддерживаются MP4.