&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.

`-g`, `--gui`

  Start the GUI. This option is only available if mkvinfo was compiled with GUI support.

`-c`, `--checksums`

  Calculates and display the `Adler32` checksum for each frame. Useful for debugging only.

`-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). It is preferable to use the environment variables `LANG`, `LC_MESSAGES` and `LC_ALL` though. Entering '`list`' as the `code` will cause &mkvinfo; to output a list of available translations.

`-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.

`--check-for-updates`

  Checks online for new releases by downloading the URL `http://mkvtoolnix-releases.bunkus.org/latest-release.xml`. Four lines will be output in `key=value` style: the URL from where the information was retrieved (key `version_check_url`), the currently running version (key `running_version`), the latest release's version (key `available_version`) and the download URL (key `download_url`).

  Afterwards the program exists with an exit code of 0 if no newer release is available, with 1 if a newer release is available and with 2 if an error occured (e.g. if the update information could not be retrieved).

  This option is only available if the program was built with support for libcurl.

`@`options-file

  Reads additional command line arguments from the file `options-file`. Lines whose first non-whitespace character is a hash mark ('`#`') are treated as comments and ignored. White spaces at the start and end of a line will be stripped. Each line must contain exactly one option.

  Several chars can be escaped, e.g. if you need to start a non-comment line with '#'. The rules are described in the section about escaping text.

  The command line '`mkvinfo -v -v input.mkv --redirect-output info.txt`' could be converted into the following option file:

      # Be more verbose
      -v
      -v
      # Parse input.mkv
      input.mkv
      # and write the output to info.txt
      --redirect-output
      info.txt

## 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.

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.

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.

## Exit codes

&mkvinfo; exits with one of three exit codes:

- `0` -- This exit codes 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.

## Escaping special chars in text

There are a few places in which special characters in text must or should be escaped. The rules for escaping are simple: each character that needs escaping is replaced with a backslash followed by another character.

The rules are: ' ' becomes '\s', '"' becomes '\2', ':' becomes '\c', '#' becomes '\h' and '\' itself becomes '\\'.

## See also

&mkvmerge;, &mkvextract;, &mkvpropedit;, &mmg;

## WWW

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