2009-12-26 21:16:03 +00:00
'\" t
2009-08-10 19:22:09 +00:00
. \" Title: mkvextract
. \" Author: Moritz Bunkus <moritz@bunkus.org>
2010-05-28 15:23:07 +00:00
. \" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
2011-11-27 19:47:50 +00:00
. \" Date: 2011-11-27
2009-08-10 19:22:09 +00:00
. \" Manual: User Commands
2011-11-27 19:47:50 +00:00
. \" Source: MKVToolNix 5.1.0
2009-12-26 21:16:03 +00:00
. \" Language: English
2009-08-10 19:22:09 +00:00
. \"
2011-11-27 19:47:50 +00:00
.TH "MKVEXTRACT" "1" "2011\-11\-27" "MKVToolNix 5\&.1\&.0" "User Commands"
2009-12-26 21:16:03 +00:00
. \" -----------------------------------------------------------------
2010-05-28 15:23:07 +00:00
. \" * Define some portability stuff
. \" -----------------------------------------------------------------
. \" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
. \" http://bugs.debian.org/507673
. \" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
. \" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n (.g .ds Aq \(aq
.el .ds Aq '
. \" -----------------------------------------------------------------
2009-12-26 21:16:03 +00:00
. \" * set default formatting
. \" -----------------------------------------------------------------
2009-08-10 19:22:09 +00:00
. \" disable hyphenation
.nh
. \" disable justification (adjust text to left margin only)
.ad l
2009-12-26 21:16:03 +00:00
. \" -----------------------------------------------------------------
. \" * MAIN CONTENT STARTS HERE *
. \" -----------------------------------------------------------------
2009-08-10 19:22:09 +00:00
.SH "NAME"
2009-12-26 21:16:03 +00:00
mkvextract \- extract tracks from Matroska(TM) files into other files
2009-08-10 19:22:09 +00:00
.SH "SYNOPSIS"
2009-12-26 21:16:03 +00:00
.HP \w '\fBmkvextract\fR\ 'u
2009-08-10 19:22:09 +00:00
\fB mkvextract\fR {mode} {source\- filename} [options] [extraction\- spec]
.SH "DESCRIPTION"
.PP
2009-08-16 11:26:29 +00:00
This program extracts specific parts from a
Matroska(TM)
file to other useful formats\& . The first argument,
2009-08-10 19:22:09 +00:00
\fB mode\fR , tells
\fB mkvextract\fR (1)
what to extract\& . Currently supported is the extraction of
tracks,
tags,
attachments,
chapters,
CUE sheets
and
timecodes\& . The second argument is the name of the source file\& . It must be a
Matroska(TM)
file\& . All following arguments are options and extraction specifications; both of which depend on the selected mode\& .
.SS "Common options"
.PP
The following options are available in all modes and only described once in this section\& .
.PP
2010-03-13 10:46:50 +00:00
\fB \- f\fR , \fB \- \- parse\- fully\fR
.RS 4
2010-05-28 15:23:07 +00:00
Sets the parse mode to \* (Aqfull\* (Aq\& . The default mode does not parse the whole file but uses the meta seek elements for locating the required elements of a source file\& . In 99% of all cases this is enough\& . But for files that do not contain meta seek elements or which are damaged the user might have to use this mode\& . A full scan of a file can take a couple of minutes while a fast scan only takes seconds\& .
2010-03-13 10:46:50 +00:00
.RE
.PP
2009-08-10 19:22:09 +00:00
\fB \- \- command\- line\- charset\fR \fI character\- set\fR
.RS 4
2010-05-28 15:23:07 +00:00
Sets the character set to convert strings given on the command line from\& . It defaults to the character set given by system\* (Aqs current locale\& .
2009-08-10 19:22:09 +00:00
.RE
.PP
\fB \- \- output\- charset\fR \fI character\- set\fR
.RS 4
2010-05-28 15:23:07 +00:00
Sets the character set to which strings are converted that are to be output\& . It defaults to the character set given by system\* (Aqs current locale\& .
2009-08-10 19:22:09 +00:00
.RE
.PP
\fB \- r\fR , \fB \- \- redirect\- output\fR \fI file\- name\fR
.RS 4
Writes all messages to the file
\fI file\- name\fR
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
\fB \- \- output\- charset\fR
is honored\& .
.RE
.PP
\fB \- \- ui\- language\fR \fI code\fR
.RS 4
Forces the translations for the language
\fI code\fR
2010-05-28 15:23:07 +00:00
to be used (e\& .g\& . \* (Aqde_DE\* (Aq for the German translations)\& . It is preferable to use the environment variables
2009-08-10 19:22:09 +00:00
\fI LANG\fR ,
\fI LC_MESSAGES\fR
and
\fI LC_ALL\fR
2010-05-28 15:23:07 +00:00
though\& . Entering \* (Aqlist\* (Aq as the
2009-08-10 19:22:09 +00:00
\fI code\fR
will cause
\fB mkvextract\fR (1)
to output a list of available translations\& .
.RE
.PP
\fB \- v\fR , \fB \- \- verbose\fR
.RS 4
Be verbose and show all the important
Matroska(TM)
2010-05-28 15:23:07 +00:00
elements as they\* (Aqre read\& .
2009-08-10 19:22:09 +00:00
.RE
.PP
\fB \- h\fR , \fB \- \- help\fR
.RS 4
Show usage information and exit\& .
.RE
.PP
\fB \- V\fR , \fB \- \- version\fR
.RS 4
Show version information and exit\& .
.RE
.PP
2010-12-23 15:07:34 +00:00
\fB \- \- check\- for\- updates\fR
.RS 4
Checks online for new releases by downloading the URL
2010-12-26 00:50:33 +00:00
http://mkvtoolnix\- releases\& .bunkus\& .org/latest\- release\& .xml\& . Four lines will be output in
2010-12-23 15:07:34 +00:00
key=value
style: the URL from where the information was retrieved (key
version_check_url), the currently running version (key
2010-12-26 00:50:33 +00:00
running_version), the latest release\* (Aqs version (key
available_version) and the download URL (key
download_url)\& .
2010-12-23 15:07:34 +00:00
.sp
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)\& .
.sp
This option is only available if the program was built with support for libcurl\& .
.RE
.PP
2011-11-06 16:58:35 +00:00
\fB @\fR \fI options\- file\fR
2009-08-10 19:22:09 +00:00
.RS 4
Reads additional command line arguments from the file
2010-12-20 19:12:59 +00:00
\fI options\- file\fR \& . Lines whose first non\- whitespace character is a hash mark (\* (Aq#\* (Aq) 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\& .
.sp
Several chars can be escaped, e\& .g\& . if you need to start a non\- comment line with \* (Aq#\* (Aq\& . The rules are described in
the section about escaping text\& .
2009-08-10 19:22:09 +00:00
.sp
2010-05-28 15:23:07 +00:00
The command line \* (Aq\fB mkvextract tracks source\& .mkv \- \- raw 1:destination\& .raw\fR \* (Aq could be converted into the following option file:
2009-08-10 19:22:09 +00:00
.sp
2009-12-26 21:16:03 +00:00
.if n \{ \
2009-08-10 19:22:09 +00:00
.RS 4
2009-12-26 21:16:03 +00:00
. \}
2009-08-10 19:22:09 +00:00
.nf
# Extract a track from source\& .mkv
tracks
source\& .mkv
# Output the track as raw data\& .
\- \- raw
2009-08-16 11:26:29 +00:00
1:destination\& .raw
2009-08-10 19:22:09 +00:00
.fi
2009-12-26 21:16:03 +00:00
.if n \{ \
2009-08-10 19:22:09 +00:00
.RE
2009-12-26 21:16:03 +00:00
. \}
2009-08-10 19:22:09 +00:00
.RE
.SS "Track extraction mode"
.PP
Syntax:
\fB mkvextract\fR
\fB tracks\fR
\fI source\- filename\fR
[\fI options\fR ]
\fI TID1:dest\- filename1\fR
[\fI TID2:dest\- filename2\fR \& .\& .\& .]
.PP
2010-05-28 15:23:07 +00:00
The following command line options are available for each track in the \* (Aqtracks\* (Aq extraction mode\& . They have to appear in front of the track specification (see below) they should be applied to\& .
2009-08-10 19:22:09 +00:00
.PP
\fB \- c\fR \fI character\- set\fR
.RS 4
Sets the character set to convert the next text subtitle track to\& . Only valid if the next track ID targets a text subtitle track\& . It defaults to UTF\- 8\& .
.RE
.PP
\fB \- \- blockadd\fR \fI level\fR
.RS 4
Keep only the BlockAdditions up to this level\& . The default is to keep all levels\& . This option only affects certain kinds of codecs like WAVPACK4\& .
.RE
.PP
\fB \- \- cuesheet\fR
.RS 4
Causes
\fB mkvextract\fR (1)
to extract a
CUE
2010-05-28 15:23:07 +00:00
sheet from the chapter information and tag data for the following track into a file whose name is the track\* (Aqs output name with \* (Aq\& .cue\* (Aq appended to it\& .
2009-08-10 19:22:09 +00:00
.RE
.PP
\fB \- \- raw\fR
.RS 4
Extracts the raw data into a file without any container data around it\& . Unlike the
\fB \- \- fullraw\fR
flag this flag does not cause the contents of the
CodecPrivate
element to be written to the file\& . This mode works with all
CodecIDs, even the ones that
\fB mkvextract\fR (1)
2010-05-28 15:23:07 +00:00
doesn\* (Aqt support otherwise, but the resulting files might not be usable\& .
2009-08-10 19:22:09 +00:00
.RE
.PP
\fB \- \- fullraw\fR
.RS 4
Extracts the raw data into a file without any container data around it\& . The contents of the
CodecPrivate
element will be written to the file first if the track contains such a header element\& . This mode works with all
CodecIDs, even the ones that
\fB mkvextract\fR (1)
2010-05-28 15:23:07 +00:00
doesn\* (Aqt support otherwise, but the resulting files might not be usable\& .
2009-08-10 19:22:09 +00:00
.RE
.PP
\fI TID:outname\fR
.RS 4
Causes extraction of the track with the ID
\fI TID\fR
into the file
\fI outname\fR
if such a track exists in the source file\& . This option can be given multiple times\& . The track IDs are the same as the ones output by
2010-05-28 15:23:07 +00:00
\fB mkvmerge\fR (1)\* (Aqs
2009-08-10 19:22:09 +00:00
\fB \- \- identify\fR
option\& .
.sp
Each output name should be used only once\& . The exception are RealAudio and RealVideo tracks\& . If you use the same name for different tracks then those tracks will be saved in the same file\& . Example:
.sp
2009-12-26 21:16:03 +00:00
.if n \{ \
2009-08-10 19:22:09 +00:00
.RS 4
2009-12-26 21:16:03 +00:00
. \}
2009-08-10 19:22:09 +00:00
.nf
$ mkvextract tracks input\& .mkv 1:output\- two\- tracks\& .rm 2:output\- two\- tracks\& .rm
.fi
2009-12-26 21:16:03 +00:00
.if n \{ \
2009-08-10 19:22:09 +00:00
.RE
2009-12-26 21:16:03 +00:00
. \}
2009-08-10 19:22:09 +00:00
.RE
.SS "Tags extraction mode"
.PP
Syntax:
\fB mkvextract\fR
\fB tags\fR
\fI source\- filename\fR
[\fI options\fR ]
.PP
The extracted tags are written to the console unless the output is redirected (see the section about
output redirection
for details)\& .
.SS "Attachments extraction mode"
.PP
Syntax:
\fB mkvextract\fR
\fB attachments\fR
\fI source\- filename\fR
[\fI options\fR ]
\fI AID1:outname1\fR
[\fI AID2:outname2\fR \& .\& .\& .]
.PP
2011-11-06 16:58:35 +00:00
\fI AID\fR :\fI outname\fR
2009-08-10 19:22:09 +00:00
.RS 4
Causes extraction of the attachment with the ID
\fI AID\fR
into the file
\fI outname\fR
if such an attachment exists in the source file\& . If the
\fI outname\fR
is left empty then the name of the attachment inside the source
Matroska(TM)
file is used instead\& . This option can be given multiple times\& . The attachment IDs are the same as the ones output by
2010-05-28 15:23:07 +00:00
\fB mkvmerge\fR (1)\* (Aqs
2009-08-10 19:22:09 +00:00
\fB \- \- identify\fR
option\& .
.RE
.SS "Chapters extraction mode"
.PP
Syntax:
\fB mkvextract\fR
\fB chapters\fR
\fI source\- filename\fR
[\fI options\fR ]
.PP
\fB \- s\fR , \fB \- \- simple\fR
.RS 4
Exports the chapter information in the simple format used in the
OGM
tools (CHAPTER01=\& .\& .\& ., CHAPTER01NAME=\& .\& .\& .)\& . In this mode some information has to be discarded\& . Default is to output the chapters in
XML
format\& .
.RE
.PP
The extracted chapters are written to the console unless the output is redirected (see the section about
output redirection
for details)\& .
.SS "Cue sheet extraction mode"
.PP
Syntax:
\fB mkvextract\fR
\fB cuesheet\fR
\fI source\- filename\fR
[\fI options\fR ]
.PP
The extracted cue sheet is written to the console unless the output is redirected (see the section about
output redirection
for details)\& .
.SS "Timecode extraction mode"
.PP
Syntax:
\fB mkvextract\fR
\fB timecodes_v2\fR
\fI source\- filename\fR
[\fI options\fR ]
2010-12-22 21:37:49 +00:00
\fI TID1:dest\- filename1\fR
[\fI TID2:dest\- filename2\fR \& .\& .\& .]
2009-08-10 19:22:09 +00:00
.PP
The extracted timecodes are written to the console unless the output is redirected (see the section about
output redirection
for details)\& .
2010-12-22 21:37:49 +00:00
.PP
\fI TID:outname\fR
.RS 4
Causes extraction of the timecodes for the track with the ID
\fI TID\fR
into the file
\fI outname\fR
if such a track exists in the source file\& . This option can be given multiple times\& . The track IDs are the same as the ones output by
\fB mkvmerge\fR (1)\* (Aqs
\fB \- \- identify\fR
option\& .
.sp
Example:
.sp
.if n \{ \
.RS 4
. \}
.nf
$ mkvextract timecodes_v2 input\& .mkv 1:tc\- track1\& .txt 2:tc\- track2\& .txt
.fi
.if n \{ \
.RE
. \}
.RE
2009-08-10 19:22:09 +00:00
.SH "OUTPUT REDIRECTION"
.PP
Several extraction modes cause
\fB mkvextract\fR (1)
to write the extracted data to the console\& . There are generally two ways of writing this data into a file: one provided by the shell and one provided by
\fB mkvextract\fR (1)
itself\& .
.PP
2010-05-28 15:23:07 +00:00
The shell\* (Aqs builtin redirection mechanism is used by appending \* (Aq> output\- filename\& .ext\* (Aq to the command line\& . Example:
2009-08-10 19:22:09 +00:00
.sp
2009-12-26 21:16:03 +00:00
.if n \{ \
2009-08-10 19:22:09 +00:00
.RS 4
2009-12-26 21:16:03 +00:00
. \}
2009-08-10 19:22:09 +00:00
.nf
$ mkvextract tags source\& .mkv > tags\& .xml
.fi
2009-12-26 21:16:03 +00:00
.if n \{ \
2009-08-10 19:22:09 +00:00
.RE
2009-12-26 21:16:03 +00:00
. \}
2009-08-10 19:22:09 +00:00
.PP
2010-05-28 15:23:07 +00:00
\fB mkvextract\fR (1)\* (Aqs own redirection is invoked with the
2009-08-10 19:22:09 +00:00
\fB \- \- redirect\- output\fR
option\& . Example:
.sp
2009-12-26 21:16:03 +00:00
.if n \{ \
2009-08-10 19:22:09 +00:00
.RS 4
2009-12-26 21:16:03 +00:00
. \}
2009-08-10 19:22:09 +00:00
.nf
$ mkvextract tags source\& .mkv \- \- redirect\- output tags\& .xml
.fi
2009-12-26 21:16:03 +00:00
.if n \{ \
2009-08-10 19:22:09 +00:00
.RE
2009-12-26 21:16:03 +00:00
. \}
.if n \{ \
2009-08-10 19:22:09 +00:00
.sp
2009-12-26 21:16:03 +00:00
. \}
.RS 4
2009-08-10 19:22:09 +00:00
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
2009-12-26 21:16:03 +00:00
.ps +1
\fB Note\fR
.ps -1
.br
2009-08-10 19:22:09 +00:00
.PP
On Windows you should probably use the
\fB \- \- redirect\- output\fR
option because
\fB cmd\& .exe\fR
2010-05-28 15:23:07 +00:00
sometimes interpretes special characters before they\* (Aqre written into the output file resulting in broken output\& .
2009-12-26 21:16:03 +00:00
.sp .5v
.RE
2009-08-10 19:22:09 +00:00
.SH "OUTPUT FILE FORMATS"
.PP
The decision about the output format is based on the track type, not on the extension used for the output file name\& . The following track types are supported at the moment:
.PP
V_MPEG4/ISO/AVC
.RS 4
H\& .264
/
AVC
video tracks are written to
H\& .264
elementary streams which can be processed further with e\& .g\& .
MP4Box(TM)
from the
GPAC(TM)
package\& .
.RE
.PP
V_MS/VFW/FOURCC
.RS 4
Fixed
FPS
video tracks with this
CodecID
are written to
AVI
files\& .
.RE
.PP
V_REAL/*
.RS 4
RealVideo(TM)
tracks are written to
RealMedia(TM)
files\& .
.RE
.PP
A_MPEG/L3, A_AC3
.RS 4
These will be extracted to raw
MP3
and
AC3
files\& .
.RE
.PP
A_PCM/INT/LIT
.RS 4
Raw
PCM
data will be written to a
WAV
file\& .
.RE
.PP
A_AAC/MPEG2/*, A_AAC/MPEG4/*, A_AAC
.RS 4
All
AAC
files will be written into an
AAC
file with
ADTS
headers before each packet\& . The
ADTS
headers will not contain the deprecated emphasis field\& .
.RE
.PP
A_VORBIS
.RS 4
Vorbis audio will be written into an
OggVorbis(TM)
file\& .
.RE
.PP
A_REAL/*
.RS 4
RealAudio(TM)
tracks are written to
RealMedia(TM)
files\& .
.RE
.PP
A_TTA1
.RS 4
TrueAudio(TM)
tracks are written to
TTA
files\& . Please note that due to
2010-05-28 15:23:07 +00:00
Matroska(TM)\* (Aqs limited timecode precision the extracted file\* (Aqs header will be different regarding two fields:
2009-08-10 19:22:09 +00:00
\fI data_length\fR
(the total number of samples in the file) and the
CRC\& .
.RE
.PP
S_TEXT/UTF8
.RS 4
Simple text subtitles will be written as
SRT
files\& .
.RE
.PP
S_TEXT/SSA, S_TEXT/ASS
.RS 4
SSA
and
ASS
text subtitles will be written as
SSA/ASS
files respectively\& .
.RE
.PP
S_KATE
.RS 4
Kate(TM)
streams will be written within an
Ogg(TM)
container\& .
.RE
.PP
Tags
.RS 4
Tags are converted to a
XML
format\& . This format is the same that
\fB mkvmerge\fR (1)
supports for reading tags\& .
.RE
.PP
Attachments
.RS 4
Attachments are written to they output file as they are\& . No conversion whatsoever is done\& .
.RE
.PP
Chapters
.RS 4
Chapters are converted to a
XML
format\& . This format is the same that
\fB mkvmerge\fR (1)
supports for reading chapters\& . Alternatively a stripped\- down version can be output in the simple
OGM
style format\& .
.RE
.PP
Timecodes
.RS 4
Timecodes are first sorted and then output as a timecode v2 format compliant file ready to be fed to
\fB mkvmerge\fR (1)\& . The extraction to other formats (v1, v3 and v4) is not supported\& .
.RE
.SH "EXIT CODES"
.PP
\fB mkvextract\fR (1)
exits with one of three exit codes:
.sp
.RS 4
2009-12-26 21:16:03 +00:00
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
2009-08-10 19:22:09 +00:00
\fB 0\fR
\- \- This exit codes means that extraction has completed successfully\& .
.RE
.sp
.RS 4
2009-12-26 21:16:03 +00:00
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
2009-08-10 19:22:09 +00:00
\fB 1\fR
\- \- In this case
\fB mkvextract\fR (1)
2010-05-28 15:23:07 +00:00
has output at least one warning, but extraction did continue\& . A warning is prefixed with the text \* (AqWarning:\* (Aq\& . Depending on the issues involved the resulting files might be ok or not\& . The user is urged to check both the warning and the resulting files\& .
2009-08-10 19:22:09 +00:00
.RE
.sp
.RS 4
2009-12-26 21:16:03 +00:00
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
2009-08-10 19:22:09 +00:00
\fB 2\fR
2010-03-29 11:39:24 +00:00
\- \- This exit code is used after an error occurred\& .
2009-08-10 19:22:09 +00:00
\fB mkvextract\fR (1)
aborts right after outputting the error message\& . Error messages range from wrong command line arguments over read/write errors to broken files\& .
.RE
2010-12-20 19:12:59 +00:00
.SH "ESCAPING SPECIAL CHARS IN TEXT"
.PP
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\& .
.PP
2011-11-06 16:58:35 +00:00
The rules are: \* (Aq \* (Aq (a space) becomes \* (Aq\e s\* (Aq, \* (Aq"\* (Aq (double quotes) becomes \* (Aq\e 2\* (Aq, \* (Aq:\* (Aq becomes \* (Aq\e c\* (Aq, \* (Aq#\* (Aq becomes \* (Aq\e h\* (Aq and \* (Aq\e \* (Aq (a single backslash) itself becomes \* (Aq\e \e \* (Aq\& .
2009-08-10 19:22:09 +00:00
.SH "SEE ALSO"
.PP
\fB mkvmerge\fR (1),
\fB mkvinfo\fR (1),
2009-08-16 11:26:29 +00:00
\fB mkvpropedit\fR (1),
2009-08-10 19:22:09 +00:00
\fB mmg\fR (1)
.SH "WWW"
.PP
The latest version can always be found at
2009-12-26 21:16:03 +00:00
\m[blue]\fBthe MKVToolNix homepage\fR\m[]\&\s-2\u[1] \d \s +2\& .
2009-08-10 19:22:09 +00:00
.SH "AUTHOR"
.PP
\fB Moritz Bunkus\fR <\& moritz@bunkus\& .org\& >
2009-12-26 21:16:03 +00:00
.RS 4
2009-08-10 19:22:09 +00:00
Developer
2009-12-26 21:16:03 +00:00
.RE
2009-08-10 19:22:09 +00:00
.SH "NOTES"
.IP " 1." 4
the MKVToolNix homepage
.RS 4
\% http://www.bunkus.org/videotools/mkvtoolnix/
.RE