Co je soubor MKV?
MKV (Matroska Video) je multimediální kontejner podobný formátu MOV a AVI, ale podporuje více než jednu stopu zvuku a titulků ve stejném souboru. Soubor MKV je formát multimediálního kontejneru Matroska používaný pro video. MKV je založen na Extensible Binary Meta Language a podporuje několik formátů komprese videa a zvuku. Hlavní rozdíl mezi MKV a jinými video formáty je ten, že MKV je kontejner a ne kodek. Soubory MKV se ukládají s příponou .mkv. MKV může začlenit zvuk, video a titulky do jednoho souboru, i když tyto prvky používají různé typy kódování. Můžete mít například soubor MKV, který obsahuje video H.264 a zvuk ve formátu MP3 nebo AAC. MKV také podporuje popisy, hodnocení, přebaly a dokonce i body kapitol. Existuje několik klíčových funkcí, díky kterým je MKV připraveno na budoucnost. Mezi tyto funkce patří:
- Podpora rychlého hledání.
- Schopnost vybrat různé audio a video streamy.
- Podpora pro titulky (pevně kódované a softwarově kódované).
- Podpora pro metadata, kapitoly a nabídky.
- Možnost streamovat online.
- Schopnost obnovit chybné soubory, které poskytují možnost přehrávání poškozených souborů.
Stručná historie
Soubor MKV vznikl v roce 2002 v Rusku. Hlavním vývojářem byl Lasse Kärkkäinen, který spolupracoval se zakladatelem Matrosky Stevem Lhommem a týmem programátorů. MKV byl vyvinut jako projekt otevřených standardů, což znamená, že je open source a je zdarma k použití. Postupem času byl formát vylepšen a v roce 2010 se stal základem multimediálního formátu WebM.
Design Matroska
Matroska přidává do specifikace EBML následující omezení.
- docType EBML Header musí být ‘matroska’.
- EBMLMaxIDLength EBML Header musí být 4.
- EBMLMaxSizeLength EBML Header musí být mezi 1 a 8 (včetně).
Všechny prvky nejvyšší úrovně jsou kódovány ve 4 oktetech.
- Jazykové kódy: Matroska (verze 1 až 3) používala jazykové kódy, které mohou mít buď 3písmennou bibliografickou formu ISO-639-2 (jako “fre” pro francouzštinu), nebo mohl být použit další kód země jako “fre-ca” “ pro kanadskou francouzštinu. Počínaje verzí Matroska 4 MŮŽE být pro jazykové kódy použit buď ISO 639-2 nebo BCP 47, ačkoli se doporučuje BCP 47.
- Fyzické typy: Tyto typy mají různý význam pro audio i video soubory. Například ChapterPhysicalEquiv = 60 znamená (CD / 12" / 10" / 7" / TAPE / MINIDISC / DAT) pro zvuk a (DVD / VHS / LASERDISC) pro video.
- Struktura bloku - Záhlaví bloku: Záhlaví bloku obsahuje informace týkající se čísla stopy, časových razítek, typu šněrování atd.
- Šněrování: Jedná se o mechanismus pro úsporu místa při ukládání dat, který se obvykle používá pro malé bloky dat (rámce). Existují 3 typy šněrování:
- Xiph: Frame with a size multiple of 255 coded with a 0 at the end of the size. For example, The code for 765 is 255;255;255;0.
- EBML: The frame size is coded as a difference between the previous size and this size. The first size in the lace is unsigned but others use a range shift to get a sign on each value.
- fixed-size: The size remains the same.
- Struktura SimpleBlock: Je inspirována Strukturou bloku s hlavním rozdílem v přidání příznaků Keyframe a Discardable. Kromě toho je vše při starém.
Matroska struktura
Dokument Matroska musí být složen alespoň z jednoho Dokumentu EBML s použitím Typu dokumentu Matroska. Každý dokument EBML musí začínat záhlavím EBML následovaným kořenovým prvkem EBML, který je definován jako segment. Matroska definuje několik prvků nejvyšší úrovně, které se mohou vyskytovat v rámci Segmentu.
EBML používá k sestavení dokumentu EBML systém prvků. Níže je uveden seznam prvků nejvyšší úrovně v souboru Matroska:
- Dokument EBML: Obálka pro celý soubor.
- Záhlaví EBML: Obsahuje informace o záhlaví souboru, jako je DocType.
- Segment: Nejvyšší prvek, který obsahuje všechny ostatní prvky nejvyšší úrovně.
- SeekHead: Obsahuje pozici segmentů ostatních prvků nejvyšší úrovně.
- Info: Obsahuje obecné informace o segmentu.
- Stopy: Prvek informací nejvyšší úrovně s mnoha popsanými skladbami.
- Kapitoly: Používá se k definování základních nabídek a dat oddílů.
- Cluster: Prvek nejvyšší úrovně obsahující strukturu bloku.
- Narážky: Prvek nejvyšší úrovně, který obsahuje všechny místní položky segmentu, které urychlují hledání přístupu.
- Přílohy: Obsahuje přiložené soubory.
- Tags: Tento prvek obsahuje metadata popisující stopy, edice, kapitoly, přílohy nebo segment jako celek.
Následující tabulka ukazuje strukturu dokumentu Matroska s většinou prvků zobrazených v hierarchii:
| Hlavička EBML | ||||||
| Segment | SeekHead | Hledat | SeekID | |||
| SeekPosition | ||||||
| Informace | SegmentUID | |||||
| SegmentFilename | ||||||
| PrevUID | ||||||
| Předchozí název_souboru | ||||||
| DalšíUID | ||||||
| DalšíNázevSouboru | ||||||
| SegmentRodina | ||||||
| KapitolaTranslate | ||||||
| Měřítko časového razítka | ||||||
| Doba trvání | ||||||
| DatumUTC | ||||||
| Název | ||||||
| MuxingApp | ||||||
| Aplikace pro psaní | ||||||
| Skladby | TrackEntry | TrackNumber | ||||
| TrackUID | ||||||
| TrackType | ||||||
| Jméno | ||||||
| Jazyk | ||||||
| CodecID | ||||||
| CodecPrivate | ||||||
| Název kodeku | ||||||
| Video | FlagInterlaced | |||||
| FieldOrder | ||||||
| StereoMode | ||||||
| AlphaMode | ||||||
| PixelWidth | ||||||
| Výška pixelu | ||||||
| DisplayWidth | ||||||
| DisplayHeight | ||||||
| AspectRatioType | ||||||
| Barva | ||||||
| Audio | Vzorkovací frekvence | |||||
| Kanály | ||||||
| BitDepth | ||||||
| Kapitoly | EditionEntry | EditionUID | ||||
| EditionFlagHidden | ||||||
| EditionFlagDefault | ||||||
| EditionFlagOrdered | ||||||
| KapitolaAtom | ChapterUID | |||||
| ChapterStringUID | ||||||
| ChapterTimeStart | ||||||
| KapitolaČasKonec | ||||||
| ChapterFlagHidden | ||||||
| Zobrazení kapitoly | ChapString | |||||
| ChapLanguage | ||||||
| Cluster | Časové razítko | |||||
| SilentTracks | ||||||
| Pozice | ||||||
| Předchozí Velikost | ||||||
| SimpleBlock | ||||||
| BlockGroup | ||||||
| EncryptedBlock | ||||||
| Narážky | CuePoint | CueTime | ||||
| CueTrackPositions | ||||||
| Přílohy | AttachedFile | Popis souboru | ||||
| Název souboru | ||||||
| FileMimeType | ||||||
| FileUID | ||||||
| Referenční soubor | ||||||
| FileUsedStartTime | ||||||
| FileUsedEndTime | ||||||
| Štítky | Štítek | Cíle | TargetTypeValue | |||
| TargetType | ||||||
| TagTrackUID | ||||||
| TagEditionUID | ||||||
| TagChapterUID | ||||||
| TagAttachmentUID | ||||||
| SimpleTag | TagName | |||||
| TagLanguage | ||||||
| TagDefault | ||||||
| TagString | ||||||
| TagBinary | ||||||
| SimpleTag |
Používání kodeků
Pokud nechcete nový přehrávač médií a dáváte přednost použití stávajícího přehrávače, budete muset nainstalovat některé kodeky (zkratka pro kompresi/dekompresi). I když je stahování kodeků platnou možností, měli byste si dávat pozor na zdroj a ty mohou obsahovat malware.