Add options '+file', '=file', '( file1 file2 )' to --help and the man page

This commit is contained in:
Moritz Bunkus 2012-02-02 14:33:53 +01:00
parent f0b0ec70c7
commit f1edbf9acb
7 changed files with 380 additions and 24 deletions

View File

@ -224,7 +224,7 @@ XMLファイルからセグメント情報を読み取ります。このファ
.sp
特殊な値\fB\-1\fRが指定された場合、たとえビデオトラックが存在していてもサンプリング音の精度を使用します。
.RE
.SS "ファイルの分割と紐付け、追加結合(グローバルオプションの続き):"
.SS "File splitting, linking, appending and concatenation (more global options)"
.PP
\fB\-\-split\fR \fIspecification\fR
.RS 4
@ -356,7 +356,9 @@ $ mkvmerge \-o full\&.mkv file1\&.mkv +file2\&.mkv
.PP
\fB=\fR
.RS 4
通常mkvmergeは、入力ファイルと同じディレクトリにあり、同じ基底名を持ち、通し番号だけが異なるファイル\*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq etcを検索します。この\*(Aq=\*(Aq一文字のオプションを使うと、mkvmergeはそういった追加ファイルを検索しません。
Normally
\fBmkvmerge\fR(1)
looks for files in the same directory as an input file that have the same base name and only differ in their running number (e\&.g\&. \*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq etc) and treats all of those files as if they were concatenated into a single big file\&. This option, a single \*(Aq=\*(Aq, causes mkvmerge not to look for those additional files\&.
.sp
\*(Aq=\*(Aqは次のファイル名の直前に置くこともできます。よって、次の2つのコマンドは等価です。
.sp
@ -371,6 +373,64 @@ $ mkvmerge \-o full\&.mkv =file1\&.mkv
.RE
.\}
.RE
.PP
\fB(\fR \fIfile1\fR \fIfile2\fR \fB)\fR
.RS 4
If multiple file names are contained in a pair of parenthesis then those files will be treated as if they were concatenated into a single big file consisting of the content of each of the files one after the other\&.
.sp
This can be used for e\&.g\&. VOB files coming from a DVD or MPEG transport streams\&. It cannot be used if each file contains its own set of headers which is usually the case with stand\-alone files like AVI or MP4\&.
.sp
Putting a file name into parenthesis also prevents
\fBmkvmerge\fR(1)
from looking for additional files with the same base name as described in
option \fB=\fR\&. Therefore these two command lines are equivalent:
.sp
.if n \{\
.RS 4
.\}
.nf
$ mkvmerge \-o out\&.mkv = file\&.mkv
$ mkvmerge \-o out\&.mkv \*(Aq(\*(Aq file\&.mkv \*(Aq)\*(Aq
.fi
.if n \{\
.RE
.\}
.sp
Several things should be noted:
.sp
.RS 4
.ie n \{\
\h'-04' 1.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 1." 4.2
.\}
There must be spaces both after the opening and before the closing parenthesis\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 2.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 2." 4.2
.\}
Every parameter between parenthesis is interpreted as a file name\&. Therefore all options applying to this logical file must be listed before the opening parenthesis\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 3.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 3." 4.2
.\}
Some shells treat parenthesis as special characters\&. Hence you must escape or quote them as shown in the example above\&.
.RE
.RE
.SS "添付ファイルのサポート(グローバルオプションの続き)"
.PP
\fB\-\-attachment\-description\fR \fIdescription\fR

View File

@ -316,7 +316,7 @@ is used then
\fBmkvmerge\fR(1)
will use sample precision even if a video track is present\&.
.RE
.SS "File splitting, linking and appending (more global options)"
.SS "File splitting, linking, appending and concatenation (more global options)"
.PP
\fB\-\-split\fR \fIspecification\fR
.RS 4
@ -493,7 +493,9 @@ $ mkvmerge \-o full\&.mkv file1\&.mkv +file2\&.mkv
.PP
\fB=\fR
.RS 4
Normally mkvmerge looks for files in the same directory as an input file that have the same base name and only differ in their running number (e\&.g\&. \*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq etc)\&. This option, a single \*(Aq=\*(Aq, causes mkvmerge not to look for those additional files\&.
Normally
\fBmkvmerge\fR(1)
looks for files in the same directory as an input file that have the same base name and only differ in their running number (e\&.g\&. \*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq etc) and treats all of those files as if they were concatenated into a single big file\&. This option, a single \*(Aq=\*(Aq, causes mkvmerge not to look for those additional files\&.
.sp
The \*(Aq=\*(Aq can also be put in front of the next file name\&. Therefore the following two commands are equivalent:
.sp
@ -508,6 +510,64 @@ $ mkvmerge \-o full\&.mkv =file1\&.mkv
.RE
.\}
.RE
.PP
\fB(\fR \fIfile1\fR \fIfile2\fR \fB)\fR
.RS 4
If multiple file names are contained in a pair of parenthesis then those files will be treated as if they were concatenated into a single big file consisting of the content of each of the files one after the other\&.
.sp
This can be used for e\&.g\&. VOB files coming from a DVD or MPEG transport streams\&. It cannot be used if each file contains its own set of headers which is usually the case with stand\-alone files like AVI or MP4\&.
.sp
Putting a file name into parenthesis also prevents
\fBmkvmerge\fR(1)
from looking for additional files with the same base name as described in
option \fB=\fR\&. Therefore these two command lines are equivalent:
.sp
.if n \{\
.RS 4
.\}
.nf
$ mkvmerge \-o out\&.mkv = file\&.mkv
$ mkvmerge \-o out\&.mkv \*(Aq(\*(Aq file\&.mkv \*(Aq)\*(Aq
.fi
.if n \{\
.RE
.\}
.sp
Several things should be noted:
.sp
.RS 4
.ie n \{\
\h'-04' 1.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 1." 4.2
.\}
There must be spaces both after the opening and before the closing parenthesis\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 2.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 2." 4.2
.\}
Every parameter between parenthesis is interpreted as a file name\&. Therefore all options applying to this logical file must be listed before the opening parenthesis\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 3.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 3." 4.2
.\}
Some shells treat parenthesis as special characters\&. Hence you must escape or quote them as shown in the example above\&.
.RE
.RE
.SS "Attachment support (more global options)"
.PP
\fB\-\-attachment\-description\fR \fIdescription\fR

View File

@ -367,7 +367,7 @@
</refsect2>
<refsect2>
<title>File splitting, linking and appending (more global options)</title>
<title>File splitting, linking, appending and concatenation (more global options)</title>
<variablelist>
<varlistentry id="mkvmerge.description.split">
@ -561,13 +561,13 @@ $ mkvmerge -o full.mkv file1.mkv +file2.mkv</screen>
</listitem>
</varlistentry>
<varlistentry>
<varlistentry id="mkvmerge.description.prevent_concatenation">
<term><option>=</option></term>
<listitem>
<para>
Normally mkvmerge looks for files in the same directory as an input file that have the same base name and only differ in their running
number (e.g. 'VTS_01_1.VOB', 'VTS_01_2.VOB', 'VTS_01_3.VOB' etc). This option, a single '=', causes mkvmerge not to look for those
additional files.
Normally &mkvmerge; looks for files in the same directory as an input file that have the same base name and only differ in their
running number (e.g. 'VTS_01_1.VOB', 'VTS_01_2.VOB', 'VTS_01_3.VOB' etc) and treats all of those files as if they were concatenated
into a single big file. This option, a single '=', causes mkvmerge not to look for those additional files.
</para>
<para>
@ -579,6 +579,55 @@ $ mkvmerge -o full.mkv =file1.mkv</screen>
</listitem>
</varlistentry>
</variablelist>
<varlistentry id="mkvmerge.description.concatenation">
<term><option>(</option> <parameter>file1</parameter> <parameter>file2</parameter> <option>)</option></term>
<listitem>
<para>
If multiple file names are contained in a pair of parenthesis then those files will be treated as if they were concatenated into a
single big file consisting of the content of each of the files one after the other.
</para>
<para>
This can be used for e.g. VOB files coming from a DVD or MPEG transport streams. It cannot be used if each file contains its own set
of headers which is usually the case with stand-alone files like AVI or MP4.
</para>
<para>
Putting a file name into parenthesis also prevents &mkvmerge; from looking for additional files with the same base name as described
in <link linkend="mkvmerge.description.prevent_concatenation">option <option>=</option></link>. Therefore these two command lines are
equivalent:
</para>
<screen>$ mkvmerge -o out.mkv = file.mkv
$ mkvmerge -o out.mkv '(' file.mkv ')'</screen>
<para>
Several things should be noted:
</para>
<orderedlist>
<listitem>
<para>
There must be spaces both after the opening and before the closing parenthesis.
</para>
</listitem>
<listitem>
<para>
Every parameter between parenthesis is interpreted as a file name. Therefore all options applying to this logical file must be listed before the opening parenthesis.
</para>
</listitem>
<listitem>
<para>
Some shells treat parenthesis as special characters. Hence you must escape or quote them as shown in the example above.
</para>
</listitem>
</orderedlist>
</listitem>
</varlistentry>
</refsect2>
<refsect2>

View File

@ -317,7 +317,7 @@ is gebruikt, dan zal
\fBmkvmerge\fR(1)
een voorbeeld precisie gebruiken zelfs als er een video spoor aanwezig is\&.
.RE
.SS "File splitting, linking and appending (more global options)"
.SS "File splitting, linking, appending and concatenation (more global options)"
.PP
\fB\-\-split\fR \fIspecification\fR
.RS 4
@ -494,7 +494,9 @@ $ mkvmerge \-o full\&.mkv file1\&.mkv +file2\&.mkv
.PP
\fB=\fR
.RS 4
Normaal kijkt mkvmerge naar bestanden in dezelfde map welke dezelfde basis naam bevatten maar alleen verschillen van volgordenummer (b\&.v\&. \*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq etc)\&. Deze optie, een enkele \*(Aq=\*(Aq maakt dat mkvmerge niet kijkt naar die extra bestanden\&.
Normally
\fBmkvmerge\fR(1)
looks for files in the same directory as an input file that have the same base name and only differ in their running number (e\&.g\&. \*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq etc) and treats all of those files as if they were concatenated into a single big file\&. This option, a single \*(Aq=\*(Aq, causes mkvmerge not to look for those additional files\&.
.sp
De \*(Aq=\*(Aq kan ook worden ingegeven voor elk volgende bestandsnaam\&. Daarom zijn de volgende twee commando\*(Aqs gelijkwaardig:
.sp
@ -509,6 +511,64 @@ $ mkvmerge \-o full\&.mkv =file1\&.mkv
.RE
.\}
.RE
.PP
\fB(\fR \fIfile1\fR \fIfile2\fR \fB)\fR
.RS 4
If multiple file names are contained in a pair of parenthesis then those files will be treated as if they were concatenated into a single big file consisting of the content of each of the files one after the other\&.
.sp
This can be used for e\&.g\&. VOB files coming from a DVD or MPEG transport streams\&. It cannot be used if each file contains its own set of headers which is usually the case with stand\-alone files like AVI or MP4\&.
.sp
Putting a file name into parenthesis also prevents
\fBmkvmerge\fR(1)
from looking for additional files with the same base name as described in
option \fB=\fR\&. Therefore these two command lines are equivalent:
.sp
.if n \{\
.RS 4
.\}
.nf
$ mkvmerge \-o out\&.mkv = file\&.mkv
$ mkvmerge \-o out\&.mkv \*(Aq(\*(Aq file\&.mkv \*(Aq)\*(Aq
.fi
.if n \{\
.RE
.\}
.sp
Several things should be noted:
.sp
.RS 4
.ie n \{\
\h'-04' 1.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 1." 4.2
.\}
There must be spaces both after the opening and before the closing parenthesis\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 2.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 2." 4.2
.\}
Every parameter between parenthesis is interpreted as a file name\&. Therefore all options applying to this logical file must be listed before the opening parenthesis\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 3.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 3." 4.2
.\}
Some shells treat parenthesis as special characters\&. Hence you must escape or quote them as shown in the example above\&.
.RE
.RE
.SS "Attachment support (more global options)"
.PP
\fB\-\-attachment\-description\fR \fIdescription\fR

View File

@ -316,7 +316,7 @@ is used then
\fBmkvmerge\fR(1)
will use sample precision even if a video track is present\&.
.RE
.SS "File splitting, linking and appending (more global options)"
.SS "File splitting, linking, appending and concatenation (more global options)"
.PP
\fB\-\-split\fR \fIspecification\fR
.RS 4
@ -493,7 +493,9 @@ $ mkvmerge \-o full\&.mkv file1\&.mkv +file2\&.mkv
.PP
\fB=\fR
.RS 4
Normally mkvmerge looks for files in the same directory as an input file that have the same base name and only differ in their running number (e\&.g\&. \*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq etc)\&. This option, a single \*(Aq=\*(Aq, causes mkvmerge not to look for those additional files\&.
Normally
\fBmkvmerge\fR(1)
looks for files in the same directory as an input file that have the same base name and only differ in their running number (e\&.g\&. \*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq etc) and treats all of those files as if they were concatenated into a single big file\&. This option, a single \*(Aq=\*(Aq, causes mkvmerge not to look for those additional files\&.
.sp
The \*(Aq=\*(Aq can also be put in front of the next file name\&. Therefore the following two commands are equivalent:
.sp
@ -508,6 +510,64 @@ $ mkvmerge \-o full\&.mkv =file1\&.mkv
.RE
.\}
.RE
.PP
\fB(\fR \fIfile1\fR \fIfile2\fR \fB)\fR
.RS 4
If multiple file names are contained in a pair of parenthesis then those files will be treated as if they were concatenated into a single big file consisting of the content of each of the files one after the other\&.
.sp
This can be used for e\&.g\&. VOB files coming from a DVD or MPEG transport streams\&. It cannot be used if each file contains its own set of headers which is usually the case with stand\-alone files like AVI or MP4\&.
.sp
Putting a file name into parenthesis also prevents
\fBmkvmerge\fR(1)
from looking for additional files with the same base name as described in
option \fB=\fR\&. Therefore these two command lines are equivalent:
.sp
.if n \{\
.RS 4
.\}
.nf
$ mkvmerge \-o out\&.mkv = file\&.mkv
$ mkvmerge \-o out\&.mkv \*(Aq(\*(Aq file\&.mkv \*(Aq)\*(Aq
.fi
.if n \{\
.RE
.\}
.sp
Several things should be noted:
.sp
.RS 4
.ie n \{\
\h'-04' 1.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 1." 4.2
.\}
There must be spaces both after the opening and before the closing parenthesis\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 2.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 2." 4.2
.\}
Every parameter between parenthesis is interpreted as a file name\&. Therefore all options applying to this logical file must be listed before the opening parenthesis\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 3.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 3." 4.2
.\}
Some shells treat parenthesis as special characters\&. Hence you must escape or quote them as shown in the example above\&.
.RE
.RE
.SS "Attachment support (more global options)"
.PP
\fB\-\-attachment\-description\fR \fIdescription\fR

View File

@ -307,7 +307,7 @@ Matroska(TM) 文件规划
\fB\-1\fR,即使有视频轨,\fBmkvmerge\fR(1)
也将使用采样精度。
.RE
.SS "File splitting, linking and appending (more global options)"
.SS "File splitting, linking, appending and concatenation (more global options)"
.PP
\fB\-\-split\fR \fI指令\fR
.RS 4
@ -476,7 +476,9 @@ $ mkvmerge \-o full\&.mkv file1\&.mkv +file2\&.mkv
.PP
\fB=\fR
.RS 4
通常情况下 mkvmerge 将在输入文件所在的目录中查找基本名称相同,仅在连续的数字方面有差异的文件 (如 \*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq 等等)。此选项,单个 \*(Aq=\*(Aq将令 mkvmerge 不查找这些额外的文件。
Normally
\fBmkvmerge\fR(1)
looks for files in the same directory as an input file that have the same base name and only differ in their running number (e\&.g\&. \*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq etc) and treats all of those files as if they were concatenated into a single big file\&. This option, a single \*(Aq=\*(Aq, causes mkvmerge not to look for those additional files\&.
.sp
\*(Aq=\*(Aq 也可以放在下一个文件名的前面。因此以下两条命令等效:
.sp
@ -491,6 +493,64 @@ $ mkvmerge \-o full\&.mkv =file1\&.mkv
.RE
.\}
.RE
.PP
\fB(\fR \fIfile1\fR \fIfile2\fR \fB)\fR
.RS 4
If multiple file names are contained in a pair of parenthesis then those files will be treated as if they were concatenated into a single big file consisting of the content of each of the files one after the other\&.
.sp
This can be used for e\&.g\&. VOB files coming from a DVD or MPEG transport streams\&. It cannot be used if each file contains its own set of headers which is usually the case with stand\-alone files like AVI or MP4\&.
.sp
Putting a file name into parenthesis also prevents
\fBmkvmerge\fR(1)
from looking for additional files with the same base name as described in
option \fB=\fR\&. Therefore these two command lines are equivalent:
.sp
.if n \{\
.RS 4
.\}
.nf
$ mkvmerge \-o out\&.mkv = file\&.mkv
$ mkvmerge \-o out\&.mkv \*(Aq(\*(Aq file\&.mkv \*(Aq)\*(Aq
.fi
.if n \{\
.RE
.\}
.sp
Several things should be noted:
.sp
.RS 4
.ie n \{\
\h'-04' 1.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 1." 4.2
.\}
There must be spaces both after the opening and before the closing parenthesis\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 2.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 2." 4.2
.\}
Every parameter between parenthesis is interpreted as a file name\&. Therefore all options applying to this logical file must be listed before the opening parenthesis\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 3.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 3." 4.2
.\}
Some shells treat parenthesis as special characters\&. Hence you must escape or quote them as shown in the example above\&.
.RE
.RE
.SS "Attachment support (more global options)"
.PP
\fB\-\-attachment\-description\fR \fI描述\fR

View File

@ -108,17 +108,9 @@ set_usage() {
usage_text += Y(" --clusters-in-meta-seek Write meta seek data for clusters.\n");
usage_text += Y(" --disable-lacing Do not Use lacing.\n");
usage_text += Y(" --enable-durations Enable block durations for all blocks.\n");
usage_text += Y(" --append-to <SFID1:STID1:DFID1:DTID1,SFID2:STID2:DFID2:DTID2,...>\n"
" A comma separated list of file and track IDs\n"
" that controls which track of a file is\n"
" appended to another track of the preceding\n"
" file.\n");
usage_text += Y(" --append-mode <file|track>\n"
" Selects how mkvmerge calculates timecodes when\n"
" appending files.\n");
usage_text += Y(" --timecode-scale <n> Force the timecode scale factor to n.\n");
usage_text += "\n";
usage_text += Y(" File splitting and linking (more global options):\n");
usage_text += Y(" File splitting, linking, appending and concatenating (more global options):\n");
usage_text += Y(" --split <d[K,M,G]|HH:MM:SS|s>\n"
" Create a new file after d bytes (KB, MB, GB)\n"
" or after a specific time.\n");
@ -129,6 +121,21 @@ set_usage() {
usage_text += Y(" --link Link splitted files.\n");
usage_text += Y(" --link-to-previous <SID> Link the first file to the given SID.\n");
usage_text += Y(" --link-to-next <SID> Link the last file to the given SID.\n");
usage_text += Y(" --append-to <SFID1:STID1:DFID1:DTID1,SFID2:STID2:DFID2:DTID2,...>\n"
" A comma separated list of file and track IDs\n"
" that controls which track of a file is\n"
" appended to another track of the preceding\n"
" file.\n");
usage_text += Y(" --append-mode <file|track>\n"
" Selects how mkvmerge calculates timecodes when\n"
" appending files.\n");
usage_text += Y(" <file1> + <file2> Append file2 to file1.\n");
usage_text += Y(" <file1> +<file2> Same as \"<file1> + <file2>\".\n");
usage_text += Y(" = <file> Don't look for and concatenate files with the same\n"
" base name but with a different trailing number.\n");
usage_text += Y(" =<file> Same as \"= <file>\".\n");
usage_text += Y(" ( <file1> <file2> ) Treat file1 and file2 as if they were concatenated\n"
" into a single big file.\n");
usage_text += "\n";
usage_text += Y(" Attachment support (more global options):\n");
usage_text += Y(" --attachment-description <desc>\n"