MKVMERGE(1) | MKVMERGE(1) |
mkvmerge - マルチメディアストリームをMatroskaファイルに格納します。
mkvmerge [global options] {-o out} [options1] {file1} [[options2] {file2}] [@options-file.json]
このプログラムはいくつかのメディアファイルを入力とし、それらに格納されたストリームのうち全て、もしくは選択されたものをMatroskaファイルに書き込みます。Matroska[1]のウェブサイトも参照してください。
コマンドラインオプションの順番は重要です。もしあなたが初心者なら、"オプションの順番"セクションを読んで下さい。
-v, --verbose
-q, --quiet
-o, --output file-name
-w, --webm
For chapters and tags only a subset of elements are allowed. mkvmerge(1) will automatically remove all elements not allowed by the specification.
--title title
--default-language language-code
The default language code is 'und' for 'undefined'.
--segmentinfo filename.xml
詳細は、下にあるセグメント情報XMLファイルのセクションを参照してください。
--segment-uid SID1,SID2,...
If SID starts with = then its rest is interpreted as the name of a Matroska file whose segment UID is read and used.
作成される各ファイルは一つのセグメントを含み、そして各セグメントは一つのセグメントUIDを持ちます。もし、作成されたセグメントよりも多数のセグメントUIDが指定された場合、余ったセグメントUIDは無視されます。また、もし指定されたセグメントUIDよりも多数のセグメントが作成された場合は、ランダムなUIDが作成されて使用されます。
--chapter-language language-code
このオプションはシンプルチャプタファイルを読み込んだ場合、そしてソースファイルがチャプタを含むがチャプタの言語情報を含まなかった場合(例:MP4,OGMファイル)に適用されます。
The language set with this option is also used when chapters are generated with the --generate-chapters option.
--chapter-charset character-set
このスイッチはチャプタがOgg,OGMファイルなどのコンテナからコピーされる際にも適用されます。詳細については後述のチャプタについてのセクションを参照してください。
--chapter-sync d[,o[/p]]
o/p: タイムスタンプをo/pの割合で調整し、リニアドリフトを修正します。pが省略された場合、デフォルトで1が使用されます。o及びpには小数を指定できます。
デフォルト: マニュアル同期修正は行われません(d = 0 かつo = 1.0の場合と同じです)。
このオプションは異るトラックIDを指定することで複数の入力トラックに対して使用することができます。
--generate-chapters mode
Example: --generate-chapters interval:45s
The names for the new chapters are controlled by the option --generate-chapters-name-template. The language is set with --chapter-language which must occur before --generate-chapters.
--generate-chapters-name-template template
There are several variables that can be used in the template that are replaced by their actual values when a chapter is generated. The string '<NUM>' will be replaced by the chapter number. The string '<START>' will be replaced by the chapter's start timestamp.
The strings '<FILE_NAME>' and '<FILE_NAME_WITH_EXT>' are only filled when generating chapters for appended files. They will be replaced by the appended file's name wihtout respectively with its extension. Note that only the file's base name and extension are inserted, not its directory or drive components.
You can specify a minimum number of places for the chapter number with '<NUM:places>', e.g. '<NUM:3>'. The resulting number will be padded with leading zeroes if the number of places is less than specified.
You can control the format used by the start timestamp with <START:format>. The format defaults to '%H:%M:%S' if none is given. Valid format codes are:
--cue-chapter-name-format format
このオプションが指定されていない場合、デフォルトで'%p - %t'というフォーマットが使用されます。
フォーマットが指定された場合、下のメタ文字以外はそのままコピーされ、メタ文字は以下のように置換されます。
--chapters file-name
--global-tags file-name
--track-order FID1:TID1,FID2:TID2,...
--cluster-length spec
単位が指定されなかった場合、クラスタごとのデータブロックの最大個数はnに設定されます。上限は65535です。
数字dに'ms'が後置されていた場合、mkvmerge(1)は各データクラスタ毎に最大でもdミリ秒分のデータしか格納しません。dの最小値は'100ms'、最大値は'32000ms'です。
デフォルトは、データクラスタ毎に65535データブロック以下、5000ms以下のデータを書き込みます。
プログラムがあるフレームを見つけようとするときは、クラスタに直接シークして、その後クラスタ全体を読み込みます。よって、より大きなクラスタを作ると、シークが不正確かつ遅くなるかもしれません。
--no-cues
--clusters-in-meta-seek
--disable-lacing
--enable-durations
--disable-track-statistics-tags
Enabling this option prevents mkvmerge(1) from writing those tags and from touching any existing tags with same names.
--timestamp-scale factor
通常mkvmerge(1)は1000000を使用します。これはタイムコードとフレーム持続期間が1ミリ秒単位の精度を持つことを意味します。ビデオトラックを含まず、1つ以上のオーディオトラックを含むファイルでは、mkvmerge(1)は全てのタイムコードとフレーム持続時間がサンプリング音1つ分の精度を持つようタイムコードスケールの係数を自動的に選択します。これによってオーバーヘッドは大きくなりますが、正確なシークと展開が可能になります。
特殊な値-1が指定された場合、たとえビデオトラックが存在していてもサンプリング音の精度を使用します。
--split specification
At the moment mkvmerge(1) supports four different modes.
書式: --split [size:]d[k|m|g]
例: --split size:700m or --split 150000000
パラメータdの後ろには'k'・'m'・'g'を付けて、単位がそれぞれKB・MB・GBであることを示すことができます。付けない場合はバイト単位になります。出力中のファイルがこの上限に達したら、次の新しいファイルへの出力が開始されます。
'size:'という接頭辞は、互換性のために省略できるようになっています。
書式: --split [duration:]HH:MM:SS.nnnnnnnnn|ds
例: --split duration:00:60:00.000 or --split 3600s
パラメータはHH:MM:SS.nnnnnnnnnという形式でナノ秒精度で長さを指定するか、数字dのあとに's'と書いて秒数で長さを指定しなければなりません。HHは時間、MMは分、SSは秒数でnnnnnnnnnナノ秒を示します。時間及びナノ秒は省略できます。小数点の後ろには9桁までの数字を指定できます。指定した長さだけ出力されたら、次のファイルへの出力が開始されます。
'duration:'という接頭辞は、互換性のために省略できるようになっています。
書式: --split timestamps:A[,B[,C...]]
例: --split timestamps:00:45:00.000,01:20:00.250,6300s
パラメータA、B、C...は、durationで使用されるものと同じフォーマットで指定しなければなりません(上記参照)。タイムコードのリストはコンマで区切られます。入力ストリームが現在の分割点に達すると次のファイルが作成され、このリストから次の分割点が使用されます。
'timestamps:'という接頭辞は、互換性のために省略できるようになっています。
Syntax: --split parts:start1-end1[,[+]start2-end2[,[+]start3-end3...]]
Examples:
The parts mode tells mkvmerge(1) to keep certain ranges of timestamps while discarding others. The ranges to keep have to be listed after the parts: keyword and be separated by commas. A range itself consists of a start and an end timestamp in the same format the other variations of --split accept (e.g. both 00:01:20 and 80s refer to the same timestamp).
If a start timestamp is left out then it defaults to the previous range's end timestamp. If there was no previous range then it defaults to the start of the file (see example 3).
If an end timestamp is left out then it defaults to the end of the source files which basically tells mkvmerge(1) to keep the rest (see example 3).
Normally each range will be written to a new file. This can be changed so that consecutive ranges are written to the same file. For that the user has to prefix the start timestamp with a +. This tells mkvmerge(1) not to create a new file and instead append the range to the same file the previous range was written to. Timestamps will be adjusted so that there will be no gap in the output file even if there was a gap in the two ranges in the input file.
In example 1 mkvmerge(1) will create two files. The first will contain the content starting from 00:01:20 until 00:02:45. The second file will contain the content starting from 00:05:50 until 00:10:30.
In example 2 mkvmerge(1) will create only one file. This file will contain both the content starting from 00:01:20 until 00:02:45 and the content starting from 00:05:50 until 00:10:30.
In example 3 mkvmerge(1) will create two files. The first will contain the content from the start of the source files until 00:02:45. The second file will contain the content starting from 00:05:50 until the end of the source files.
Syntax: --split parts-frames:start1-end1[,[+]start2-end2[,[+]start3-end3...]]
Examples:
The parts-frames mode tells mkvmerge(1) to keep certain ranges of frame/field numbers while discarding others. The ranges to keep have to be listed after the parts-frames: keyword and be separated by commas. A range itself consists of a start and an end frame/field number. Numbering starts at 1.
If a start number is left out then it defaults to the previous range's end number. If there was no previous range then it defaults to the start of the file (see example 3).
If an end number is left out then it defaults to the end of the source files which basically tells mkvmerge(1) to keep the rest (see example 3).
Normally each range will be written to a new file. This can be changed so that consecutive ranges are written to the same file. For that the user has to prefix the start number with a +. This tells mkvmerge(1) not to create a new file and instead append the range to the same file the previous range was written to. Timestamps will be adjusted so that there will be no gap in the output file even if there was a gap in the two ranges in the input file.
In example 2 mkvmerge(1) will create only one file. This file will contain both the content starting from 733 until 912 and the content starting from 1592 until 2730.
In example 3 mkvmerge(1) will create two files. The first will contain the content from the start of the source files until 430. The second file will contain the content starting from 2512 until the end of the source files.
This mode considers only the first video track that is output. If no video track is output no splitting will occur.
Syntax: --split frames:A[,B[,C...]]
Example: --split frames:120,237,891
The parameters A, B, C etc must all be positive integers. Numbering starts at 1. The list of frame/field numbers is separated by commas. After the input stream has reached the current split point's frame/field number a new file is created. Then the next split point given in this list is used.
The 'frames:' prefix must not be omitted.
This mode considers only the first video track that is output. If no video track is output no splitting will occur.
Syntax: --split chapters:all or --split chapters:A[,B[,C...]]
Example: --split chapters:5,8
The parameters A, B, C etc must all be positive integers. Numbering starts at 1. The list of chapter numbers is separated by commas. Splitting will occur right before the first key frame whose timestamp is equal to or bigger than the start timestamp for the chapters whose numbers are listed. A chapter starting at 0s is never considered for splitting and discarded silently.
The keyword all can be used instead of listing all chapter numbers manually.
The 'chapters:' prefix must not be omitted.
この分割モードでは、出力ファイル名は通常の操作とは異なる扱いを受けます。このモードでは出力ファイル名はprintfのように'%d'というパターンを含むことができます。'%02d'のように幅指定を追加することもできます。出力ファイル名がこのパターンを含む場合、ファイル番号が適切なフォーマットで指定された位置に挿入されます。含まない場合、'-%03d'というパターンがファイルの拡張子の直前に指定されたものとみなされ、例えば'-o output.mkv'を指定した場合、'output-001.mkv'等のファイル名に出力されます。拡張子が存在しない場合、'-%03d'はファイル名の末尾に追加されます。
--link
--link-to-previous segment-UID
If SID starts with = then its rest is interpreted as the name of a Matroska file whose segment UID is read and used.
--link-to-next segment-UID
If SID starts with = then its rest is interpreted as the name of a Matroska file whose segment UID is read and used.
--append-mode mode
mkvmergeが二つめのファイル(以後'file2'と呼ぶ)のトラック(以後'track2_1'と呼ぶ)を、一つめのファイル(以後'file1'と呼ぶ)のトラック(以後'track1_1'と呼ぶ)と結合する際、'track2_1'のタイムコードは一定量だけずらす必要があります。'file'モードでは、ずらす量は'file1'の中の'track1_1'以外のトラックを含む全てのトラックの中で一番大きいタイムコードの値になります。'track'モードでは、'track1_1'の中で一番大きいタイムコードの値になります。
残念ながら、mkvmergeはどちらのモードが適切であるか判断はできません。デフォルトは'file'モードになっています。'file'モードは独立に作られたファイル同士を結合する際、例えばAVI又はMP4ファイルを結合する際に、通常はより上手く働きます。'track'モードは、例えばVOBやEVOファイルなどの大きなファイルの一部がソースの場合より上手く働くかもしれません。
字幕トラックは'track'モードが指定された場合でも、常に'file'が指定されたかのように処理されます。
--append-to SFID1:STID1:DFID1:DTID1[,...]
このオプションが指定されない場合、標準のマッピングが使用されます。この場合、前のファイルのトラックに、現在のファイルのトラックIDが同じであるトラックが追加されます。これにより、動画が二つのファイルに分割されており、かつ同じトラック数とトラックIDを持つ場合、mkvmerge -o output.mkv part1.mkv +part2.mkvのようにして簡単に結合することができます。
+
$ mkvmerge -o full.mkv file1.mkv + file2.mkv $ mkvmerge -o full.mkv file1.mkv +file2.mkv
[ file1 file2 ]
This is an alternative syntax to using '+' between the file names. Therefore the following two commands are equivalent:
$ mkvmerge -o full.mkv file1.mkv + file2.mkv $ mkvmerge -o full.mkv '[' file1.mkv file2.mkv ']'
=
'='は次のファイル名の直前に置くこともできます。よって、次の2つのコマンドは等価です。
$ mkvmerge -o full.mkv = file1.mkv $ mkvmerge -o full.mkv =file1.mkv
( file1 file2 )
これは、例えばDVDのVOBファイルやMPEGトランスポートストリーム等のために使用することができます。通常AVIやMP4のようなスタンドアローンのファイルの場合ですが、各ファイルが自身のヘッダを一通り含んでいる場合には使用することができません。
ファイル名を括弧で括るのは、オプション=で説明されているように同じ基底名を持つファイルをmkvmerge(1)に検索させない効果もあります。 よって、これらの2つのコマンドラインは同値です:
$ mkvmerge -o out.mkv = file.mkv $ mkvmerge -o out.mkv '(' file.mkv ')'
いくつか注意事項があります:
--attachment-description description
--attachment-mime-type MIME type
--attachment-name name
--attach-file file-name, --attach-file-once file-name
mkvextract(1)でMatroskaファイルから添付ファイルを抽出することができます。
-a, --audio-tracks [!]n,m,...
Instead of track IDs you can also provide ISO 639-2 language codes. This will only work for source files that provide language tags for their tracks.
Default: copy all tracks of this kind.
If the IDs are prefixed with ! then the meaning is reversed: copy all tracks of this kind but the ones listed after the !.
-d, --video-tracks [!]n,m,...
Instead of track IDs you can also provide ISO 639-2 language codes. This will only work for source files that provide language tags for their tracks.
If the IDs are prefixed with ! then the meaning is reversed: copy all tracks of this kind but the ones listed after the !.
-s, --subtitle-tracks [!]n,m,...
Instead of track IDs you can also provide ISO 639-2 language codes. This will only work for source files that provide language tags for their tracks.
If the IDs are prefixed with ! then the meaning is reversed: copy all tracks of this kind but the ones listed after the !.
-b, --button-tracks [!]n,m,...
Instead of track IDs you can also provide ISO 639-2 language codes. This will only work for source files that provide language tags for their tracks.
If the IDs are prefixed with ! then the meaning is reversed: copy all tracks of this kind but the ones listed after the !.
--track-tags [!]n,m,...
もしIDにプレフィックス!がついていた場合は、意味が逆になります:!の後に列挙されたIDを除く全てをコピーします。
-m, --attachments [!]n[:all|first],m[:all|first],...
デフォルトでは、全ての添付ファイルが全ての出力ファイルにコピーされます。
もしIDにプレフィックス!がついていた場合は、意味が逆になります:!の後に列挙されたIDを除く全てをコピーします。
-A, --no-audio
-D, --no-video
-S, --no-subtitles
-B, --no-buttons
-T, --no-track-tags
--no-chapters
-M, --no-attachments
--no-global-tags
--chapter-charset character-set
--chapter-language language-code
-y, --sync TID:d[,o[/p]]
o/p: タイムスタンプをo/pの割合で調整し、リニアドリフトを修正します。pが省略された場合、デフォルトで1が使用されます。o及びpには小数を指定できます。
デフォルト: マニュアル同期修正は行われません(d = 0 かつo = 1.0の場合と同じです)。
このオプションは異るトラックIDを指定することで複数の入力トラックに対して使用することができます。
--cues TID:none|iframes|all
The default is 'iframes' for video and subtitle tracks and 'none' for audio tracks. See also option --no-cues which inhibits the creation of cue entries regardless of the --cues options used.
このオプションは異るトラックIDを指定することで複数の入力トラックに対して使用することができます。
--default-track TID[:bool]
このオプションは異るトラックIDを指定することで複数の入力トラックに対して使用することができます。
--forced-track TID[:bool]
このオプションは異るトラックIDを指定することで複数の入力トラックに対して使用することができます。
--blockadd TID:level
--track-name TID:name
--language TID:language
このオプションは異るトラックIDを指定することで複数の入力トラックに対して使用することができます。
-t, --tags TID:file-name
--aac-is-sbr TID[:0|1]
ソースファイルがMatroskaファイルの場合、CodecIDによりSBR AACを検知できます。しかし、CodecIDが不正な場合、このスイッチで修正することができます。
もし、mkvmergeがAACファイルを間違ってSBRと認識してしまった場合、トラックIDに':0'を指定できます。
--reduce-to-core TID
Currently only DTS tracks are affected by this option. TrueHD tracks that contain an embedded AC-3 core are instead presented as two separate tracks for which the user can select which track to copy. For DTS such a scheme would not work as the HD extensions cannot be decoded by themselves – unlike the TrueHD data.
--remove-dialog-normalization-gain TID
Currently only AC-3, DTS and TrueHD tracks are affected by this option.
--timestamps TID:file-name
--default-duration TID:x
デフォルトのフレーム持続時間が指定されなかった場合は、mkvmergeはそのトラックのデフォルトのフレーム持続時間を、コンテナと、AVC/h.264やMPEG-2のような特定のトラックタイプの場合はエンコードされたビットストリームから取得しようと試みます。
このオプションは、外部タイムコードファイルを使用せずにビデオトラックのFPSを変更するのにも使えます。
--fix-bitstream-timing-information TID[:0|1]
--nalu-size-length TID:n
--compression TID:n
'mpeg4_p2'/'mpeg4p2'圧縮法は、 MPEG4 part2 ビデオトラックにのみ適用できる、'header removal'と呼ばれる特殊な圧縮法です。
The default for some subtitle types is 'zlib' compression. This compression method is also the one that most if not all playback applications support. Support for other compression methods other than 'none' is not assured.
-f, --fourcc TID:FourCC
--display-dimensions TID:widthxheight
これらの値を設定する別の方法として、--aspect-ratio又は--aspect-ratio-factorオプションが使用できます(下記参照)。これらのオプションは互いに排他的です。
--aspect-ratio TID:ratio|width/height
これらの値を設定する別の方法として、--aspect-ratio-factor又は--display-dimensionsオプションが使用できます(上記及び下記参照)。これらのオプションは互いに排他的です。
--aspect-ratio-factor TID:factor|n/d
これらの値を設定する別の方法として、--aspect-ratio又は--display-dimensionsオプションが使用できます(上記参照)。これらのオプションは互いに排他的です。
--cropping TID:left,top,right,bottom
--colour-matrix TID:n
Valid values and their meaning are:
0: GBR, 1: BT709, 2: unspecified, 3: reserved, 4: FCC, 5: BT470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: YCOCG, 9: BT2020 non-constant luminance, 10: BT2020 constant luminance
--colour-bits-per-channel TID:n
--chroma-subsample TID:hori,vert
Example: For video with 4:2:0 chroma subsampling, the parameter should be set to TID:1,1.
--cb-subsample TID:hori,vert
Example: For video with 4:2:1 chroma subsampling, the parameter --chroma-subsample should be set to TID:1,0 and Cb-subsample should be set to TID:1,0.
--chroma-siting TID:hori,vert
--colour-range TID:n
--colour-transfer-characteristics TID:n
Valid values and their meaning are:
0: reserved, 1: ITU-R BT.709, 2: unspecified, 3: reserved, 4: gamma 2.2 curve, 5: gamma 2.8 curve, 6: SMPTE 170M, 7: SMPTE 240M, 8: linear, 9: log, 10: log sqrt, 11: IEC 61966-2-4, 12: ITU-R BT.1361 extended colour gamut, 13: IEC 61966-2-1, 14: ITU-R BT.2020 10 bit, 15: ITU-R BT.2020 12 bit, 16: SMPTE ST 2084, 17: SMPTE ST 428-1; 18: ARIB STD-B67 (HLG)
--colour-primaries TID:n
Valid values and their meaning are:
0: reserved, 1: ITU-R BT.709, 2: unspecified, 3: reserved, 4: ITU-R BT.470M, 5: ITU-R BT.470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: FILM, 9: ITU-R BT.2020, 10: SMPTE ST 428-1, 22: JEDEC P22 phosphors
--max-content-light TID:n
--max-frame-light TID:n
--chromaticity-coordinates TID:red-x,red-y,green-x,green-y,blue-x,blue-y
--white-colour-coordinates TID:x,y
--max-luminance TID:float
--min-luminance TID:float
--projection-type TID:method
--projection-private TID:data
--projection-pose-yaw TID:float
--projection-pose-pitch TID:float
--projection-pose-roll TID:float
--field-order TID:n
0: progressive; 1: interlaced with top field displayed first and top field stored first; 2: undetermined field order; 6: interlaced with bottom field displayed first and bottom field stored first; 9: interlaced with bottom field displayed first and top field stored first; 14: interlaced with top field displayed first and bottom field stored first
--stereo-mode TID:n|keyword
'mono', 'side_by_side_left_first', 'top_bottom_right_first', 'top_bottom_left_first', 'checkerboard_right_first', 'checkerboard_left_first', 'row_interleaved_right_first', 'row_interleaved_left_first', 'column_interleaved_right_first', 'column_interleaved_left_first', 'anaglyph_cyan_red', 'side_by_side_right_first', 'anaglyph_green_magenta', 'both_eyes_laced_left_first', 'both_eyes_laced_right_first'.
--sub-charset TID:character-set
このオプションは異るトラックIDを指定することで複数の入力トラックに対して使用することができます。
-i, --identify file-name
The output format used for the result can be changed with the option --identification-format.
-J file-name
-F, --identification-format format
This format is not meant to be parsed. The output will be translated into the language mkvmerge(1) uses (see also --ui-language).
mkvmerge-identification-output-schema-v11.json[3]
All versions of the JSON schema are available both online and in the released source code archives.
--probe-range-percentage percentage
If tracks are known to be present but not found then the percentage to probe can be changed with this option. The minimum of 10 MB is built-in and cannot be changed.
-l, --list-types
--list-languages
--priority priority
Selecting 'lowest' also causes mkvmerge(1) to select idle I/O priority in addition to the lowest possible process priority.
--command-line-charset character-set
--output-charset character-set
-r, --redirect-output file-name
--flush-on-close
--ui-language code
--abort-on-warnings
--debug topic
--engage feature
--gui-mode
@options-file.json
--capabilities
-h, --help
-V, --version
各ファイルについて、ユーザはmkvmerge(1)が取り出すべきトラックを選択できます。取り出されたトラックは、すべて-oで指定されたファイルに書き出されます。既知の(サポート済の)入力ファイルフォーマットは-lオプションで取得できます。
コマンドラインオプションの順番は重要です。もしあなたが初心者なら、"オプションの順番"セクションを読んで下さい。
いくつかのオプションでは、入力する順番が重要になります。オプションは2つに分類されます:
オプションは左から右へと処理されます。もし同じスコープ内に1つのオプションが2回以上出てきた場合には、最後のものが使われます。よって、次の例ではタイトルは"Something else"に設定されます。
$ mkvmerge -o output.mkv --title 'This and that' input.avi --title 'Something else'
次の例は、違うスコープ内で使われているので--languageオプションを2回使ってもよいということを示しています。それらは同じトラックIDに適用されますが、違う入力ファイルに適用されるので違うスコープを持っているのです。
$ mkvmerge -o output.mkv --language 0:fre français.ogg --language 0:deu deutsch.ogg
あなたは、 MyMovie.avi というファイルを持っていて、またオーディオトラックが別の、例えば 'MyMovie.wav'というファイルに入っているとします。あなたは、まず音声をOggVorbisでエンコードしたいと思います。
$ oggenc -q4 -oMyMovie.ogg MyMovie.wav
数分後、ビデオとオーディオを結合できます。
$ mkvmerge -o MyMovie-with-sound.mkv MyMovie.avi MyMovie.ogg
AVIファイルが既にオーディオトラックを持っていた場合(そしてそのフォーマットをmkvmerge(1)がサポートしていた場合)、そのトラックもコピーされます。これを避けるには、下のようにしてください。
$ mkvmerge -o MyMovie-with-sound.mkv -A MyMovie.avi MyMovie.ogg
ちょっと考えて、あなたはもうひとつのオーディオトラック(例えばオーディオコメンタリや吹替えなど)を'MyMovie-add-audio.wavにリッピングしました。再びエンコードして、新しいファイルにまとめます。
$ oggenc -q4 -oMyMovie-add-audio.ogg MyMovie-add-audio.wav $ mkvmerge -o MM-complete.mkv MyMovie-with-sound.mkv MyMovie-add-audio.ogg
同じことは、次のようにしても可能です。
$ mkvmerge -o MM-complete.mkv -A MyMovie.avi MyMovie.ogg MyMovie-add-audio.ogg
あとはmplayerを立ち上げて動画を楽しむだけです。もし、複数のオーディオトラック(もしかするとビデオトラックも)がある場合は、再生するトラックを'-vid'と'-aid'オプションでmplayerに指定できます。ゼロベースで、ビデオとオーディオの区別をしないIDを指定します。
もし、オーディオトラックの同期をとる必要がある場合も、簡単にとることができます。まず、次のようにしてVorbisトラックのトラックIDを取得します。
$ mkvmerge --identify outofsync.ogg
次に、このIDを使って、次のようなコマンドラインを実行します。
$ mkvmerge -o goodsync.mkv -A source.avi -y 12345:200 outofsync.ogg
上のようにすると、'outofsync.ogg'に入っている、IDが 12345 のオーディオトラックの最初に200msの無音を挿入します。
最初は同期がとれているのにだんだんとずれていく動画もあります。このような動画には、全てのタイムコードに適用される遅れ係数を指定することができます。データは追加も削除もされないので、あまり大きな、またはあまりに小さな係数を指定するとまずい結果になるでしょう。例として、私が変換したある動画は、全長が77340フレームで、最終的に0.2秒ずれていました。29.97fpsでは、0.2は約6フレームに相当します。よって、私は次のようなコマンドを実行しました。
$ mkvmerge -o goodsync.mkv -y 23456:0,77346/77340 outofsync.mkv
結果は良好でした。
同期オプションは字幕にも同様に使用できます。
テキスト字幕を生成するには、SubRipperのようなWindowsソフトウェアを使用するか、transcode(1)のソースコードの、contrib/subrip'ディレクトリの中にあるsubripパッケージが使用できます。一般的なプロセスは以下の通りです。
$ tccat -i /path/to/copied/dvd/ -T 1 -L | tcextract -x ps1 -t vob -a 0x20 | subtitle2pgm -o mymovie
$ pgm2txt mymovie
$ ispell -d american *txt
$ srttool -s -w -i mymovie.srtx -o mymovie.srt
出力されたファイルをmkvmerge(1)の入力ファイルとして使用する:
$ mkvmerge -o mymovie.mkv mymovie.avi mymovie.srt
もし、あるトラックに言語コードを指定したいならば、簡単に指定できます。まず、指定する言語のISO639-2コードを調べます。次のようにすればmkvmerge(1)に全ての言語コードを一覧表示させることができます。
$ mkvmerge --list-languages
必要な言語をリストの中から探してください。Matroskaファイルの中に、二つのオーディオトラックがあり、トラックIDは2と3だとします。この二つに言語コードを指定するには、次のようにします。
$ mkvmerge -o with-lang-codes.mkv --language 2:ger --language 3:dut without-lang-codes.mkv
このように、--languageスイッチを複数回使うことができます。
プレイヤーにデフォルトでオランダ語を再生させたいときもあるでしょう。さらに、例えば英語とフランス語の字幕があって、フランス語をデフォルトで再生させたいと仮定します。これは、次のようにすれば可能です。
$ mkvmerge -o with-lang-codes.mkv --language 2:ger --language 3:dut --default-track 3 without-lang-codes.mkv --language 0:eng english.srt --default-track 0 --language 0:fre french.srt
もし、指定したはずの言語やデフォルトフラグがmkvinfo(1)の出力に見当たらない場合は、デフォルト値のセクションを参照してください。
入力ファイルの圧縮をオフにします。
$ mkvmerge -o no-compression.mkv --compression -1:none MyMovie.avi --compression -1:none mymovie.srt
mkvmerge(1)のオプションの中には、どのトラックに適用するかを特定するために、トラックIDを指定する必要なものがあります。このトラックIDは、入力ファイルがdemuxされる際に表示されるほか、mkvmerge(1)に--identifyオプションを指定して表示させることもできます。この場合の出力は次のようになります。
$ mkvmerge -i v.mkv File 'v.mkv': container: Matroska Track ID 0: video (V_MS/VFW/FOURCC, DIV3) Track ID 1: audio (A_MPEG/L3)
出力されるMKVファイルの中に配置されるトラックに割り当てられるトラックIDと、入力ファイルのトラックIDを混同しないでください。これらの値が必要なオプションに使われるのは、入力ファイルのトラックIDだけです。
また、各入力ファイルは、それ固有のトラックIDの組を持っていることにも注意してください。従って、'mkvmerge --identify'で報告される'file1.ext'のトラックIDは、他にいくつ入力ファイルがあっても、また、'file1.ext'がどの位置で使われようとも、変わることはありません。
トラックIDは次のように割り当てられます:
トラックIDを使用するオプションの説明には、'TID'が含まれています。また、--audio-tracks、--video-tracks、--subtitle-tracks、--button-tracks及び--track-tagsオプションもトラックIDを使用します。
There are several IDs that have special meaning and do not occur in the identification output.
'-1'は特殊で、そのスイッチが入力ファイルから読み込まれる全てのトラックに適用されることを示します。
The special track ID '-2' refers to the chapters in a source file. Currently only the --sync option uses this special ID. As an alternative to --sync -2:... the option --chapter-sync ... can be used.
Matroskaファイルに格納されているテキストの文字コードは全てUTF-8です。よって、mkvmerge(1)がテキストファイルを読み込む際には全てをUTF-8に文字コード変換する必要があります。代わりに、mkvmerge(1)が例えば--ui-languageによって非英語翻訳が使用される際や、Matroskaファイルに格納されていたテキストを出力する際には、UTF-8から指定された文字コードに変換すればよいということになります。
mkvmerge(1)はこの変換をバイト・オーダー・マーク(BOM)の有無、又はシステムのロケールに基づいて自動的に行ないます。ロケールからどのように文字コードが推測されるかは、mkvmerge(1)を実行するシステムに依存します。
BOMで始まるテキストファイルは、既にUTFエンコーディングの一種でエンコードされています。mkvmerge(1)はUTF-8、UTF-16リトルエンディアン及びビッグエンディアン、UTF-32リトルエンディアン及びビッグエンディアンの五つのモードをサポートします。BOMで始まるテキストファイルは自動的にUTF-8に変換されます。この場合、テキストファイルの文字コードを指定するパラメータ(例: --sub-charset)は全て黙殺されます。
UNIX系システム上では、mkvmerge(1)はsetlocale(3)システムコールを使うので、LANG、LC_ALL及びLC_CYPE環境変数を使用します。大抵は、UTF-8かISO-8859-*ファミリのどれかが全てのテキストファイルとコマンドライン文字列の処理、及びコンソールへの出力の文字コードとして使用されます。
On Windows the default character set used for converting text files is determined by a call to the GetACP() system call.
Reading the command line is done with the GetCommandLineW() function which already returns a Unicode string. Therefore the option --command-line-charset is ignored on Windows.
Output to the console consists of three scenarios:
If the output is redirected with cmd.exe itself, e.g. with mkvinfo file.mkv > info.txt, then the charset is always UTF-8 and cannot be changed.
Otherwise (when writing directly to the console) the Windows function WriteConsoleW() is used and the option --output-charset is ignored. The console should be able to output all Unicode characters for which the corresponding language support is installed (e.g. Chinese characters might not be displayed on English Windows versions).
次のような文字コードを指定するオプションがあります。
オプションファイルとは、mkvmerge(1)が追加のコマンドラインの引数をそれから読み込むことができるものです。これは、コマンドラインの長さ制限等の、外部プログラムを実行する際のシェルやオペレーティングシステムの特定の制限を回避するために使用することができます。
An option file contains JSON-formatted data. Its content must be a valid JSON array consisting solely of JSON strings. The file's encoding must be UTF-8. The file should not start with a byte order marker (BOM), but if one exists, it will be skipped.
The rules for escaping special characters inside JSON are the ones in the official JSON specification, RFC 7159[4].
The command line 'mkvmerge -o "my file.mkv" -A "a movie.avi" sound.ogg' could be converted into the following JSON option file called e.g. 'options.json':
[
"-o",
"c:\\Matroska\\my file.mkv",
"--title",
"#65",
"-A",
"a movie.avi",
"sound.ogg" ]
Matroskaに埋め込むことのできるテキスト及びビットマップ字幕フォーマットがいくつかあります。テキスト字幕は、プレイヤーで正しく表示されるためにUTF-8で保存されなればなりません(mkvmerge(1)の文字コード変換についてはテキストファイルと文字コードのセクションを参照してください)。Kate字幕は既にUTF-8でエンコードされているので、再変換する必要はありません。
現在、次の字幕フォーマットがサポートされています。
Matroskaはファイル紐付けをサポートします。ファイル紐付けとは、単純に現在のファイルの前の、又は次のファイルを指定する機能です。正確に言うと、本当に紐付けされるのはファイルではなくMatroskaセグメントです。ほとんどのファイルはMatroskaセグメントを一つしか持たないので、以降の説明ではより正確な'セグメント紐付け'という用語ではなく、'ファイル紐付け'という用語を使用します。
各セグメントはユニークな128-bit幅のセグメントUIDを持ちます。このUIDはmkvmerge(1)が自動的に生成します。紐付けは基本的にセグメントUID(略してSID)をヘッダ情報の中に挿入することで行われます。mkvinfo(1)はこのSIDを、存在する場合は表示します。
もしひとつのファイルがいくつかの小さなファイルに分割されて紐付けされる場合、タイムコードは0から始まらず、前のファイルの続きから始まります。この方式では、前のファイルが無い場合も絶対時間が保たれます(例: ストリーミングを使用している際)。もし、紐付けが使用されない場合、タイムコードは各ファイルで0から始まります。デフォルトではmkvmerge(1)はファイル紐付けを使用しません。ファイル紐付けを使用したい場合は、--linkオプションを使用する必要があります。このオプションはファイル分割が有効な場合以外には無効です。
ファイル分割が有効か無効かに関わらず、ユーザはmkvmerge(1)に、生成したファイルを特定のSIDに紐付けすることができます。これは--link-to-previousオプションと--link-to-nextオプションにより可能です。これらのオプションはmkvinfo(1)が出力するフォーマット(16個の0x00から0xffまでの、'0x'を頭につけた16進数)のSIDを受け付けます(例: '0x41 0xda 0x73 0x66 0xd9 0xcf 0xb2 0x1e 0xae 0x78 0xeb 0xb4 0x5e 0xca 0xb3 0x93')。もしくは短い形式('0x'及び数字の間のスペースを省いた0x00から0xffまでの16進数の数字)を指定することもできます。例: '41da7366d9cfb21eae78ebb45ecab393'
もしファイル分割が有効の場合、最初のファイルが--link-to-previousオプションで指定したSIDに紐付けされ、最後のファイルが--link-to-nextオプションで指定したSIDに紐付けされます。ファイル分割が無効の場合、一つの出力ファイルが両方のSIDに紐付けされます。
Matroskaファイルの仕様には、デフォルト値を持つエレメントの存在が明記されています。通常、デフォルト値と等しい値をもつエレメントはファイルサイズを抑えるためファイルに書き込まれません。mkvinfo(1)では表示されないかもしれないエレメントは、言語とデフォルトトラックフラグエレメントです。言語エレメントのデフォルト値は英語('eng')で、デフォルトトラックフラグエレメントのデフォルト値はtrueです。よって、あるトラックに--language: 0:engを指定した場合には、mkvinfo(1)の出力には現れません。
Matroskaファイルに写真を入れておきたいということや、非常に稀でしょうがSSA字幕を使っていてTrueTypeフォントを使用したいということがあるかもしれません。このような場合には、Matroskaファイルにファイルを添付することができます。添付されるファイルはMatroskaファイルにただ単純に追加されるのではなく、埋め込まれます。よって、プレイヤーはこれらのファイルを表示したり(写真の場合)、字幕を描画するのに使用したり(フォントの場合)できます。
下に、出力ファイルに写真とTrueTypeフォントを添付する方法の例を示します。
$ mkvmerge -o output.mkv -A video.avi sound.ogg \
--attachment-description "Me and the band behind the stage in a small get-together" \
--attachment-mime-type image/jpeg \
--attach-file me_and_the_band.jpg \
--attachment-description "The real rare and unbelievably good looking font" \
--attachment-mime-type application/octet-stream \
--attach-file really_cool_font.ttf
添付ファイルつきのMatroskaファイルが入力ファイルとして使われた場合、mkvmerge(1)はその添付ファイルを新しいファイルにコピーします。添付ファイルのコピーの有無は、--attachments及び--no-attachmentsオプションを使って切り替えることができます。
Matroskaチャプタシステムは、OGMファイルで使用されていた従来のシステムより強力です。その仕様の全ては、Matroskaのウェブサイト[5]に記されています。
mkvmerge(1)は2種類のチャプタファイルを入力としてサポートしています。一つ目は'シンプルチャプタファイル'と呼ばれるもので、OGM toolsが想定しているものと同じフォーマットです。二つ目はXMLベースのチャプタフォーマットで、Matroskaのチャプタ機能の全てをサポートしています。
このフォーマットは、'CHAPTERxx='で始まる行と'ChapterxxNAME='で始まる行のペアから成ります。前者の行は開始タイムコードを含み、後者はタイトルを含みます。下に例を示します。
CHAPTER01=00:00:00.000 CHAPTER01NAME=Intro CHAPTER02=00:02:30.000 CHAPTER02NAME=Baby prepares to rock CHAPTER03=00:02:42.300 CHAPTER03NAME=Baby rocks the house
mkvmerge(1)は各ペア、もしくは行を、一個のMatroskaChapterAtomに変換します。ChapterTrackNumberは設定しないので、全てのトラックにチャプタは適用されます。
このときにテキストファイルの文字コードが必要になります。mkvmerge(1)の文字コード変換についてはテキストファイルと文字コードのセクションを参照してください。
XMLチャプタフォーマットの例を以下に示します。
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE Chapters SYSTEM "matroskachapters.dtd"> <Chapters>
<EditionEntry>
<ChapterAtom>
<ChapterTimeStart>00:00:30.000</ChapterTimeStart>
<ChapterTimeEnd>00:01:20.000</ChapterTimeEnd>
<ChapterDisplay>
<ChapterString>A short chapter</ChapterString>
<ChapterLanguage>eng</ChapterLanguage>
</ChapterDisplay>
<ChapterAtom>
<ChapterTimeStart>00:00:46.000</ChapterTimeStart>
<ChapterTimeEnd>00:01:10.000</ChapterTimeEnd>
<ChapterDisplay>
<ChapterString>A part of that short chapter</ChapterString>
<ChapterLanguage>eng</ChapterLanguage>
</ChapterDisplay>
</ChapterAtom>
</ChapterAtom>
</EditionEntry> </Chapters>
このフォーマットでは、シンプルチャプタフォーマットでは不可能な、3つのことが可能です。
mkvtoolnixは、テンプレートとなるサンプルファイルと一緒に配布されています。サンプルファイルはdocサブディレクトリの中にあります。
以下にサポートされているXMLタグ、そのデータタイプ、そして適切な場所では、その値の有効な範囲を挙げます:
Chapters (master)
EditionEntry (master)
EditionUID (unsigned integer, valid range: 1 <= value)
EditionFlagHidden (unsigned integer, valid range: 0 <= value <= 1)
EditionFlagDefault (unsigned integer, valid range: 0 <= value <= 1)
EditionFlagOrdered (unsigned integer, valid range: 0 <= value <= 1)
ChapterAtom (master)
ChapterAtom (master)
ChapterUID (unsigned integer, valid range: 1 <= value)
ChapterTimeStart (unsigned integer)
ChapterTimeEnd (unsigned integer)
ChapterFlagHidden (unsigned integer, valid range: 0 <= value <= 1)
ChapterFlagEnabled (unsigned integer, valid range: 0 <= value <= 1)
ChapterSegmentUID (binary, valid range: 1 <= length in bytes)
ChapterSegmentEditionUID (unsigned integer, valid range: 1 <= value)
ChapterPhysicalEquiv (unsigned integer)
ChapterTrack (master)
ChapterTrackNumber (unsigned integer, valid range: 1 <= value)
ChapterDisplay (master)
ChapterString (UTF-8 string)
ChapterLanguage (UTF-8 string)
ChapterCountry (UTF-8 string)
ChapterProcess (master)
ChapterProcessCodecID (unsigned integer)
ChapterProcessPrivate (binary)
ChapterProcessCommand (master)
ChapterProcessTime (unsigned integer)
ChapterProcessData (binary)
mkvmerge(1)は出力ファイルを分割する際、チャプタも適切に処理します。つまり、分割された各ファイルはそのファイルに関係するチャプタのみを含み、タイムコードには適切なオフセットがかかります。
mkvmerge(1)は、--no-chaptersオプションで明示的に無効化されていなければ、Matroskaソースファイルからチャプタをコピーできます。全てのソース(Matroskaファイル、Oggファイル、MP4ファイル、チャプタテキストファイル)に由来するチャプタは通常はマージされず、別々のChapterEditionsが作成されます。いくつかのMatroskaもしくはXMLファイルで、エディションUIDが共有される場合にのみ、チャプタは一つのChapterEditionにマージされます。そのような場合以外でマージを行いたい場合は、ユーザはまず全てのソースからmkvextract(1)でチャプタを抽出し、手動でXMLファイルをマージした後にMUXを行なわなければなりません。
Matroska's tag system is similar to that of other containers: a set of KEY=VALUE pairs. However, in Matroska these tags can also be nested, and both the KEY and the VALUE are elements of their own. The example file example-tags-2.xml shows how to use this system.
Matroskaタグは自動的にはファイル全体に適用はされません。適用することもできますが、ファイルの異る部分々々に適用することもできます。一つ、もしくは複数のトラック、一つ、もしくは複数のチャプタ、さらにはその組み合わせにも適用することが可能です。Matroskaの仕様[6]に、このことの詳細が記述されています。
重要なことは、タグはTargetsMatroskaタグエレメントによってトラック及びチャプタにリンクされますが、このリンクの際に使用されるUIDはmkvmerge(1)が色々な所で使用するトラックIDではないことです。その代わりに、mkvmerge(1)は自動的に計算したUID(トラックがMatroska以外のファイルフォーマットから取り出される場合)か、トラックのソースファイルがMatroskaファイルの場合ソースファイルからコピーされた数字が使用されます。よって、タグファイルがmkvmerge(1)に渡される前に、使用されるUIDを知ることは困難です。
mkvmerge(1)はMatroskaファイルにタグを追加する二つのオプションを認識します。--global-tagsと--tagsオプションです。この二つの違いは、前者の--global-tagsは、上述のTargetsエレメントを全て取り除くことで、タグがファイル全体に適用されるようにします。後者の--tagsオプションは、mkvmerge(1)が of the --tagsに指定したTIDの示すトラックに対して自動的に計算したUIDを挿入します。
あなたは、AVIから読み込まれるビデオトラックにタグをつけたいと仮定しましょう。mkvmerge --identify file.aviを実行すると、ビデオトラックのトラックID(このIDをUIDと混同しないでください!)は0であると教えてくれます。よって、あなたは全てのTargetsエレメントを記入しないタグファイルを作成し、mkvmerge(1)を以下のように実行します。
$ mkvmerge -o file.mkv --tags 0:tags.xml file.avi
mkvmerge(1)はXMLベースのタグファイルフォーマットをサポートします。このフォーマットはMatroskaの仕様[6]に非常に近いデザインになっています。MKVToolNixのバイナリ、及びソースディストリビューションはどちらも、既知のタグをただリストしただけの、実際のタグファイルのテンプレートとして使用できるexample-tags-2.xmlというサンプルファイルを含んでいます。
基本的には、以下の様な構成です。
新しいMatroskaタグシステムは、UTF-8文字列とバイナリの二つのデータタイプしか認識しません。前者はタグの名前と<String>エレメントに使用され、後者は<Binary>エレメントに使用されます。
バイナリデータは、そのままではXMLファイルに格納できないので、mkvmerge(1)は二つのバイナリデータを格納する方法をサポートします。XMLタグの中身が'@'で始まる場合、そのあとのテキストはファイル名として扱われ、対応するファイルの中身がMatroskaエレメントにコピーされます。
もう一つの方法では、データはBase64エンコードされる必要があります。これは、バイナリデータをASCIIキャラクタの一部だけで表現するためのエンコードで、例えばEメールなどに使用されています。mkvextract(1)は、バイナリエレメントをBase64エンコードされたデータとして出力します。
古いタグシステムは、公式のMatroskaの仕様に示されているように、もっと多くのデータタイプを認識していました。mkvmerge(1)はもはやこのシステムをサポートしないので、それらのタイプについてはここでは説明しません。
以下にサポートされているXMLタグ、そのデータタイプ、そして適切な場所では、その値の有効な範囲を挙げます:
Tags (master)
Tag (master)
Targets (master)
TargetTypeValue (unsigned integer)
TargetType (UTF-8 string)
TrackUID (unsigned integer)
EditionUID (unsigned integer)
ChapterUID (unsigned integer)
AttachmentUID (unsigned integer)
Simple (master)
Simple (master)
Name (UTF-8 string)
TagLanguage (UTF-8 string)
DefaultLanguage (unsigned integer)
String (UTF-8 string)
Binary (binary)
With a segment info XML file it is possible to set certain values in the "segment information" header field of a Matroska file. All of these values cannot be set via other command line options.
他の"segment information"ヘッダフィールドはコマンドラインオプション経由で設定できますが、XMLファイル経由では設定できません。 これはには例えば--titleや--timestamp-scale オプションなどが含まれます。
他にもコマンドラインオプション経由でもXMLファイル経由でも設定できない要素があります。これらには以下のものが含まれます:DateUTC (別名"muxing date")、MuxingApp、WritingApp、そしてDurationです。それらは常にmkvmerge(1)自身によって設定されます。
以下にサポートされているXMLタグ、そのデータタイプ、そして適切な場所では、その値の有効な範囲を挙げます:
Info (master)
SegmentUID (binary, valid range: length in bytes == 16)
SegmentFilename (UTF-8 string)
PreviousSegmentUID (binary, valid range: length in bytes == 16)
PreviousSegmentFilename (UTF-8 string)
NextSegmentUID (binary, valid range: length in bytes == 16)
NextSegmentFilename (UTF-8 string)
SegmentFamily (binary, valid range: length in bytes == 16)
ChapterTranslate (master)
ChapterTranslateEditionUID (unsigned integer)
ChapterTranslateCodec (unsigned integer)
ChapterTranslateID (binary)
Matroskaファイルのレイアウトは非常に柔軟性に富んでいます。mkvmerge(1)はあらかじめ定義された方法でファイルを書き出します。出力されたファイルはこのようになります。
[EBMLヘッダ] [セグメント {メタシーク #1} [セグメント情報] [トラック情報] {添付ファイル} {チャプタ} [クラスタ 1] {クラスタ 2} ... {クラスタ n} {CUE} {メタシーク #2} {タグ}]
波括弧でくくられたエレメントは省略可能で、コンテンツと指定されたオプションに依存します。いくつか注釈があります。
The shortest possible Matroska file would look like this:
[EBMLヘッダ] [セグメント [セグメント情報] [トラック情報] [クラスタ1]]
音声のみのファイルはこのようになるでしょう。
ユーザは、特定のトラックのタイムコードを自分でmkvmerge(1)に指定することができます。これは可変フレームレートビデオを含むファイルを作成するときや、オーディオに無音を挿入するときに使用できます。この場合、フレームはMatroskaブロックを作成する際の単位となります。ビデオでは、これはちょうど1フレームとなり、オーディオではこれは各オーディオタイプの1パケットとなります。例えば、AC-3では、これは1536サンプルを含む1パケットとなります。
結合されたトラックにタイムコードファイルを指定する場合は、各結合されるトラックチェインの最初の部分にのみ指定してください。例えばv1.avi、v2.aviの二つのファイルを結合し、タイムコードを使用したいときのコマンドラインは次のようになります。
$ mkvmerge ... --timestamps 0:my_timestamps.txt v1.avi +v2.avi
mkvmerge(1)は、4つのフォーマットを認識します。最初の1行は常にバージョン番号を含みます。空行、空白のみを含む行、及び'#'で始まる行は無視されます。
このフォーマットはバージョン行から始まります。2行目はデフォルトフレームレートを宣言します。残りの全ての行は、コンマで区切られた3つの数字を含みます。開始フレーム(0が最初のフレームです)、終了フレーム、そしてこの範囲で適用されるフレームレートです。FPSは、ドット'.'を小数点として持つ小数です。フレーム範囲はデフォルトFPSが使用されるギャップを含むこともあります。例を下に示します。
# timestamp format v1 assume 27.930 800,1000,25 1500,1700,30
このフォーマットでは、各行は対応するフレームのタイムコードを含みます。このタイムコードはミリ秒単位の精度で指定しなければなりません。小数を指定することができますが、小数でなくてもかまいません。最低でも、トラックに含まれるフレーム数と同数のタイムコード行を含まなければなりません。このファイル内のタイムコードは整列されていなければなりません。例えば、25fpsでは以下のようになります。
# timestamp format v2 0 40 80
このフォーマットでは、各行は秒単位の持続時間と、省略可能なフレームレートを含みます。この二つは両方とも小数を指定できます。もし、フレームレートが指定されない場合はデフォルトの値が使用されます。オーディオではコーデックにタイムコードを計算させるべきです。このためには、フレームレートとして0.0を指定してください。また、'gap'キーワードの後に持続時間を指定して、無音を指定することもできます。オーディオファイル用の例を示します。
# timestamp format v3 assume 0.0 25.325 7.530,38.236 gap, 10.050 2.000,38.236
このフォーマットはv2フォーマットと同一です。唯一の違いは、タイムコードが整列されていなくてもいいという点です。このフォーマットが使われることはほぼ無いでしょう。
mkvmerge(1)は下の3つの返り値を返します。
mkvmerge(1)はシステムのロケールを決めるデフォルトの変数(例:LANGやLC_*系)を使用します。追加の変数は以下の通りです:
MKVMERGE_DEBUG, MKVTOOLNIX_DEBUG and its short form MTX_DEBUG
MKVMERGE_ENGAGE, MKVTOOLNIX_ENGAGE and its short form MTX_ENGAGE
mkvinfo(1), mkvextract(1), mkvpropedit(1), mkvtoolnix-gui(1)
最新のバージョンは、常時MKVToolNixのホームページ[7]から取得できます。
Bunkus Moritz[FAMILY Given] <moritz@bunkus.org>
2019-02-09 | MKVToolNix 31.0.0 |