aspose.info
DE

MKV-Dateiformat

Aktualisiert

Was ist eine MKV-Datei?

MKV (Matroska Video) ist ein Multimedia-Container ähnlich dem Format MOV und AVI, unterstützt jedoch mehr als eine Audio- und Untertitelspur in derselben Datei. Eine MKV-Datei ist das Matroska-Multimedia-Containerformat, das für Videos verwendet wird. MKV basiert auf Extensible Binary Meta Language und unterstützt mehrere Video- und Audiokompressionsformate. Der Hauptunterschied zwischen MKV und anderen Videoformaten besteht darin, dass MKV ein Container und kein Codec ist. MKV-Dateien werden mit der Dateierweiterung .mkv gespeichert. MKV kann Audio, Video und Untertitel in eine einzige Datei integrieren, selbst wenn diese Elemente unterschiedliche Codierungsarten verwenden. Beispielsweise könnten Sie eine MKV-Datei haben, die H.264-Video und MP3 oder AAC für Audio enthält. MKV unterstützt auch Beschreibungen, Bewertungen, Coverbilder und sogar Kapitelpunkte. Es gibt mehrere Schlüsselfunktionen, die MKV zukunftssicher machen. Zu diesen Funktionen gehören:

  • Unterstützung für die schnelle Suche.
  • Möglichkeit, verschiedene Audio- und Videostreams auszuwählen.
  • Unterstützung für Untertitel (hartcodiert und weichcodiert).
  • Unterstützung für Metadaten, Kapitel und Menüs.
  • Möglichkeit zum Online-Streaming.
  • Fähigkeit, fehlerhafte Dateien wiederherzustellen, die die Möglichkeit bieten, beschädigte Dateien abzuspielen.

Kurze Geschichte

Die MKV-Datei entstand 2002 in Russland. Der leitende Entwickler war Lasse Kärkkäinen, der mit dem Gründer von Matroska, Steve Lhomme, und einem Team von Programmierern zusammenarbeitete. MKV wurde als Open-Standards-Projekt entwickelt, was bedeutet, dass es Open Source und kostenlos nutzbar ist. Im Laufe der Zeit wurde das Format verbessert und wurde 2010 zur Grundlage des WebM-Multimediaformats.

Matroska-Design

Matroska fügt der EBML-Spezifikation die folgenden Einschränkungen hinzu.

  • Der docType des EBML Header muss ‘matroska’ sein.
  • Die EBMLMaxIDLength des EBML-Headers muss 4 sein.
  • Die EBMLMaxSizeLength des EBML-Headers muss zwischen 1 und 8 (einschließlich) liegen.

Alle Elemente der obersten Ebene sind in 4 Oktetts codiert.

  • Sprachcodes: Matroska (Version 1 bis 3) verwendete Sprachcodes, die entweder die bibliografische ISO-639-2-Form mit 3 Buchstaben sein können (wie “fre” für Französisch) oder zusätzliche Ländercodes wie “fre-ca " für kanadisches Französisch. Ab Matroska Version 4 KÖNNEN entweder ISO 639-2 oder BCP 47 für Sprachcodes verwendet werden, obwohl BCP 47 empfohlen wird.
  • Physische Typen: Diese haben unterschiedliche Bedeutungen für Audio- und Videodateien. Beispielsweise bedeutet ChapterPhysicalEquiv = 60 (CD / 12” / 10" / 7" / TAPE / MINIDISC / DAT) für Audio und (DVD / VHS / LASERDISC) für Video.
  • Blockstruktur - Blockheader: Der Blockheader enthält Informationen zu Titelnummer, Zeitstempel, Art der Schnürung usw.
  • Lacing: Dies ist ein Mechanismus zum Speichern von Platz beim Speichern von Daten, der normalerweise für kleine Datenblöcke (Frames) verwendet wird. Es gibt 3 Arten der Schnürung:
    • 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.
  • SimpleBlock-Struktur: Sie ist von der Block-Struktur inspiriert, wobei der Hauptunterschied in der Hinzufügung von Keyframe- und Discardable-Flags besteht. Ansonsten ist alles gleich.

Matroska-Struktur

Ein Matroska-Dokument muss aus mindestens einem EBML-Dokument bestehen, das den Matroska-Dokumenttyp verwendet. Jedes EBML-Dokument muss mit einem EBML-Header beginnen, gefolgt vom EBML-Wurzelelement, das als Segment definiert ist. Matroska definiert mehrere Top-Level-Elemente, die innerhalb des Segments vorkommen können.

EBML verwendet ein System von Elementen, um ein EBML-Dokument zu erstellen. Das Folgende ist die Liste der Top-Level-Elemente in der Matroska-Datei:

  • EBML-Dokument: Wrapper für die gesamte Datei.
  • EBML Header: Enthält die Header-Informationen für die Datei wie DocType.
  • Segment: Das oberste Element, das alle anderen Elemente der obersten Ebene enthält.
  • SeekHead: Enthält die Position von Segmenten anderer Top-Level-Elemente.
  • Info: Enthält allgemeine Informationen über das Segment.
  • Tracks: Ein Informationselement der obersten Ebene mit vielen beschriebenen Tracks.
  • Kapitel: Wird verwendet, um grundlegende Menüs und Partitionsdaten zu definieren.
  • Cluster: Das Top-Level-Element, das die Blockstruktur enthält.
  • Cues: Ein Top-Level-Element, das alle lokalen Einträge für das Segment enthält, die den Zugriff beschleunigen.
  • Anhänge: Enthält angehängte Dateien.
  • Tags: Dieses Element enthält Metadaten, die Tracks, Editionen, Kapitel, Anhänge oder das Segment als Ganzes beschreiben.

Die folgende Tabelle zeigt die Struktur des Matroska-Dokuments, wobei die meisten Elemente in einer Hierarchie angezeigt werden:

EBML-Header
SegmentSuchkopfSucheSeekID
Suchposition
InfosSegmentUID
SegmentDateiname
VorherigeUID
ZurückDateiname
NächsteUID
NächsterDateiname
SegmentFamilie
KapitelÜbersetzen
ZeitstempelSkalierung
Dauer
DatumUTC
Titel
MuxingApp
SchreibApp
SpurenTrackEintragTitelnummer
TrackUID
Spurtyp
Name
Sprache
CodecID
CodecPrivat
CodecName
VideosFlagInterlaced
FieldOrder
StereoModus
AlphaMode
Pixelbreite
Pixelhöhe
Anzeigebreite
Anzeigehöhe
AspectRatioType
Farbe
TonAbtastfrequenz
Kanäle
Bittiefe
KapitelAusgabeEintragEditionUID
EditionFlagHidden
EditionFlagDefault
EditionFlagOrdered
KapitelAtomKapitelUID
KapitelStringUID
KapitelZeitStart
KapitelZeitEnde
KapitelFlagAusgeblendet
KapitelAnzeigeChapString
ChapSprache
ClusterZeitstempel
SilentTracks
Stelle
VorherigeGröße
SimpleBlock
BlockGruppe
VerschlüsselterBlock
StichworteCuePointCueTime
CueTrackPositionen
AnhängeAngehängteDateiDateibeschreibung
Dateiname
FileMimeType
DateiUID
Dateiverweis
FileUsedStartTime
FileUsedEndTime
StichworteTagZieleZieltypwert
Zieltyp
TagTrackUID
TagEditionUID
TagKapitelUID
TagAttachmentUID
SimpleTagTagName
TagSprache
TagDefault
TagString
TagBinär
SimpleTag

Codecs verwenden

Wenn Sie keinen neuen Mediaplayer möchten und lieber Ihren vorhandenen Player verwenden möchten, müssen Sie einige Codecs (Abkürzung für Komprimierung/Dekomprimierung) installieren. Auch wenn das Herunterladen von Codecs eine gültige Option ist, sollten Sie auf die Quelle achten, da diese möglicherweise Malware enthalten.

Verweise

Siehe auch