Видео Matroska (.mkv)
Matroska СтандартMatroska Video (MKV) е свободен, разширяем мултимедиен контейнерен формат със стандарт с отворен код, способен да побира неограничен брой видео, аудио, картинни и субтитрирани писти в един единствен файл.
Проверка и метаданни
Операционните системи и файловите анализатори идентифицират MKV файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на заглавката (сигнатурни байтове)
Операционните системи и файловите анализатори идентифицират MKV файлове чрез проверка на началната двоична байтова последователност:
HEX ПОДПИС (ОФСЕТ 0):
1A 45 DF A3ASCII ПРЕДСТАВЯНЕ: Eߣ
Стандартизация: Matroska Open Standard / IETF Working Group Draft
Технически спецификации
| Контейнерна архитектура | Йерархичен контейнер на разширяемия двоичен метаезик (EBML) |
| Компресия | Не зависи от кодека: поддържа AV1, HEVC, H.264, VP9, DTS-HD, TrueHD, FLAC и некомпресирано видео. |
| Поредност на байтовете (Endianness) | Представяне на целите числа в Big-Endian ред и дескриптори за размер с променлива дължина |
| Цветови пространства | HDR10, Dolby Vision, HLG и всички цветови пространства. |
| Канали и структура | Практически неограничен брой аудиописти, потоци със субтитри и ракурси на камерата. |
| Максимални размери | Без фиксирано ограничение; поддържа видео 8K, 16K и с висока кадрова честота. |
| Прозрачност | Пълна поддръжка на алфа канал при потоци VP9 или ProRes. |
| Поточно предаване и прогресивно зареждане | Рамкирането на блокове по клъстери осигурява надеждно предаване на живо и устойчивост при повреда. |
Техническа сравнителна матрица: MKV спрямо конкуренти
| Технически атрибут | MKV (Текущ) | MP4 | WEBM | AVI |
|---|---|---|---|---|
| Свобода на кодеците | Поддържа много кодеци; поддръжката зависи от плейъра. | Ограничена предимно до H.264/HEVC/AV1 и AAC | Ограничена до VP8/VP9/AV1 и Vorbis/Opus | Само наследени кодеци |
| Точност на субтитрите | Прикачените шрифтове могат да подпомогнат изобразяването, ако плейърът ги поддържа; резултатът зависи от софтуера. | Само основно текстово стилизиране | Само основно WebVTT стилизиране | Изискват се външни файлове със субтитри |
| Нативна поддръжка от Apple | Изисква плеър от трета страна (VLC, IINA, Infuse) | Възпроизвеждане на някои устройства и със софтуер на Apple; поддръжката зависи от формата и версията. | Поддържа се в Safari чрез съвременни рамки (frameworks) | Стар QuickTime плъгин |
| Архитектура на контейнера | Extensible Binary Meta Language (EBML) | ISO Base Media File Format (Атоми/Кутии) | EBML (подмножество на Matroska) | Архитектура от RIFF блокове |
Често срещани видове повреди и ръководство за възстановяване на шестнадесетични данни
Файлът се възпроизвежда, но превъртането по времевата линия е нарушено или продължителността се изчислява неправилно.
Първопричина: Повреден или липсващ елемент 'Cues' (таблицата за търсене на Matroska) поради непълно изтегляне.
Възстановяване: Възстановете незабавно индексната таблица за търсене с помощта на 'mkvmerge -o fixed.mkv broken.mkv'.
Анализ на сигурността и вектори на атака към парсера
EBML анализът изисква дешифриране на цели числа с променлива дължина и вложени елементни дървета. Деформираните дължини на елементите могат да доведат до пропуски в управлението на паметта.
Известни вектори на атака
- Препълване на динамичната буферна памет (heap buffer overflow) при анализа на размера на EBML елементите в медийни плеъри.
- Произволно изпълнение на код чрез деформирана обработка на вградени шрифтови прикачени файлове в рендери на субтитри.
- Отказ от услуга (denial of service) чрез цикли от препратки в елементите за глави на Matroska.
Най-добри практики за защита: Санитизиране на вградените типове прикачени файлове и анализ на EBML структурите с помощта на изолирани (sandboxed) библиотеки за парсиране, безопасни за паметта.
Исторически произход и етапи
Основни предимства
- Matroska поддържа много видео-, аудио- и субтитърни кодеци, но съвместимостта зависи от плейъра и устройството.
- Пълна поддръжка на усъвършенствани стилизирани субтитри (ASS/SSA), многоезични аудио писти и менюта с глави.
- Висока устойчивост срещу повреда: повредените клъстери не възпрепятстват възпроизвеждането на околното видео.
Технически ограничения и минуси
- Липсва нативно възпроизвеждане по подразбиране в плейъра Apple QuickTime и на iOS устройства.
- Не се поддържа нативно от всички търговски смарт телевизори и хардуерни плеъри.
- Не може да се вгражда директно в стандартни уеб браузъри чрез HTML5 <video> тага без прекодиране.
Интересни технически факти
- Името 'Matroska' произлиза от руската дума 'Матрьошка', отнасяща се до вложените една в друга дървени кукли.
- Магическите байтове '1A 45 DF A3' представляват универсалния ID на EBML заглавната част, използван както от MKV, така и от WebM.
- MKV файловете могат да вграждат цели шрифтови файлове TrueType и OpenType директно вътре в контейнера за изобразяване на аниме субтитри.
Често задавани технически въпроси
Защо телевизорът или телефонът ми не успяват да възпроизведат MKV файлове?
Някои устройства не поддържат MKV или кодек, използван във файла. Проверете поддръжката на контейнера и кодека от целевия плейър, преди да конвертирате; препакетиране в MP4 помага само ако потоците са съвместими.
Мога ли да конвертирам MKV в MP4 без загуба на видео качество?
Ако видео- и аудиокодеците се поддържат в MP4, препакетирането може да запази кодираните потоци без повторно кодиране. В противен случай конвертирането може да изисква прекодиране, което може да промени качеството.
Каква е връзката между MKV и WebM?
WebM се основава на модела на контейнера Matroska/EBML и използва ограничен набор от кодеци.