Kontener Matroska (.mkv)

Matroska Standard

Matroska Video (MKV) to darmowy, rozszerzalny kontener multimedialny oparty na otwartym standardzie. W jednym pliku może pomieścić nieograniczoną liczbę ścieżek wideo i audio oraz obrazów i napisów.

Inspekcja i metadane

Systemy operacyjne i analizatory plików identyfikują pliki MKV, sprawdzając początkową sekwencję bajtów binarnych:

Wybierz lub upuść pliki tutaj

Prywatnie - pliki nigdy nie opuszczają Twojego urządzenia

lub wklej Ctrl+V
Gwarancja prywatności bez przesyłania danych do sieci: 0 bajtów przesłanych na zewnętrzne serwery. Całe przetwarzanie odbyło się lokalnie w piaskownicy przeglądarki.

Podpis nagłówka na poziomie bajtów (Magic Bytes)

Systemy operacyjne i analizatory plików identyfikują pliki MKV, sprawdzając początkową sekwencję bajtów binarnych:

PODPIS HEX (OFFSET 0):

1A 45 DF A3

REPREZENTACJA ASCII: Eߣ

Normalizacja: Matroska Open Standard / IETF Working Group Draft

Specyfikacja techniczna

Architektura konteneraHierarchiczny kontener multimedialny zapisany w języku EBML (Extensible Binary Meta Language)
KompresjaNiezależny od kodeków: obsługuje AV1, HEVC, H.264, VP9, DTS-HD, TrueHD, FLAC oraz wideo nieskompresowane
Kolejność bajtów (Endianness)Reprezentacja liczb całkowitych typu Big-Endian z deskryptorami rozmiaru o zmiennej długości
Przestrzenie kolorówHDR10, Dolby Vision, HLG i wszystkie przestrzenie kolorów
Kanały i strukturaPraktycznie nieograniczona liczba ścieżek audio, strumieni napisów i kątów kamery
Maks. wymiaryBrak ograniczeń; obsługuje rozdzielczości 8K i 16K oraz wideo z dużą liczbą klatek na sekundę
PrzezroczystośćPełna obsługa kanału alfa w przypadku strumieni VP9 lub ProRes
Streaming i progresywne ładowanieRamkowanie oparte na klastrach zapewnia niezawodne strumieniowanie na żywo i odporność na uszkodzenia.

Techniczna macierz porównawcza: MKV a konkurencja

Atrybut technicznyMKV (Bieżący)MP4WEBMAVI
Swoboda kodekówUniwersalna: akceptuje dowolny kodek wideo, audio lub napisówOgraniczona głównie do H.264/HEVC/AV1 oraz AACOgraniczona do VP8/VP9/AV1 oraz Vorbis/OpusTylko starsze kodeki
Wierność napisówZałączone czcionki mogą pomóc w wyświetlaniu, jeśli odtwarzacz je obsługuje; wygląd zależy od oprogramowania.Tylko podstawowa stylizacja tekstuTylko podstawowa stylizacja WebVTTWymagane zewnętrzne pliki napisów
Natywna obsługa AppleWymaga odtwarzacza firm trzecich (VLC, IINA, Infuse)W 100% natywna na wszystkich urządzeniach AppleObsługiwana w przeglądarce Safari za pomocą nowoczesnych frameworkówPrzestarzała wtyczka QuickTime
Architektura konteneraRozszerzalny binarny język metadanych (EBML)ISO Base Media File Format (Atomy/Pudełka)EBML (podzbiór Matroska)Architektura blokowa RIFF

Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego

Plik się odtwarza, ale przewijanie osi czasu nie działa lub czas trwania jest niepoprawnie obliczany.

Główna przyczyna: Niekompletnie pobrany plik może mieć uszkodzony lub brakujący element „Cues” (tabelę indeksującą Matroska).

Odzyskiwanie: Odbuduj natychmiast tabelę indeksu wyszukiwania za pomocą polecenia „mkvmerge -o fixed.mkv broken.mkv".

Analiza bezpieczeństwa i wektory ataku na parser

Odczyt EBML wymaga dekodowania liczb całkowitych o zmiennej długości i przechodzenia przez zagnieżdżone drzewa elementów. Błędne długości elementów mogą prowadzić do problemów z zarządzaniem pamięcią.

Znane wektory ataku

  • Przepełnienie bufora sterty (heap buffer overflow) podczas parsowania rozmiaru elementów EBML w odtwarzaczach multimedialnych.
  • Wykonanie dowolnego kodu za pośrednictwem wadliwej obsługi osadzonych czcionek w modułach renderowania napisów.
  • Atak typu „odmowa usługi" (DoS) za pomocą pętli z odwołaniami cyklicznymi w elementach rozdziałów Matroska.

Najlepsze praktyki obronne: Weryfikuj typy osadzonych załączników i odczytuj struktury EBML za pomocą parserów działających w piaskownicy, bezpiecznych pod względem zarządzania pamięcią.

Pochodzenie historyczne i kamienie milowe

2023Grupa robocza IETF Cellar rozwija specyfikację Matroska w kierunku formalnego standardu RFC.
2010Google wybiera Matroska EBML na podstawę otwartego formatu wideo WebM.
2002Steve Lhomme ogłasza projekt Matroska jako elastyczne odgałęzienie kontenera MCF.

Główne zalety

  • Jeden z najbardziej wszechstronnych kontenerów: obsługuje niemal każdy kodek wideo i audio oraz napisów.
  • Pełna obsługa zaawansowanych stylizowanych napisów (ASS/SSA), wielojęzycznych ścieżek audio i menu rozdziałów.
  • Wysoka odporność na uszkodzenia: uszkodzone klastry nie uniemożliwiają odtwarzania sąsiadujących fragmentów wideo.

Ograniczenia techniczne i wady

  • Brak wbudowanej natywnej obsługi w domyślnym odtwarzaczu Apple QuickTime oraz na urządzeniach z systemem iOS.
  • Nie wszystkie komercyjne przystawki Smart TV i odtwarzacze sprzętowe obsługują ten format natywnie.
  • Nie można go bezpośrednio osadzić w standardowych przeglądarkach za pomocą elementu HTML5 <video> bez transkodowania.

Ciekawe informacje techniczne

  • Nazwa „Matroska” pochodzi od rosyjskiego słowa „matrioszka”, określającego tradycyjne drewniane lalki wkładane jedna w drugą.
  • Bajty sygnatury „1A 45 DF A3” oznaczają uniwersalny identyfikator nagłówka EBML używany zarówno przez MKV, jak i WebM.
  • Pliki MKV mogą osadzać w kontenerze całe pliki czcionek TrueType i OpenType, aby renderować napisy do anime.

Często zadawane pytania techniczne

Dlaczego mój telewizor lub telefon nie odtwarza plików MKV?

MKV jest popularny na komputerach, ale część telewizorów i urządzeń z iOS nie ma licencji na obsługę tego kontenera lub określonego kodeka audio (np. DTS), który on zawiera. Konwersja MKV do MP4 rozwiązuje problem zgodności.

Czy mogę przekonwertować plik MKV do formatu MP4 bez utraty jakości wideo?

Tak! Jeśli wideo wewnątrz pliku MKV jest zakodowane w formacie H.264 lub HEVC, File2File.app w ciągu kilku sekund po prostu przepakowuje strumienie wideo do kontenera MP4 bez ponownego kodowania, zachowując 100% pierwotnej jakości.

Jaki jest związek między MKV a WebM?

WebM opiera się na modelu kontenera Matroska/EBML i używa ograniczonego profilu określonych kodeków.