mirror of
https://gitlab.com/mbunkus/mkvtoolnix.git
synced 2024-12-23 11:27:50 +00:00
977 lines
39 KiB
HTML
977 lines
39 KiB
HTML
<html>
|
|
<head>
|
|
<title>A guide to mkvmerge GUI</title>
|
|
</head>
|
|
<body>
|
|
<h1>A guide to mkvmerge GUI (mmg)</h1>
|
|
|
|
<i>Moritz Bunkus</i>
|
|
<hr>
|
|
|
|
<h2>Table of contents</h2>
|
|
|
|
<p>
|
|
<ol>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#introduction">Introduction</a>
|
|
<br>
|
|
<ol>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#whatismatroska">What is Matroska?</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#whatismkvmerge">What is mkvmerge?
|
|
What is mkvmerge GUI?
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#latestversion">Obtaining the latest
|
|
version
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#scope">Scope of this guide</a>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#setup">Setting up mkvmerge GUI</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#muxing">Creating Matroska files</a>
|
|
<br>
|
|
<ol>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#basics">Basics</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#fileoptions">Options for input
|
|
files
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#trackoptions">Options for each
|
|
track
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#attachments">Attachments</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#globaloptions">Global options</a>
|
|
<br>
|
|
<ol>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#global_title">File/segment
|
|
title</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#global_split">Automatic
|
|
splitting and file linking</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#global_link">Manual
|
|
file/segment linking</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#global_chapters">Chapters</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#global_tags">Global tags</a>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#doit">Starting the merge
|
|
process
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#saveload">Saving and loading
|
|
muxing settings
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#jobqueue">Queueing several jobs</a>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#chaptereditor">The chapter editor</a>
|
|
<br>
|
|
<ol>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#chapterconcept">Matroska's
|
|
chapter concept
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#chapterexamples">Examples</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#chapterformats">Chapter formats
|
|
supported by mkvmerge
|
|
</a>
|
|
<br>
|
|
<ol>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#cfsimple">Simple/OGM style
|
|
chapter files
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#cfxml">Full-featured XML
|
|
style chapter files
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#cfkax">Chapters found in
|
|
Matroska files
|
|
</a>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#creatingchapters">Creating
|
|
chapter files
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="mkvmerge-gui.html#editingchapters">Editing existing
|
|
chapters
|
|
</a>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
</ol>
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
<h2><a name="introduction">1. Introduction</a></h2>
|
|
|
|
<h3><a name="whatismatroska">1.1. What is Matroska?</a></h3>
|
|
|
|
<p>(<i>Note: simply copied from <a href="http://www.matroska.org/">
|
|
www.matroska.org</a>.</i>)</p>
|
|
|
|
<p><b>Matroska</b> aims to become THE Standard of Multimedia Container
|
|
Formats. It was derived from a project called MCF, but
|
|
differentiates from it significantly because it is based on EBML
|
|
(Extensible Binary Meta Language), a binary derivative of XML. EBML
|
|
enables the Matroska Development Team to gain significant advantages
|
|
in terms of future format extensibility, without breaking file
|
|
support in old parsers.</p>
|
|
|
|
<p>If you need any more info please head over to
|
|
<a href="http://www.matroska.org/">Matroska's homepage</a>.</p>
|
|
|
|
<h3><a name="whatismkvmerge">1.2. What is mkvmerge? What is mkvmerge
|
|
GUI?</a></h3>
|
|
|
|
<p><i>mkvmerge</i> and <i>mkvmerge GUI</i> (or just <i>mmg</i>) are two
|
|
programs created by <a href="mailto:moritz@bunkus.org">Moritz
|
|
Bunkus</a>. They're part of the <i>mkvtoolnix</i> package. <i>mkvmerge</i>
|
|
can read a lot of different multimedia files and put their contents into
|
|
Matroska files. Unfortunately this is a command line program, and not
|
|
everyone is comfortable working on the command line. This is where
|
|
<i>mkvmerge GUI</i> comes into play. It is a GUI that provides the user
|
|
with an intuitive but powerful interface to <i>mkvmerge</i>.</p>
|
|
|
|
<p>Both programs are available for both Windows and GNU/Linux and
|
|
other Unix derivatives. The program is licensed under the GPL, so
|
|
the source code is available to anyone interested.</p>
|
|
|
|
<h3><a name="latestversion">1.3. Obtaining the latest version</a></h3>
|
|
|
|
<p>You can always find the latest version of <i>mkvtoolnix</i> on
|
|
<a href="http://www.bunkus.org/videotools/mkvtoolnix/">Moritz
|
|
Bunkus' website</a>. Windows users will have to download the runtime
|
|
DLLs as well as the <i>mkvtoolnix</i> binaries. Linux/Unix users
|
|
will probably download the sources and compile
|
|
<i>mkvtoolnix</i> themselves.</p>
|
|
|
|
<h3><a name="scope">1.4. Scope of this guide</a></h3>
|
|
|
|
<p>This guide only focuses on the GUI part of these tools. All
|
|
command line options are explained in detail in <a
|
|
href="mkvmerge.html"><i>mkvmerge</i>'s man page/HTML page</a>.</p>
|
|
|
|
<hr>
|
|
|
|
<h2><a name="setup">2. Setting up mkvmerge GUI</a></h2>
|
|
|
|
<p>(<i>Note: This section does not cover compilation and
|
|
installation. <i>mkvmerge</i>'s own documentation and the
|
|
<code>README</code> files that are included in the
|
|
<i>mkvtoolnix</i> package.</i>)</p>
|
|
|
|
<table width="100%" border="0">
|
|
<tr>
|
|
<td valign="top">
|
|
<p>The only thing that <i>mmg</i> needs to know is the location
|
|
of the <i>mkvmerge</i> binary. Under normal circumstances it
|
|
will be found automatically. But if not then you can select
|
|
the binary to use on the <i>Settings</i> tab.</p>
|
|
</td>
|
|
<td> </td>
|
|
<td valign="top">
|
|
<img src="images/selectmkvmergeexecutable.png"
|
|
alt="selecting the mkvmerge executable">
|
|
<br>
|
|
<font size="-1">Use this button to select the path to the
|
|
<i>mkvmerge</i> program.</font>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<hr>
|
|
|
|
<h2><a name="muxing">3. Creating Matroska files</a></h2>
|
|
|
|
<h3><a name="basics">3.1. Basics</a></h3>
|
|
|
|
<p><i>mkvmerge</i> strictly differentiates between <i>files</i> and
|
|
<i>tracks</i>. An input <i>file</i> usually contains one or more
|
|
<i>tracks</i>. <i>mkvmerge</i> needs at least one input file and the file
|
|
name of the Matroska file it should create before it can do any
|
|
work. Starting with this minimal set of options the user can add more input
|
|
files, select advanced options for each track, apply some more global
|
|
options etc.</p>
|
|
|
|
<p>The typical basic steps are:<br>
|
|
<ol>
|
|
<li>Select some input <i>files</i>,</li>
|
|
<li>set language options for the <i>tracks</i>,</li>
|
|
<li>set the movie/file title,</li>
|
|
<li>select the file to write to and</li>
|
|
<li>start the muxing process.</li>
|
|
</ol>
|
|
</p>
|
|
|
|
<table width="100%" border="0">
|
|
<tr>
|
|
<td valign="top">
|
|
|
|
<p>When <i>mmg</i> starts up it shows the first and probably most
|
|
important tab: the <i>input tab</i>. Here you see four different
|
|
elements. The topmost input box lists all input
|
|
<i>files</i>. Directly under this box are options that apply
|
|
to the currently selected input <i>file</i>.</p>
|
|
|
|
<p>The two buttons to the right of the upper list box can be used to add
|
|
files to the list box with the <i>add</i> button and to remove the
|
|
selected entry with the <i>remove</i> button.</p>
|
|
|
|
</td>
|
|
<td> </td>
|
|
<td valign="top">
|
|
<img src="images/addremovefiles.png"
|
|
alt="adding and removing files">
|
|
<br>
|
|
<font size="-1">Use these buttons to add and remove
|
|
files.</font>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">
|
|
<p>Once the user has added at least one input <i>file</i> in the upper
|
|
list box the second list box will contains all available
|
|
<i>tracks</i>. Each track is ENabled by default and will be
|
|
muxed into the resulting file. However, you can change that by
|
|
simply clicking on the check box right in front of the track's
|
|
name in the second list box. For each of these tracks the user
|
|
can select track specific options with the input boxes and
|
|
check boxes below the track listing. These options will be
|
|
described in the following sections.</p>
|
|
|
|
<p>To the right of the track list box there are two buttons with which
|
|
you can control the order of the tracks in the output file. By hitting
|
|
the <i>up</i> and <i>down</i> the currently selected track is moved in
|
|
the appropriate direction.</p>
|
|
</td>
|
|
<td> </td>
|
|
<td valign="top">
|
|
<img src="images/trackselection.png" alt="selecting specific
|
|
tracks">
|
|
<br>
|
|
<font size="-1">One enabled and one disabled track. The second track will
|
|
not be copied into the output file.</font>
|
|
</td>
|
|
|
|
</tr>
|
|
</table>
|
|
|
|
|
|
<h3><a name="fileoptions">3.2. Options for input file</a></h3>
|
|
|
|
<p>Once the user has added and selected an input file he can set options
|
|
that apply to this specific file. At the moment three such options have
|
|
been implemented, and they all are only available for Matroska files:
|
|
<code>No chapters</code>, <code>No attachments</code> and <code>No
|
|
tags</code>. These options tell <i>mkvmerge</i> not to copy any
|
|
chapters / attachments / tags from the current source file.
|
|
<br>
|
|
<b>Note:</b> At the time of writing <i>mkvmerge</i> cannot copy tags from a
|
|
source Matroska file. You have to extract them with mkvextract first.</p>
|
|
|
|
<p>More information about chapters can be found in the section about the
|
|
<a href="mkvmerge-gui.html#chaptereditor">chapter editor</a> in this
|
|
document and in <i>mkvmerge</i>'s own documentation.</p>
|
|
|
|
<h3><a name="trackoptions">3.3. Options for each track</a></h3>
|
|
|
|
<p>Depending on the type of the currently selected track (audio, video,
|
|
subtitles) and even depending on the contents of the track only a subset of
|
|
all the track specific options are available. <b>Note:</b> Unless
|
|
overridden by the user <i>mkvmerge</i> will either copy track settings from
|
|
the input file if the source format supports such information, or it will
|
|
use sensitive default values.</p>
|
|
|
|
<p>The available options are:</p>
|
|
|
|
<table width="100%" border="0">
|
|
<tr>
|
|
<td valign="top">
|
|
<ul>
|
|
|
|
<li><code>Language:</code> The user can select the language for each
|
|
track regardless of its type. This language is coded in the ISO639-2
|
|
language code. The drop-down box contains all ISO639-2 codes so the
|
|
user does not have to worry about selecting the wrong language
|
|
code.</li>
|
|
|
|
<li><code>Track name:</code> The user can set a name for the current
|
|
track. This name is a free-form string. Practical examples could be
|
|
'director's comments' or 'great view of Seattle'. Note that these names
|
|
are not meant to contain the movie title!</li>
|
|
|
|
<li><code>Cues:</code> The <i>cues</i> are for Matroska what the index
|
|
is for AVI files. They contain links to the key frames. Usually this
|
|
option should be left on the value 'default'. <i>mkvmerge</i> will
|
|
automatically chose the best method for any given track type. A full
|
|
explanation of tracks can be found in <a
|
|
href="mkvmerge.html"><i>mkvmerge</i>'s documentation</a>.</li>
|
|
|
|
<li><code>FourCC:</code> Matroska does not normally store the Four-CC
|
|
which is used in other containers to identify the codec used. Matroska
|
|
has its own format, called <i>CodecID</i>, but it also has an AVI
|
|
compatibility mode. In this mode the FourCC is also stored. With this
|
|
option the FourCC can be forced to a different value. However, you
|
|
cannot change the <i>CodecID</i> used by <i>mkvmerge</i>.
|
|
<br>
|
|
This option is only available for video tracks.</li>
|
|
|
|
<li><code>Aspect ratio:</code> With this option the user can set the
|
|
aspect ratio that should be used upon playback. It defaults to the
|
|
aspect ratio that the movie was encoded with but can be changed,
|
|
e.g. for anamorphic encodings. The GUI expects the format to be either
|
|
a floating point number (e.g. '2.33') or a fraction (e.g. '16/9').
|
|
<br>
|
|
Another possibility is to set the values for the display width and
|
|
display height manually. This can come in handy if you want to adjust
|
|
the parameters to a specific resolution. If you specify the aspect
|
|
ratio then <i>mkvmerge</i> will calculate the display dimensions based
|
|
on the size of the video track.
|
|
<br>
|
|
This option is only available for video tracks.</li>
|
|
|
|
<li><code>Delay (in ms):</code> In some cases audio and video are not
|
|
synchronized properly. With this option the user can offset the audio
|
|
track by a given amount, either positive or negative. <i>mkvmerge</i>
|
|
will either remove samples at the beginning or insert silence at the
|
|
beginning to adjust the track.
|
|
<br>
|
|
This option is available for audio and text subtitle tracks.</li>
|
|
|
|
<li><code>Stretch by:</code> In some cases audio and video slowly drift
|
|
apart during playback. This can be fixed by supplying a factor of how
|
|
much the time codes should be stretched by <i>mkvmerge</i>. If nothing
|
|
is given then '1.0' is assumed which does not alter the time
|
|
codes. Please note that this option has not been implemented for all
|
|
audio track types yet.
|
|
<br>
|
|
This option is available for audio and text subtitle tracks.</li>
|
|
|
|
<li><code>Subtitle charset:</code> Some text subtitle formats do not
|
|
store the charset that they were created with. This is important
|
|
because text subtitles are automatically converted to the UTF-8 charset
|
|
during muxing. <i>mkvmerge</i> will normally assume that the system's
|
|
current charset is the same that the subtitle file was written in. But
|
|
in case this is not true the user can select the correct charset.
|
|
<br>
|
|
This option is only available for text subtitle tracks.</li>
|
|
|
|
<li><code>Compression:</code> Matroska features a powerful system for
|
|
compressing tracks with lossless compression algorithms. Those
|
|
compressions can be applied to any given track, but some players only
|
|
support this for VobSub tracks. This is where it's most useful. Other
|
|
tracks, especially audio and video tracks, are already compressed so
|
|
that additional compression will not yield any result. For VobSubs you
|
|
can achieve an additional gain of about 30% if you enable zlib
|
|
compression. That's why it is the default for VobSub tracks.
|
|
<br>
|
|
You should just leave this setting at <i>default</i>.</li>
|
|
|
|
<li><code>Make default track:</code> Matroska knows a flag which tells
|
|
the player that a specific track should be preferred upon playback if
|
|
the user does not chose another one. Of course each track <i>type</i>
|
|
has its own default track - e.g. the default audio track is the English
|
|
one, and the default subtitle track is the French one. If no track is
|
|
set to be the default track then <i>mkvmerge</i> will promote the first
|
|
track of each type that it finds to be the default track. This is
|
|
consistent with the behavior of various media players.</li>
|
|
|
|
<li><code>AAC is SBR/HE-AAC/AAC+:</code> The new technology called 'high
|
|
efficiency AAC' has some drawbacks when it is being stored in
|
|
<code>.AAC</code> files: it is not possible to detect the HE-AAC part
|
|
for these files. Therefore the user has to check this option manually
|
|
if it applies. Please note that this problem does not exist for HE-AAC
|
|
stored in <code>.MP4</code> files.</li>
|
|
|
|
<li><code>Tags:</code> For each track you can create a XML tags
|
|
file. For a full explanation of all tags please refer to the example
|
|
file and <a href="mkvmerge.html"><i>mkvmerge</i>'s own
|
|
documentation</a>. In probably 99% of all cases you want to use THIS
|
|
option and associate tags with a specific track. The tags option on the
|
|
global tab is probably not what you need.</li>
|
|
|
|
</ul>
|
|
</td>
|
|
<td> </td>
|
|
<td valign="top">
|
|
<p>
|
|
<img src="images/videotrackoptions.png"
|
|
alt="typical options for a video track">
|
|
<br>
|
|
<font size="-1">Typical options for a video track</font>
|
|
</p>
|
|
<p>
|
|
<img src="images/audiotrackoptions.png"
|
|
alt="typical options for an audio track">
|
|
<br>
|
|
<font size="-1">Typical options for an audio track</font>
|
|
</p>
|
|
<p>
|
|
<img src="images/textsubtitlestrackoptions.png"
|
|
alt="typical options for a text subtitle track">
|
|
<br>
|
|
<font size="-1">Typical options for a text subtitle track</font>
|
|
</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3><a name="attachments">3.4. Attachments</a></h3>
|
|
|
|
<table width="100%" border="0">
|
|
<tr>
|
|
<td valign="top">
|
|
|
|
<p>Matroska files can also contain other files, called attachments. This
|
|
works basically just like with your favorite email program. The idea is
|
|
to provide additional information about the file. Some examples could be
|
|
cover photos for a CD rip, additional background information in text
|
|
form about the movie or even some compressed fonts for the
|
|
subtitles.</p>
|
|
|
|
<p>Every attachment needs two things: the file name (obviously) and the
|
|
MIME type that should be associated with the file. The usage is very
|
|
easy and similar to adding files on the
|
|
<i>input</i> tab.</p>
|
|
|
|
<p>On the second tab of the GUI, the <i>attachment</i> tab, you can add a
|
|
file with the <i>+</i> button and remove the selected attachment with
|
|
the <i>-</i> button. Once an attachment has been selected the other
|
|
controls on this tab will be available. You do have to select a MIME
|
|
type for each attachment, but the description is optional - although it
|
|
is a good idea to always provide a description. This makes it easier for
|
|
others to identify what you've attached to this Matroska file.</p>
|
|
|
|
<p>The last option, <code>attachment style</code>, is only evaluated when
|
|
you also split the output into several files. (Splitting in general is
|
|
explained in the following section.) If the option <code>To all
|
|
files</code> is selected then the current file will be attached to all
|
|
output files created. If the option <code>Only to the first</code> is
|
|
selected then the file is only attached to the very first output file
|
|
created.</p>
|
|
</td>
|
|
<td> </td>
|
|
<td valign="top">
|
|
<p>
|
|
<img src="images/addingremovingattachments.png"
|
|
alt="adding and removing attachments">
|
|
<br>
|
|
<font size="-1">Add and remove attachments with these buttons.</font>
|
|
</p>
|
|
<p>
|
|
<img src="images/attachmentoptions.png"
|
|
alt="typical options for an attachment">
|
|
<br>
|
|
<font size="-1">Typical options for an attachment</font>
|
|
</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3><a name="globaloptions">3.5. Global options</a></h3>
|
|
|
|
<p>The third tab, <i>Global</i>, is packed full of options that apply to the
|
|
complete file and not just to one or more tracks.</p>
|
|
|
|
<table width="100%" border="0">
|
|
<tr>
|
|
<td valign="top">
|
|
|
|
<h4><a name="global_title">3.5.1. File/segment title</a></h4>
|
|
|
|
<p><code>File/segment title:</code> This title is used for the actual
|
|
movie title, e.g. 'Vanilla Sky'.</p>
|
|
|
|
</td>
|
|
<td> </td>
|
|
<td valign="top">
|
|
<p>
|
|
<img src="images/movietitle.png"
|
|
alt="selecting a movie title">
|
|
<br>
|
|
<font size="-1">Selecting a title for the movie</font>
|
|
</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">
|
|
<h4><a name="global_split">3.5.2. Automatic splitting and file
|
|
linking </a></h4>
|
|
|
|
<p>The <code>Split</code> section handles how the output file is split
|
|
into several smaller files. If no splitting is selected then only one
|
|
big file is generated. If splitting is activated then you can tell
|
|
<i>mkvmerge</i> to start a new output file after either a specific
|
|
amount of data has been written to the current file or after a specific
|
|
amount of time has accumulated. The formats accepted are:
|
|
<br>
|
|
<ul>
|
|
<li>For the size: A number optionally followed by the letter 'K', 'M'
|
|
or 'G' indicating kilobytes (1024 bytes), megabytes (1024 * 1024
|
|
bytes) or gigabytes (1024 * 1024 * 1024 bytes). Examples: '700M' or
|
|
'100000K'.</li>
|
|
|
|
<li>For the time: The format is either <code>HH:MM:SS</code> or a
|
|
number followed by the letter 's' indicating a number of
|
|
seconds. Examples: '01:20:00' (split after 1 hour, 20 minutes) or
|
|
'1800s' (split after 1800 seconds = 30 minutes).</li>
|
|
</ul>
|
|
</p>
|
|
|
|
<p><code>Don't link:</code> This option controls how <i>mkvmerge</i> will
|
|
handle splitting. A little explanation about this feature:</p>
|
|
|
|
<p>Matroska supports file linking which simply says that a specific file
|
|
is the predecessor or successor of the current file. To be precise, it's
|
|
not really the files that are linked but the Matroska segments. As most
|
|
files will probably only contain one Matroska segment I simply say 'file
|
|
linking' although 'segment linking' would be more appropriate.</p>
|
|
|
|
<p>Each segment is identified by a unique 128 bit wide segment UID. This
|
|
UID is automatically generated by <i>mkvmerge</i>. The linking is done
|
|
primarily via putting the segment UIDs of the previous/next file into
|
|
the segment header information. <i>mkvinfo</i> prints these UIDs if it
|
|
finds them.</p>
|
|
|
|
<p>If a file is split into several smaller ones and linking is used then
|
|
the time codes will not start at 0 again but will continue where the
|
|
last file has left off. This way the absolute time is kept even if the
|
|
previous files are not available (e.g. when streaming). If no linking is
|
|
used then the time codes should start at 0 for each file. By default
|
|
<i>mkvmerge</i> does not use file linking because some players still
|
|
don't handle linked files properly. If you want linking that you can
|
|
turn it on by enabling this <code>link files</code> check box.</p>
|
|
|
|
<h4><a name="global_link">3.5.3. Manual file/segment linking</a></h4>
|
|
|
|
<p>Regardless of whether splitting is active or not the user can tell
|
|
<i>mkvmerge</i> to link the produced files to specific
|
|
UIDs. This is done by entering a valid segment UID into the
|
|
two input boxes, <code>Previous segment UID</code> and
|
|
<code>Next segment UID</code>. These options accept a segment
|
|
UID in the format that <i>mkvinfo</i> outputs: 16 hexadecimal
|
|
numbers between 0x00 and 0xff prefixed with '0x' each and
|
|
separated with spaces, e.g. <code>0x41 0xda 0x73 0x66 0xd9
|
|
0xcf 0xb2 0x1e 0xae 0x78 0xeb 0xb4 0x5e 0xca 0xb3
|
|
0x93</code>. Alternatively a shorter form can be used: 16
|
|
hexadecimal numbers between 0x00 and 0xff without the '0x'
|
|
prefixes and without the spaces, e.g.
|
|
<code>41da7366d9cfb21eae78ebb45ecab393</code>.</p>
|
|
|
|
<p>If splitting is used then the first file is linked to the UID given in
|
|
the <code>Previous segment UID</code> input box, and the last file is
|
|
linked to the UID given in the <code>Next segment UID</code> input
|
|
box. If splitting is not used then the one output file will be linked to
|
|
both of the two UIDs.</p>
|
|
|
|
<h4><a name="global_chapters">3.5.4. Chapters</a></h4>
|
|
|
|
<p>With the browse button you can select the chapters to add to the
|
|
output file. A full explanation of all aspects around chapters can be
|
|
found in the <a href="mkvmerge-gui.html#chaptereditor"> Chapter editor
|
|
section</a>.</p>
|
|
|
|
<h4><a name="global_tags">3.5.5. Global tags</a></h4>
|
|
|
|
<p>Unlike the tags you can select for each track on the input tab the
|
|
tags selected here have to contain the track UIDs. These tags are not
|
|
assigned to any track automatically. In 99% of all cases this is NOT the
|
|
option you want to use!</p>
|
|
|
|
<p>The full explanation can be found in
|
|
<a href="mkvmerge.html">mkvmerge's documentation</a>.</p>
|
|
|
|
</td>
|
|
<td> </td>
|
|
<td valign="top">
|
|
<p>
|
|
<img src="images/splitting.png"
|
|
alt="typical options for splitting">
|
|
<br>
|
|
<font size="-1">Typical options for splitting. Create two files which
|
|
will be approx. 700megs big.</font>
|
|
</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3><a name="doit">3.6. Starting the merge process</a></h3>
|
|
|
|
<table width="100%" border="0">
|
|
<tr>
|
|
<td valign="top">
|
|
<p>Once everything has been set up the muxing process can be started. The
|
|
last thing to do is to chose where to mux to. With the
|
|
<code>browse</code> button you can select the output file. After this
|
|
has been done hit the <code>Start muxing</code> button or select the
|
|
same entry from the <code>Muxing</code> menu.</p>
|
|
|
|
<p>If everything has been set up correctly <i>mmg</i> will show the
|
|
muxing dialog. The progress is shown at the top, as is a general
|
|
description of what <i>mkvmerge</i> is doing at the moment.</p>
|
|
|
|
<p><i>mkvmerge</i> knows three different 'severity levels' for its
|
|
messages: status reports, warnings and errors. All status report
|
|
messages are shown in the upper window. These include the track types
|
|
encountered and other interesting things.</p>
|
|
|
|
<p>Warnings are shown in the middle window. <i>mkvmerge</i> will not
|
|
abort when it issues a warning, but it might stop muxing the track for
|
|
which the warning was printed. You should pay close attention to all
|
|
warning messages.</p>
|
|
|
|
<p>Errors are show in the lower window. Errors are always fatal, and
|
|
<i>mkvmerge</i> will stop muxing right after it has printed the error
|
|
message. Such a message might be that the hard disc is full or that the
|
|
source file is damaged and cannot be processed any further.</p>
|
|
|
|
<p>The button <code>Abort</code> sends <i>mkvmerge</i> the signal to stop
|
|
muxing. Unless <i>mkvmerge</i> is stuck in some endless loop it will
|
|
stop soon after you've pressed the button. With <code>Save log</code>
|
|
you can save the complete output from <i>mkvmerge</i> into a text file
|
|
for further study or in case you've encountered a bug and want to send
|
|
me some additional information.</p>
|
|
</td>
|
|
<td> </td>
|
|
<td valign="top">
|
|
<p>
|
|
<img src="images/muxingwindow.png"
|
|
alt="the muxing window">
|
|
<br>
|
|
<font size="-1">The muxing window</font>
|
|
</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3><a name="saveload">3.7. Saving and loading muxing settings</a></h3>
|
|
|
|
<p>All your hard work of setting options does not have to be lost when you
|
|
exit the program. You can save all your muxing settings into text based
|
|
configuration files with the <code>Save settings</code> option in the
|
|
<code>File</code> menu and restore them later with the <code>Load
|
|
settings</code> option. The default extension is <code>.mmg</code> and is
|
|
usually not used by other programs. You can also associate this extension
|
|
with <i>mmg</i> so that it automatically loads the settings if it is called
|
|
with the name of such a settings file.</p>
|
|
|
|
<h3><a name="jobqueue">3.8. Queueing several jobs</a></h3>
|
|
|
|
<p>For the case that you have several files that you want to mux you don't
|
|
have to prepare the first file, wait for it to finish muxing, prepare the
|
|
second, wait for it to finish muxing etc. <i>mkvmerge GUI</i> contains a
|
|
job manager which can queue complete jobs and run them one after another at
|
|
your conveniance. The basic steps when using the job manager are:</p>
|
|
|
|
<p>
|
|
<ol>
|
|
<li>Add all files, set all the options, set the output file name.</li>
|
|
<li>Hit the <code>Add to job queue</code> button and select a title that
|
|
this job will be referred under.</li>
|
|
<li>Repeat as often as wanted.</li>
|
|
<li>Bring up the job manager window by selecting <code>Manage jobs</code>
|
|
from the <code>Muxing</code> menu.</li>
|
|
<li>Hit the <code>Start</code> button.</li>
|
|
<li>Get something to drink, go shopping or talk to your significant other
|
|
;)</li>
|
|
</ol>
|
|
</p>
|
|
|
|
<table width="100%" border="0">
|
|
<tr>
|
|
<td valign="top">
|
|
<p>Each job has six attributes: an ID which is automatically chosen my
|
|
<i>mkvmerge GUI</i>; its status (<code>pending</code> - it hasn't been
|
|
muxed yet, <code>done</code> - muxing has completed successfully,
|
|
<code>done with warnings</code> - muxing has completed successfully but
|
|
there were warnings, <code>failed</code> - the muxing process failed);
|
|
the name that you've entered before; the time and date on which the job
|
|
was added to the job queue; the time and date when the muxing process
|
|
was started for this job and the time and date when the muxing process
|
|
finished.</p>
|
|
|
|
<p>The general controls are located at the bottom. The <code>Start</code>
|
|
button will start the muxing process for all jobs whose status is
|
|
<code>pending</code>. The <code>Start selected</code> button will start
|
|
the muxing process for all jobs that are currently selected independent
|
|
of their status.</p>
|
|
|
|
<p>The buttons on the right manipulate all selected jobs. The
|
|
<code>Up</code> and <code>Down</code> move the selected jobs up and down
|
|
in the list. The <code>Re-enable</code> button sets the jobs' status to
|
|
<code>pending</code> so that they will be started the next time the
|
|
<code>Start</code> button is pressed. The <code>Disable</code> button
|
|
will set the status to <code>done</code>.</p>
|
|
|
|
<p>During the muxing process <i>mkvmerge</i>'s output will not be shown
|
|
but saved. If you want to see a job's output you can hit the <code>View
|
|
log</code> button. This is useful if a job completed with warnings or if
|
|
it failed completely.</p>
|
|
|
|
</td>
|
|
<td> </td>
|
|
<td valign="top">
|
|
<p>
|
|
<img src="images/jobmanager.png" alt="the job management dialog">
|
|
<br>
|
|
<font size="-1">The job management dialog</font>
|
|
</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
|
|
<hr>
|
|
|
|
<h2><a name="chaptereditor">4. The chapter editor</a></h2>
|
|
|
|
<p>One of the new features of <i>mmg</i> is a full-featured chapter
|
|
editor. It can read text based chapter files, import chapters from existing
|
|
Matroska files, write text based chapter files that can be selected on the
|
|
global tab and write chapters directly to existing Matroska files.</p>
|
|
|
|
<h3><a name="chapterconcept">4.1. Matroska's chapter concept</a></h3>
|
|
|
|
<p>Unlike a lot of other systems Matroska supports <i>nested</i>
|
|
chapters. This basically means that you can define sub chapters for
|
|
chapters.</p>
|
|
|
|
<p>A chapter entity in Matroska consists of at least four items: The UID of
|
|
the track(s) it applies to, the chapter title/name, it's start time and the
|
|
language code associated with it. Additional elements are optional and
|
|
include the end time, more language codes and country codes. Usually the
|
|
user will only need the mandatory elements. Of these he can only specify
|
|
the name, the start time and the language code. <i>mkvmerge</i> will then
|
|
automatically assign all chapters to the complete file.</p>
|
|
|
|
<h3><a name="chapterexamples">4.2. Examples</a></h3>
|
|
|
|
<p>The first example is a simple one. The movie in question contains four
|
|
parts: The intro starting at the beginning, the first act, the second act,
|
|
and the credits. Note that the end timestamps are optional.</p>
|
|
|
|
<p><code>Intro (from 00:00:00, language English)
|
|
<br>
|
|
Act 1 (from 00:01:00, language English)
|
|
<br>
|
|
Act 2 (from 00:05:30, language English)
|
|
<br>
|
|
Credits (from 00:12:20 until 00;12:55, language English)</code></p>
|
|
|
|
<p>A more complex example including sub chapters. Let's take Ludwig van
|
|
Beethoven's opera Fidelio. For the sake of brevity I'm only including the
|
|
first three pieces of the two acts.</p>
|
|
|
|
<p>The first act contains:
|
|
<ol>
|
|
<li>Overtüre (6:24 long),</li>
|
|
<li>Arie: 'Jetzt, Schätzchen, jetzt sind wir allein' (4:46
|
|
long) and</li>
|
|
<li>Dialog: 'Armer Jaquino' (0:10 long).</li>
|
|
</ol>
|
|
The second act contains:
|
|
<ol>
|
|
<li>Ouvertüre und Arie: 'Gott! welch Dunkel hier!' (10:46
|
|
long),</li>
|
|
<li>Melodrama und Duett: 'Wie kalt ist es' (5:21 long) and</li>
|
|
<li>Dialog: 'Er erwacht!' (0:59 long).</li>
|
|
</ol>
|
|
</p>
|
|
|
|
<p>The first act, which will be our first chapter, has a combined length of
|
|
11:20. Our second act has a length of 17:06. These chapters would look like
|
|
this:</p>
|
|
|
|
<p><code>Erster Akt (from 00:00:00 until 00:11:20, language German,
|
|
country Germany)
|
|
<br>
|
|
Ouvertüre (from 00:00:00 until 00:06:24, language
|
|
German, country Germany)
|
|
<br>
|
|
Arie: 'Jetzt, Schätzchen, jetzt sind wir allein'
|
|
(from 00:06:24 until 00:11:10, language German, country Germany)<br>
|
|
Dialog: 'Armer Jaquino' (from 00:11:10 until 00:11:20,
|
|
language German, country Germany)
|
|
<br>
|
|
|
|
Zweiter Akt (from 00:11:20 until 00:28:26, language German,
|
|
country Germany)
|
|
<br>
|
|
Ouvertüre und Arie: 'Gott! welch Dunkel hier!'
|
|
(from 00:11:20 until 00:22:06, language German, country Germany)
|
|
<br>
|
|
Melodrama und Duett: 'Wie kalt ist es' (from 00:22:06
|
|
until 00:27:27, language German, country Germany)
|
|
<br>
|
|
Dialog: 'Er erwacht!' (from 00:27:27 until 00:28:26,
|
|
language German, country Germany)
|
|
</code>
|
|
</p>
|
|
|
|
<h3><a name="chapterformats">4.3. Chapter formats supported by mkvmerge
|
|
</a></h3>
|
|
|
|
<p><i>mkvmerge</i> and <i>mmg</i>'s chapter editor both support different
|
|
formats for chapter files.</p>
|
|
|
|
<h4><a name="cfsimple">4.3.1. Simple/OGM style chapter files</a></h4>
|
|
|
|
<p>One of the most basic formats is the format used in OGM files. It is a
|
|
text based format. Each chapter entry contains of two lines, the first
|
|
containing the start time, the second the chapter's title/name. All lines
|
|
are numbered.</p>
|
|
|
|
<p>The first example from above can be expressed in this format:<br>
|
|
<code>CHAPTER01=00:00:00.000<br>
|
|
CHAPTER01NAME=Intro<br>
|
|
CHAPTER02=00:01:00.000<br>
|
|
CHAPTER02NAME=Act 1<br>
|
|
CHAPTER03=00:05:30.000<br>
|
|
CHAPTER03NAME=Act 2<br>
|
|
CHAPTER04=00:12:20.000<br>
|
|
CHAPTER04NAME=Credits
|
|
</code>
|
|
</p>
|
|
|
|
<p>The second example cannot be expressed in this format because it supports
|
|
neither language specifications nor end times or nested chapters. The
|
|
advantage is that such files are very easy to create, and there are several
|
|
tools available for both Windows and Unix/Linux that create such files
|
|
directly from DVDs.</p>
|
|
|
|
<p>Due to its limitations <i>mmg</i> cannot output chapters in this
|
|
format.</p>
|
|
|
|
<h4><a name="cfxml">4.3.2. Full-featured XML style chapter files</a></h4>
|
|
|
|
<p>I've created a XML based chapter format that closely matches the system
|
|
Matroska uses. With this format you have the full control over all
|
|
features. I won't describe this format here in detail. Please have a look
|
|
at the example XML chapter files that came with <i>mkvtoolnix</i>.</p>
|
|
|
|
<h4><a name="cfkax">4.3.3. Chapters found in Matroska files</a></h4>
|
|
|
|
<p>The chapter editor can read chapters directly from Matroska files. These
|
|
can be written to XML chapter files or back to the same Matroska file or
|
|
another Matroska file. All features are supported.</p>
|
|
|
|
<h3><a name="creatingchapters">4.4. Creating chapter files</a></h3>
|
|
|
|
<table width="100%" border="0">
|
|
<tr>
|
|
<td valign="top">
|
|
<p>The chapter editor consists of three parts: the tree view of all
|
|
chapters, the four buttons used for adding and removing chapter entries,
|
|
and the input boxes which are used for setting the chapter entry's
|
|
data.</p>
|
|
|
|
<p>In Matroska files one chapter is defined by having a start time, a
|
|
name and a language that is associated with that name. You can have
|
|
several names for one chapter and each associated with a different
|
|
language. You may also add an end time, but that is not mandatory.</p>
|
|
|
|
<p>A new chapter file is started with the <code>New</code> option from
|
|
the <code>Chapter editor</code> menu. You can add a new chapter with the
|
|
<code>Add chapter</code> or <code>Add subchapter</code> buttons. The
|
|
difference between these two buttons is that when a chapter has been
|
|
selected <code>Add chapter</code> will append a new chapter directly
|
|
after the selected chapter on the same level, and <code>Add
|
|
subchapter</code> will add a new chapter as the last child of the
|
|
currently selected chapter.</p>
|
|
|
|
<p>The <code>Remove chapter</code> has to be used with care. It removes
|
|
the complete subtree without asking for confirmation, and there is no
|
|
undo option available at the moment.</p>
|
|
|
|
<p>After selecting a chapter entry you can change its data. The format
|
|
for the start and end time are either <code>HH:MM:SS.mmm</code> or
|
|
simply <code>HH:MM:SS</code>. One chapter name will already have been
|
|
added. You can edit it and select the language that this name is given
|
|
in. This way you could provide names in several languages, e.g. 'The
|
|
hero arrives' with 'eng' as the language and 'Der Held kommt an' with
|
|
'ger' as the language. Just hit the <code>Add name</code> button if you
|
|
need more entries and <code>Remove name</code> in order to get rid of
|
|
one.</p>
|
|
|
|
<p>Creating many chapters and always changing the language can be quite
|
|
some work. Therefore you can select which language and country tags
|
|
<i>mmg</i> should add by default with the <code>Set default
|
|
values</code> menu entry in the <code>Chapters</code> menu. The
|
|
<code>Set values</code> button does something similar. With it you can
|
|
apply a language and/or country to the currently selected entry and all
|
|
its children.</p>
|
|
|
|
<p>Saving chapters to XML files can be done with <code>Save</code> or
|
|
<code>Save as</code>. <code>Save as</code> cannot be used to write
|
|
chapters to an existing Matroska file - you'll have to use <code>Save to
|
|
Matroska file</code> for that.</p>
|
|
</td>
|
|
<td> </td>
|
|
<td valign="top">
|
|
<p>
|
|
<img src="images/chaptereditor.png"
|
|
alt="the chapter editor">
|
|
<br>
|
|
<font size="-1">The chapter editor showing the example from
|
|
above</font>
|
|
</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3><a name="editingchapters">4.5. Editing existing chapters</a></h3>
|
|
|
|
<p>You can load existing chapter files or chapters from Matroska files by
|
|
selecting the <code>Load</code> option from the <code>Chapter editor</code>
|
|
menu. <i>mmg</i> will automatically detect the file type used and read the
|
|
chapters.</p>
|
|
|
|
</body>
|
|
</html>
|