Видео Matroska (.mkv)

Matroska Стандарт

Matroska Video (MKV) е свободен, разширяем мултимедиен контейнерен формат със стандарт с отворен код, способен да побира неограничен брой видео, аудио, картинни и субтитрирани писти в един единствен файл.

Проверка и метаданни

Операционните системи и файловите анализатори идентифицират MKV файлове чрез проверка на началната двоична байтова последователност:

Изберете или пуснете файлове тук

Поверително - файловете никога не напускат устройството ви

или поставете Ctrl+V
Гаранция за поверителност с нулево мрежово предаване: 0 байта са качени на външни сървъри. Цялата обработка се извършва локално в пясъчниците на вашия браузър.

Байтов подпис на заглавката (сигнатурни байтове)

Операционните системи и файловите анализатори идентифицират MKV файлове чрез проверка на началната двоична байтова последователност:

HEX ПОДПИС (ОФСЕТ 0):

1A 45 DF A3

ASCII ПРЕДСТАВЯНЕ: 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 (Текущ)MP4WEBMAVI
Свобода на кодецитеПоддържа много кодеци; поддръжката зависи от плейъра.Ограничена предимно до 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) библиотеки за парсиране, безопасни за паметта.

Исторически произход и етапи

2023Работната група IETF Cellar придвижва спецификациите на Matroska към официален RFC стандарт.
2010Google избира Matroska EBML за основа на отворения уеб видео формат WebM.
2002Стив Лом обявява проекта Matroska като гъвкаво отклонение (fork) на MCF контейнера.

Основни предимства

  • 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 и използва ограничен набор от кодеци.