Expand description

A demuxer that can demux Matroska and WebM container files.


let file = File::open("test.mkv").unwrap();
let mkv = MatroskaFile::open(file).unwrap();
let video_track = mkv
    .find(|t| t.track_type() == TrackType::Video)
    .map(|t| t.track_number().get())

let mut frame = Frame::default();
while mkv.next_frame(&mut frame).unwrap() {
    if frame.track == video_track {
        dbg!("video frame found");


Audio settings.

Contains the atom information to use as the chapter atom.

Contains all possible strings to use for the chapter display.

Settings describing the colour format.

Settings describing the encryption algorithm used.

Settings for one content encoding like compression or encryption.

Settings describing the encryption used.

The EBML header of the file.

Contains all information about a segment edition.

A data frame inside the Matroska container.

Contains general information about the segment.

SMPTE 2086 mastering data.

Demuxer for Matroska files.

Contains general information about the target.

A single metadata descriptor.

Specifies which other elements the metadata represented by the tag applies to.

Describes a track.

Video settings.


The AES cipher mode used in the encryption.

Specify the possible modifications to the aspect ratio.

How chroma is sub sampled horizontally.

How chroma is sub sampled vertically.

The encryption algorithm used.

Describing what kind of transformation is applied.

Errors that can occur when demuxing Matroska files.

How DisplayWidth & DisplayHeight are interpreted.

The IDs of the supported elements.

Declare the field ordering of the video.

A flag to declare if the video is known to be progressive or interlaced.

The Matrix Coefficients of the video used to derive luma and chroma values from red, green, and blue color primaries.

The colour primaries of the video.

Clipping of the color ranges.

Stereo-3D video mode.

Type of the track.

The transfer characteristics of the video.