mkvtoolnix/doc/man/mkvinfo.xml
2024-10-19 15:13:11 +02:00

400 lines
14 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
[
<!ENTITY product "mkvinfo">
<!ENTITY version "88.0">
<!ENTITY date "2024-10-19">
<!ENTITY mkvmerge "<citerefentry><refentrytitle>mkvmerge</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
<!ENTITY mkvinfo "<citerefentry><refentrytitle>mkvinfo</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
<!ENTITY mkvextract "<citerefentry><refentrytitle>mkvextract</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
<!ENTITY mkvpropedit "<citerefentry><refentrytitle>mkvpropedit</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
<!ENTITY mtxgui "<citerefentry><refentrytitle>mkvtoolnix-gui</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
<!ENTITY matroska "<productname>Matroska</productname>">
<!ENTITY oggvorbis "<productname>OggVorbis</productname>">
<!ENTITY xml "<abbrev>XML</abbrev>">
]>
<refentry lang="en" id="mkvinfo">
<refentryinfo>
<productname>&product;</productname>
<date>&date;</date>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Moritz</firstname>
<surname>Bunkus</surname>
<email>moritz@bunkus.org</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>&product;</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class="version">&version;</refmiscinfo>
<refmiscinfo class="date">&date;</refmiscinfo>
<refmiscinfo class="source">MKVToolNix</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
</refmeta>
<refnamediv>
<refname>&product;</refname>
<refpurpose>Print information about elements in &matroska; files</refpurpose>
</refnamediv>
<refsynopsisdiv id="mkvinfo.synopsis">
<title>Synopsis</title>
<cmdsynopsis>
<command>mkvinfo</command>
<arg>options</arg>
<arg choice="req">source-filename</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id="mkvinfo.description">
<title>Description</title>
<para>
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.
</para>
<variablelist>
<varlistentry id="mkvinfo.description.all">
<term><option>-a</option>, <option>--all</option></term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.checksums">
<term><option>-c</option>, <option>--checksums</option></term>
<listitem>
<para>
Calculates and display the <function>Adler-32</function> checksum for each frame. Useful for debugging only.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.continue">
<term><option>-o</option>, <option>--continue</option></term>
<listitem>
<para>
By default &mkvinfo; stops when it encounters the first cluster. With this option &mkvinfo; will continue processing regardless of
the verbosity level.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.hex_positions">
<term><option>-p</option>, <option>--hex-positions</option></term>
<listitem>
<para>
Show the positions of all elements in hexadecimal regardless of the verbosity level.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.positions">
<term><option>-P</option>, <option>--positions</option></term>
<listitem>
<para>
Show the positions of all elements in decimal regardless of the verbosity level.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.summary">
<term><option>-s</option>, <option>--summary</option></term>
<listitem>
<para>
Only show a terse summary of what &mkvinfo; finds and not each element.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.track_info">
<term><option>-t</option>, <option>--track-info</option></term>
<listitem>
<para>
Show statistics for each track in verbose mode. Also sets verbosity to 1 if it was at level 0 before.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.hexdump">
<term><option>-x</option>, <option>--hexdump</option></term>
<listitem>
<para>
Show the first 16 bytes of each frame as a hex dump.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.full_hexdump">
<term><option>-X</option>, <option>--full-hexdump</option></term>
<listitem>
<para>
Show all bytes of each frame as a hex dump.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.size">
<term><option>-z</option>, <option>--size</option></term>
<listitem>
<para>
Show the size of each element including its header.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.command_line_charset">
<term><option>--command-line-charset</option> <parameter>character-set</parameter></term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.output_charset">
<term><option>--output-charset</option> <parameter>character-set</parameter></term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.redirect_output">
<term><option>-r</option>, <option>--redirect-output</option> <parameter>file-name</parameter></term>
<listitem>
<para>
Writes all messages to the file <parameter>file-name</parameter> 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 <link
linkend="mkvinfo.description.output_charset"><option>--output-charset</option></link> is honored.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.ui_language">
<term><option>--ui-language</option> <parameter>code</parameter></term>
<listitem>
<para>
Forces the translations for the language <parameter>code</parameter> to be used (e.g. '<literal>de_DE</literal>' for the German
translations). Entering '<literal>list</literal>' as the <parameter>code</parameter> will cause the program to output a list of
available translations.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.abort_on_warnings">
<term><option>--abort-on-warnings</option></term>
<listitem>
<para>
Tells the program to abort after the first warning is emitted. The program's exit code will be 1.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.debug">
<term><option>--debug</option> <parameter>topic</parameter></term>
<listitem>
<para>
Turn on debugging for a specific feature. This option is only useful for developers.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.engage">
<term><option>--engage</option> <parameter>feature</parameter></term>
<listitem>
<para>
Turn on experimental features. A list of available features can be requested with <command>mkvinfo --engage list</command>. These
features are not meant to be used in normal situations.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.gui_mode">
<term><option>--gui-mode</option></term>
<listitem>
<para>
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 '<literal>#GUI#message</literal>'. The message may be followed by key/value pairs as in
'<literal>#GUI#message#key1=value1#key2=value2…</literal>'. Neither the messages nor the keys are ever translated and always output
in English.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.verbose">
<term><option>-v</option>, <option>--verbose</option></term>
<listitem>
<para>
Be more verbose. See the section about <link linkend="mkvinfo.verbosity_levels">verbosity levels</link> for a description which
information will be output at which level.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.help">
<term><option>-h</option>, <option>--help</option></term>
<listitem>
<para>
Show usage information and exit.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.version">
<term><option>-V</option>, <option>--version</option></term>
<listitem>
<para>
Show version information and exit.
</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.description.options_file">
<term><option>@</option><parameter>options-file.json</parameter></term>
<listitem>
<para>
Reads additional command line arguments from the file <parameter>options-file</parameter>. For a full explanation on the supported
formats for such files see the section called "Option files" in the &mkvmerge; man page.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="mkvinfo.verbosity_levels">
<title>Verbosity levels</title>
<para>
The <link linkend="mkvinfo.description.verbose"><option>-v</option></link> option can be used to increase &mkvinfo;'s verbosity level
and print more information about the current file.
</para>
<para>
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.
</para>
<para>
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.
</para>
<para>
The same effect can be achieved with the option <option>--continue</option>.
</para>
<para>
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.
</para>
<para>
The same effect can be achieved with the options <option>--all --positions</option>.
</para>
<para>
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.
</para>
</refsect1>
<refsect1 id="mkvinfo.text_files_and_charsets">
<title>Text files and character set conversions</title>
<para>
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.
</para>
</refsect1>
<refsect1>
<title>Exit codes</title>
<para>
&mkvinfo; exits with one of three exit codes:
</para>
<itemizedlist>
<listitem>
<para>
<constant>0</constant> -- This exit code means that the run has completed successfully.
</para>
</listitem>
<listitem>
<para>
<constant>1</constant> -- In this case &mkvinfo; has output at least one warning, but the run did continue. A warning is
prefixed with the text '<literal>Warning:</literal>'.
</para>
</listitem>
<listitem>
<para>
<constant>2</constant> -- 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.
</para>
</listitem>
</itemizedlist>
</refsect1>
<refsect1 id="mkvinfo.environment_variables">
<title>Environment variables</title>
<para>
&mkvinfo; uses the default variables that determine the system's locale (e.g. <varname>LANG</varname> and the <varname>LC_*</varname>
family). Additional variables:
</para>
<variablelist>
<varlistentry id="mkvinfo.environment_variables.debug">
<term><varname>MKVINFO_DEBUG</varname>, <varname>MKVTOOLNIX_DEBUG</varname> and its short form <varname>MTX_DEBUG</varname></term>
<listitem>
<para>The content is treated as if it had been passed via the <link
linkend="mkvinfo.description.debug"><option>--debug</option></link> option.</para>
</listitem>
</varlistentry>
<varlistentry id="mkvinfo.environment_variables.engage">
<term><varname>MKVINFO_ENGAGE</varname>, <varname>MKVTOOLNIX_ENGAGE</varname> and its short form <varname>MTX_ENGAGE</varname></term>
<listitem>
<para>The content is treated as if it had been passed via the <link
linkend="mkvinfo.description.engage"><option>--engage</option></link> option.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="mkvinfo.seealso">
<title>See also</title>
<para>
&mkvmerge;, &mkvextract;, &mkvpropedit;, &mtxgui;
</para>
</refsect1>
<refsect1 id="mkvinfo.www">
<title>WWW</title>
<para>
The latest version can always be found at <ulink url="https://mkvtoolnix.download/">the MKVToolNix homepage</ulink>.
</para>
</refsect1>
</refentry>