&product;
&date;
Developer Moritz Bunkus moritz@bunkus.org
&product; 1 &version; &date; MKVToolNix User Commands
&product; Print information about elements in &matroska; files

## Synopsis

`mkvinfo` options source-filename

## Description

This program lists all elements contained in a &matroska;. The output can be limited to a list of tracks in the file including information about the codecs used.

`-a`, `--all`

  By default &mkvinfo; stops when it encounters the first cluster. Additionally it doesn't show certain often occurring elements. With this option &mkvinfo; will continue processing regardless of the verbosity level and show all elements.

`-c`, `--checksums`

  Calculates and display the `Adler-32` checksum for each frame. Useful for debugging only.

`-o`, `--continue`

  By default &mkvinfo; stops when it encounters the first cluster. With this option &mkvinfo; will continue processing regardless of the verbosity level.

`-p`, `--hex-positions`

  Show the positions of all elements in hexadecimal regardless of the verbosity level.

`-P`, `--positions`

  Show the positions of all elements in decimal regardless of the verbosity level.

`-s`, `--summary`

  Only show a terse summary of what &mkvinfo; finds and not each element.

`-t`, `--track-info`

  Show statistics for each track in verbose mode. Also sets verbosity to 1 if it was at level 0 before.

`-x`, `--hexdump`

  Show the first 16 bytes of each frame as a hex dump.

`-X`, `--full-hexdump`

  Show all bytes of each frame as a hex dump.

`-z`, `--size`

  Show the size of each element including its header.

`--command-line-charset` character-set

  Sets the character set to convert strings given on the command line from. It defaults to the character set given by system's current locale.

`--output-charset` character-set

  Sets the character set to which strings are converted that are to be output. It defaults to the character set given by system's current locale.

`-r`, `--redirect-output` file-name

  Writes all messages to the file file-name instead of to the console. While this can be done easily with output redirection there are cases in which this option is needed: when the terminal reinterprets the output before writing it to a file. The character set set with `--output-charset` is honored.

`--ui-language` code

  Forces the translations for the language code to be used (e.g. '`de_DE`' for the German translations). Entering '`list`' as the code will cause the program to output a list of available translations.

`--abort-on-warnings`

  Tells the program to abort after the first warning is emitted. The program's exit code will be 1.

`--debug` topic

  Turn on debugging for a specific feature. This option is only useful for developers.

`--engage` feature

  Turn on experimental features. A list of available features can be requested with `mkvinfo --engage list`. These features are not meant to be used in normal situations.

`--gui-mode`

  Turns on GUI mode. In this mode specially-formatted lines may be output that can tell a controlling GUI what's happening. These messages follow the format '`#GUI#message`'. The message may be followed by key/value pairs as in '`#GUI#message#key1=value1#key2=value2…`'. Neither the messages nor the keys are ever translated and always output in English.

`-v`, `--verbose`

  Be more verbose. See the section about verbosity levels for a description which information will be output at which level.

`-h`, `--help`

  Show usage information and exit.

`-V`, `--version`

  Show version information and exit.

`@`options-file.json

  Reads additional command line arguments from the file options-file. For a full explanation on the supported formats for such files see the section called "Option files" in the &mkvmerge; man page.

## Verbosity levels

The `-v` option can be used to increase &mkvinfo;'s verbosity level and print more information about the current file.

At level 0 &mkvinfo; will print only the track headers it finds and their types. &mkvinfo; will exit as soon as the headers are parsed completely (more technical: as soon as the first cluster is encountered). In this level the seek head entries and the cues will not be displayed -- even if they're located in front of the track information.

At level 1 &mkvinfo; will also print all &matroska; elements encountered for the complete file but the seek head entries and the cue entries. If the summary mode is enabled then &mkvinfo; will output the frame position as well.

The same effect can be achieved with the option `--continue`.

At level 2 &mkvinfo; will also print the seek head entries, the cue entries and the file position at which each &matroska; element can be found at.

The same effect can be achieved with the options `--all --positions`.

At level 3 and above &mkvinfo; will print some information that is not directly connected to a &matroska; element. All other elements only print stuff about the elements that were just found. Level 3 adds meta information to ease debugging (read: it's intended for developers only). All lines written by level 3 are enclosed in square brackets to make filtering them out easy.

## Text files and character set conversions

For an in-depth discussion about how all tools in the MKVToolNix suite handle character set conversions, input/output encoding, command line encoding and console encoding please see the identically-named section in the &mkvmerge; man page.

## Exit codes

&mkvinfo; exits with one of three exit codes:

- `0` -- This exit code means that the run has completed successfully.

- `1` -- In this case &mkvinfo; has output at least one warning, but the run did continue. A warning is prefixed with the text '`Warning:`'.

- `2` -- This exit code is used after an error occurred. &mkvinfo; aborts right after outputting the error message. Error messages range from wrong command line arguments over read/write errors to broken files.

## Environment variables

&mkvinfo; uses the default variables that determine the system's locale (e.g. `LANG` and the `LC_*` family). Additional variables:

`MKVINFO_DEBUG`, `MKVTOOLNIX_DEBUG` and its short form `MTX_DEBUG`

  The content is treated as if it had been passed via the `--debug` option.

`MKVINFO_ENGAGE`, `MKVTOOLNIX_ENGAGE` and its short form `MTX_ENGAGE`

  The content is treated as if it had been passed via the `--engage` option.

## See also

&mkvmerge;, &mkvextract;, &mkvpropedit;, &mtxgui;

## WWW

The latest version can always be found at the MKVToolNix homepage.