MKVMERGE(1) MKVMERGE(1) mkvmerge - Matroska(TM) mkvmerge [] {-o } [1] {1} [[2] {2}] [@.json] Matroska(TM) Matroska(TM) [1] "" -v, --verbose -q, --quiet -o, --output --split -w, --webm WebM "webm" VP8VP9 OpusVorbis DocType "webm" mkvmerge(1) --title --default-language --language undundetermined () --segmentinfo .xml XML UID UID UID DTD MKVToolNix XML --segment-uid SID1,SID2,... UID 128 UID UID : "0x" 32 SID "=" Matroska UID UID UID UID UID UID () --chapter-language ISO 639-2 'eng' MP4 OGM --generate-chapters --chapter-charset UTF-8 mkvmerge(1) Ogg/OGM MP4 --chapter-sync d[,o[/p]] d ms --sync ID -2 ( ID ) o/p: o/p p 1o p : ( d = 0 o/p = 1.0 ) ID --generate-chapters mkvmerge(1) : o 'when-appending' - parts:parts-frames: (+) mkvmerge(1) o 'interval:' - HH:MM:SS.nnnnnnnnn 's''ms' 'us' : --generate-chapters interval:45s --generate-chapters-name-template --chapter-language --generate-chapters --generate-chapters-name-template --generate-chapters ' ' '' '' ' () '>' '' > '%H:%M:%S': o %h - o %H - o %m - o %M - o %s - o %S - o %n - o %<1-9>n - ( %3n ) --cue-chapter-name-format mkvmerge(1) CUE CUE PERFORMER TITLE mkvmerge(1) mkvmerge(1) '%p - %t' (, , , ) : o %p PERFORMER , o %t TITLE , o %n o %N 10 --chapters --global-tags () --track-order FID1:TID1,FID2:TID2,... ID ID (FID1) 0 ID (TID1) ID If this option isn't given, tracks will be sorted by their type first & the order of their source file second. Video tracks come first followed by audio & subtitle tracks. Other rarely used track types come last. --cluster-length n 'ms' d mkvmerge(1) n 65535 d 'ms'mkvmerge(1) d d '100ms' '32000ms' mkvmerge(1) 65535 5000ms --clusters-in-meta-seek mkvmerge(1) Matroska(TM) --timestamp-scale 1000..10000000 -1 mkvmerge(1) 1000000 1msmkvmerge(1) -1mkvmerge(1) --enable-durations --no-cues mkvmerge(1) cue AVI Matroska(TM) --cues --no-date mkvmerge(1) date --disable-lacing --disable-track-statistics-tags mkvmerge(1) BPSDURATIONNUMBER_OF_BYTES NUMBER_OF_FRAMES mkvmerge(1) --disable-language-ietf mkvmerge(1) IETF BCP 47 --normalize-language-ietf IETF BCP 47 canonicalextlangoff preferred value: zh-yue-jyutping yue-jyutpingfr-FX fr-FR extended language subtagprimary language yue-jyutping zh-yue-jyutping fr-FR fr --stop-after-video-ends Stops processing after the primary video track ends, discarding any remaining packets of other tracks. () --split mkvmerge(1) : 1. : --split [size:]d[k|m|g] : --split size:700m --split 150000000 d 'k''m' 'g' KBMB GB 'size:' 2. : --split [duration:]HH:MM:SS.nnnnnnnnn|ds : --split duration:00:60:00.000 --split 3600s HH:MM:SS.nnnnnnnnn 's' dHH MM SS nnnnnnnnn 'duration:' 3. : --split timestamps:A[,B[,C...]] : --split timestamps:00:45:00.000,01:20:00.250,6300s ABC 'timestamps:' 4. : --split parts:1-1[,[+]2-2[,[+]3-3...]] : 1. --split parts:00:01:20-00:02:45,00:05:50-00:10:30 2. --split parts:00:01:20-00:02:45,+00:05:50-00:10:30 3. --split parts:-00:02:45,00:05:50- parts mkvmerge(1) parts: --split ( 00:01:20 80s ) ( 3) mkvmerge(1) ( 3) + mkvmerge(1) 1 mkvmerge(1) 00:01:20 00:02:45 00:05:50 00:10:30 2 mkvmerge(1) 00:01:20 00:02:45 00:05:50 00:10:30 3 mkvmerge(1) 00:02:45 00:05:50 mkvmerge(1) mkvmerge(1) 5. / : --split parts-frames:start1-end1[,[+]start2-end2[,[+]start3-end3...]] : 1. --split parts-frames:137-258,548-1211 2. --split parts-frames:733-912,+1592-2730 3. --split parts-frames:-430,2512- parts-frames mkvmerge(1) / parts-frames: / 1 ( 3) mkvmerge(1) ( 3) + mkvmerge(1) mkvmerge(1) /mkvmerge(1) 1 mkvmerge(1) 137 258 548 1211 2 mkvmerge(1) 733 912 1592 2730 3 mkvmerge(1) 430 2512 Matroska(TM) Matroska(TM) () () mkvmerge : 25 50 () 6. / : --split frames:A[,B[,C...]] : --split frames:120,237,891 ABC 1 / / 'frames:' Matroska(TM) Matroska(TM) () () mkvmerge : 25 50 () 7. : --split chapters:all --split chapters:A[,B[,C...]] : --split chapters:5,8 ABC 1 0s all 'chapters:' Matroska(TM) """" printf '%d' '%02d' '-%03d': '-o .mkv' '-001.mkv' '-%03d' %c%c-%03d --link --link-to-previous -UID -UID SID "=" Matroska UID --link-to-next -UID -UID SID "=" Matroska UID --append-mode : 'file' 'track' mkvmerge (2) (2_1) (1) (1_1) 2_1 file11_1track1_1 mkvmerge 'file' 'file' AVI MP4 'track' VOB EVO 'track' 'file' --append-to SFID1:STID1:DFID1:DTID1[,...] ID : ID ID ID ID ID ID ID ID ID ID mkvmerge -o .mkv .mkv +.mkv + '+' '+' : $ mkvmerge -o .mkv 1.mkv + 2.mkv $ mkvmerge -o .mkv 1.mkv +2.mkv [ 1 2 ] "+": $ mkvmerge -o .mkv 1.mkv + 2.mkv $ mkvmerge -o .mkv '[' 1.mkv 2.mkv ']' = (MPEG VOB ) mkvmerge(1) (VTS_01_1.VOBVTS_01_2.VOBVTS_01_3.VOB) ----=---- mkvmerge '=' : $ mkvmerge -o .mkv = 1.vob $ mkvmerge -o .mkv =1.vob ( 1 2 ) DVD VOB MPEG AVI MP4 mkvmerge(1) = : $ mkvmerge -o .mkv = .mkv $ mkvmerge -o .mkv '(' .mkv ')' : 1. 2. 3. shell () --attachment-description --attach-file --attach-file-once --attachment-mime-type MIME MIME --attach-file --attach-file-once MIME IANA [2] MIME MIME --attachment-name --attach-file --attach-file-once --attach-file , --attach-file-once Matroska(TM) MIME --attach-file --attach-file-once mkvextract(1) Matroska(TM) --enable-legacy-font-mime-types MIME TrueType application/x-truetype-fontfonts/ttf MIME MIME MIME font/sfntfont/ttffont/collectionapplication/x-truetype-fonts font/otfapplication/vnd.ms-opentype -a, --audio-tracks [!]n,m,... nm --identify ID ID: ID ISO 639-2 : ID ! : ! -d, --video-tracks [!]n,m,... nm --identify ID ID: ID ISO 639-2 ID ! : ! -s, --subtitle-tracks [!]n,m,... nm --identify ID ID: ID ISO 639-2 ID ! : ! -b, --button-tracks [!]n,m,... nm --identify ID ID: ID ISO 639-2 ID ! : ! --track-tags [!]n,m,... nm --identify ID ID: ID ! : ! ID -m, --attachments [!]n[:all|first],m[:all|first],... ID nm ID ':all' ':first' ID ':all' 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 -y, --sync TID:d[,o[/p]] id TID d ms ID --identify ( ID ) o/p: o/p p 1o p : ( d = 0 o/p = 1.0 ) ID --cues TID:none|iframes|all ( ID ) cue 'none' cue 'iframes i ' ( = I ) cue 'all' mkvmerge(1) 'iframes i ' 'none' --no-cues cue --cues ID --default-track-flag TID[:bool] 1 ( ID) ID --track-enabled-flag TID[:] ( ID) (0 1; 1) ID --forced-display-flag TID[:bool] 1 ( ID) ID --hearing-impaired-flag TID[:] 1 ( ID) ID --visual-impaired-flag TID[:] 1 ( ID) ID --text-descriptions-flag TID[:] 1 ( ID) ID --original-flag TID[:] 1 ( ID) () ID --commentary-flag TID[:] 1 ( ID) ID --track-name TID: ( ID ) --language TID: ( ID) ISO 639-2 ISO 639-1 --list-languages ISO 639-2 ID -t, --tags TID: TID --aac-is-sbr TID[:0|1] mkvmerge(1) ID TID SBR AAC ( HE-AAC AAC+)a) AAC ( Matroska(TM) ) b) AAC SBR AAC AAC AAC SBR AAC AAC mkvmerge(1) SBR AAC Matroska(TM) SBR AAC CodecID CodecID mkvmerge AAC SBR ':0' ID --audio-emphasis TID:n|symbolic-name Sets the emphasis for the audio track with the track ID TID. The mode can either be a number n (certain values between 0 and 16) or a symbolic name. All valid numbers & symbolic names can be listed with the --list-audio-emphasis option. --reduce-to-core TID mkvmerge(1) mkvmerge(1) DTS AC-3 TrueHD DTS HD - TrueHD --remove-dialog-normalization-gain TID / mkvmerge(1) AC-3DTS TrueHD --timestamps TID: ID mkvmerge(1) --default-duration TID:x x 's', 'ms', 'us', 'ns', 'fps', 'p' 'i' """""" x mkvmerge / AVC/H.264 MPEG-2 FPS --fix-bitstream-timing-information TID[:0|1] mkvmerge(1) (/): ( --default-duration ) AVC/H.264 --compression TID:n 'none''zlib' 'mpeg4_p2'/'mpeg4p2' 'mpeg4_p2'/'mpeg4p2' '' MPEG4 part 2 'zlib''none' -f, --fourcc TID:FourCC FourCC '' --display-dimensions TID:x Matroska(TM) : '1:640x480' --aspect-ratio --aspect-ratio-factor () --aspect-ratio TID:|/ Matroska(TM) : mkvmerge(1) '/' '16/9' --aspect-ratio-factor --display-dimensions () --aspect-ratio-factor TID:|n/d --aspect-ratio --display-dimensions () --cropping TID:l,,, --color-matrix-coefficients TID:n n 0 10 : 0: GBR, 1: BT709, 2: unspecified, 3: reserved, 4: FCC, 5: BT470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: YCOCG, 9: BT2020 , 10: BT2020 --color-bits-per-channel TID:n 0 --chroma-subsample TID:, Cr Cb / : 4:2:0 TID:1,1 --cb-subsample TID:, Cb / --chroma-subsample : 4:2:1 --chroma-subsample TID:1,0Cb TID:1,0 --chroma-siting TID:, / (0: , 1: /, 2: ) --color-range TID:n (0: , 1: , 2: (), 3: MatrixCoefficients/TransferCharacteristics ) --color-transfer-characteristics TID:n : 0: , 1: ITU-R BT.709, 2: unspecified, 3: , 4: gamma 2.2 , 5: gamma 2.8 , 6: SMPTE 170M, 7: SMPTE 240M, 8: , 9: , 10: , 11: IEC 61966-2-4, 12: ITU-R BT.1361 extended color 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) --color-primaries TID:n : 0: , 1: ITU-R BT.709, 2: , 3: , 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 --max-content-light TID:n (Maximum Content Light Level ) (cd/m^2) n --max-frame-light TID:n (Maximum Frame-Average Light Level ) (cd/m^2) n --chromaticity-coordinates TID:red-x,red-y,green-x,green-y,blue-x,blue-y CIE 1931 // --white-color-coordinates TID:x,y CIE 1931 --max-luminance TID: (cd/m^2) 9999.99 --min-luminance TID: (cd/m^2) 999.9999 --projection-type TID: 0 (), 1 (), 2 (), 3 () --projection-private TID: "0x" --projection-pose-yaw TID:f Z --projection-pose-pitch TID: X --projection-pose-roll TID: Y --field-order TID:n ID TID : 0: ; 1: ; 2: ; 6: ; 9: ; 14: --stereo-mode TID:n|symbolic-name Sets the stereo mode for the video track with the track ID TID. The mode can either be a number n between 0 and 14 or a symbolic name. All valid numbers & names can be listed with the --list-stereo-modes option. --sub-charset TID: ID UTF-8 Matroska(TM) Kate UTF-8 mkvmerge(1) ID -i, --identify mkvmerge(1) ID --identification-format -J "--identification-format json --identify " -F, --identification-format --identify : text () json 1. text () mkvmerge(1) ( --ui-language) 2. json JSON JSON mkvmerge-identification-output-schema-v18.json[3] JSON --probe-range-percentage MPEG (.vob.m2ts) 0.3% 10 MB 10 MB --list-audio-emphasis Lists all valid numbers & their corresponding symbolic names for the --audio-emphasis option. --list-languages ISO 639-2 --language --list-stereo-modes Lists all valid numbers & their corresponding symbolic names for the --stereo-mode option. -l, --list-types --priority mkvmerge(1) 'lowest', 'lower', 'normal', 'higher' 'highest' 'normal' -Unix mkvmerge(1) nice(2) 'higher' 'highest' Windows 'lowest' mkvmerge(1) I/O --command-line-charset :--title, --track-name and --attachment-description --output-charset -r, --redirect-output : --output-charset --flush-on-close mkvmerge MKVToolNix #2469 #2480 --ui-language ( 'zh_TW' ) 'list' --abort-on-warnings 1 --deterministic mkvmerge(1) date : 1. mkvmerge(1) ibEBML libMatroska 2. 3. (--output ...) mkvmerge(1) --debug --engage mkvmerge --engage list --gui-mode GUI GUI '#GUI#'/ '#GUI##1=1#2=2...' ** @options-file.json --capabilities o 'FLAC' -- FLAC FLAC Ogg(TM) Matroska(TM) -h, --help -V, --version mkvmerge(1) -o -l "" : 1. --command-line-charset--output --title 2. --no-chapters --chapter-charset --default-duration --language "": $ mkvmerge -o .mkv --title '' input.avi --title '' --language ID: $ mkvmerge -o .mkv --language 0:fre .ogg --language 0:deu .ogg .avi '.wav' OggVorbis(TM): $ oggenc -q4 -o.ogg .wav : $ mkvmerge -o .mkv .avi .ogg AVI mkvmerge(1) $ mkvmerge -o .mkv -A .avi .ogg '.wav' : $ oggenc -q4 -o .wav $ mkvmerge -o -.mkv .mkv .ogg $ mkvmerge -o -.mkv -A .avi .ogg .ogg mplayer(TM) '-vid' '-aid' mplayer(TM) Vorbis ID $ mkvmerge --identify .ogg ID : $ mkvmerge -o .mkv -A .avi -y 12345:200 .ogg '.ogg' ID 12345 200ms -- 77340 0.2 29.97fps 6 0.2 $ mkvmerge -o .mkv -y 23456:0,77346/77340 .mkv Windows SubRipper(TM) 'contrib/subrip' transcode(1) subrip(TM) : 1. : $ tccat -i /DVD//// -T 1 -L | tcextract -x ps1 -t vob -a 0x20 | subtitle2pgm -o 2. gocr PGM : $ pgm2txt mymovie 3. : $ ispell -d american *txt 4. SRT : $ srttool -s -w -i mymovie.srtx -o mymovie.srt mkvmerge(1) : $ mkvmerge -o .mkv .avi .srt ISO 639-2 mkvmerge(1) : $ mkvmerge --list-languages Matroska(TM) ID 2 3 $ mkvmerge -o .mkv --language 2:ger --language 3:dut .mkv --language $ mkvmerge -o .mkv --language 2:ger --language 3:dut --default-track-flag 3 .mkv --language 0:eng .srt --default-track-flag 0 --language 0:fre .srt mkvinfo(1) $ mkvmerge -o .mkv --compression -1:none .avi --compression -1:none .srt ID ID mkvmerge(1) ID --identify mkvmerge(1) ID $ mkvmerge -i v.mkv 'v.mkv': : Matroska(TM) ID 0: (V_MS/VFW/FOURCC, DIV3) ID 1: (A_MPEG/L3) MKV ID ID ID ID ID 'mkvmerge --identify' '1.' ID '1.' ID o AVI : ID 0 ID 1 o AACAC-3MP3SRT WAV : '' ID 0 o : ID 0 ID 'TID' ID: --audio-tracks--video-tracks--subtitle-tracks--button-tracks --track-tags ID ID id ID '-1' ID '-2' --sync ID--sync -2:... --chapter-sync ... LANGUAGE HANDLING Matroska(TM) has support for two different types of language elements: the old, deprecated "Language" element containing ISO 639-2 alpha 3 codes and the new "LanguageIETF" tags containing IETF BCP 47 language tags. All of mkvmerge(1)'s options that accept a language accept a BCP 47 language tag. mkvmerge(1) will derive the value for the deprecated "Language" element from the BCP 47 language tags wherever possible. When identifying a file in JSON mode, existing "LanguageIETF" track header elements will be output as the language_ietf track property. When writing a file mkvmerge(1) will always write the "LanguageIETF", "ChapLanguageIETF" and "TagLanguageIETF" elements (the latter two only if chapters or tags are written respectively). In addition to those elements the corresponding old elements will be written; they'll be set to the ISO 639-2 code portion of the BCP 47 language tag. For example, when the track language is set to sr-Cyrl-RS "LanguageIETF" will be set to sr-Cyrl-RS and the old "Language" element will be set to srp. When reading existing files (Matroska files, XML chapter or tag files etc.) that already contain "...LanguageIETF" elements the existing elements will be kept. Otherwise "...LanguageIETF" elements will be added based on command-line options and other existing deprecated "...Language" elements. The creation of the new elements can be disabled completely with the command-line option --disable-language-ietf which operates on all three new elements. You can chose the normalization method applied to extended language sub-tags with the parameter --normalize-language-ietf. MKVToolNix mkvmerge(1) Matroska(TM) UTF-8 mkvmerge(1) UTF-8 mkvmerge(1) UTF-8 --ui-language Matroska(TM) mkvmerge(1) (: BOM) mkvmerge(1) (BOM) BOM UTF mkvmerge(1) : UTF-8UTF-16 (LE) (BE)UTF-32 (LE) (BE) BOM UTF-8 ( --sub-charset) mac Linux Unix -Unix mkvmerge(1) setlocale(3) LANGLC_ALL LC_CYPE UTF-8 ISO-8859-* Windows Windows GetACP() GetCommandLineW() Unicode --command-line-charset Windows : 1. --redirect-output UTF-8 --output-charset 2. cmd.exe mkvinfo .mkv > info.txt UTF-8 3. () Windows WriteConsoleW() --output-charset Unicode ( Windows ) : o --sub-charset Ogg , o --chapter-charset Ogg MP4 , o --command-line-charset , o --output-charset --redirect-output Windows Windows UTF-8 --redirect-output cmd.exe mkvinfo file.mkv > info.txt mkvmerge(1) shell JSON JSON JSON UTF-8 (byte order markerBOM) JSON JSON RFC 7159[4] @ "mkvmerge -o ".mkv" -A ".avi" .ogg" JSON ".json": [ "-o", "c:\\Matroska\\.mkv", "--title", "#65", "-A", ".avi", ".ogg" ] mkvmerge @.json Matroska(TM) Matroska(TM) Matroska(TM) '' '' 128 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) SID : 16 0x00 0xff '0x' '0x41 0xda 0x73 0x66 0xd9 0xcf 0xb2 0x1e 0xae 0x78 0xeb 0xb4 0x5e 0xca 0xb3 0x93': 16 0x00 0xff '0x' '41da7366d9cfb21eae78ebb45ecab393' --link-to-previous SID --link-to-next SID SID Matroska(TM) mkvinfo(1) English ('eng') true --language 0:eng mkvinfo(1) Matroska(TM) SSA TrueType(TM) Matroska(TM) ( '' ) ( 'TrueType(TM) ' ) TrueType(TM) : $ mkvmerge -o .mkv -A .avi .ogg \ --attachment-description "" \ --attachment-mime-type image/jpeg \ --attach-file .jpg \ --attachment-description "" \ --attachment-mime-type application/octet-stream \ --attach-file .ttf Matroska(TM) mkvmerge(1) --attachments --no-attachments Matroska(TM) ---- OGM ---- Matroska(TM) [1] mkvmerge(1) '' OGM tools XML Matroska(TM) mkvmerge(1) ( MP4OggBlu-ray DVD ) 'CHAPTERxx=' 'CHAPTERxxNAME=' CHAPTER01=00:00:00.000 CHAPTER01NAME= CHAPTER02=00:02:30.000 CHAPTER02NAME= CHAPTER03=00:02:42.300 CHAPTER03NAME= mkvmerge(1) will transform every pair or lines into one Matroska(TM) ChapterAtom. It does not set any ChapterTrackNumber which means that all chapters apply to all tracks in the file. mkvmerge(1) XML XML 00:00:30.000 00:01:20.000 chi 00:00:46.000 00:01:10.000 chi : 1. , 2. , 3. mkvtoolnix doc XML : Chapters () EditionEntry () EditionUID (: 1 <= ) EditionFlagHidden (: 0 <= <= 1) EditionFlagDefault (: 0 <= <= 1) EditionFlagOrdered (: 0 <= <= 1) ChapterAtom () ChapterAtom () ChapterUID (: 1 <= ) ChapterTimeStart () ChapterTimeEnd () ChapterFlagHidden (: 0 <= <= 1) ChapterFlagEnabled (: 0 <= <= 1) ChapterSegmentUID (: 1 <= ) ChapterSegmentEditionUID (: 1 <= ) ChapterPhysicalEquiv () ChapterTrack () ChapterTrackNumber (: 1 <= ) ChapterDisplay () ChapterString (UTF-8 ) ChapterLanguage (UTF-8 ) ChapterCountry (UTF-8 ) ChapterProcess () ChapterProcessCodecID () ChapterProcessPrivate () ChapterProcessCommand () ChapterProcessTime () ChapterProcessData () Blu-rays mkvmerge(1) Blu-ray --chapters MPLS : --chapters ///BigBuckBunny/BDMV/PLAYLIST/00001.mpls DVD MKVToolNix libdvdread(TM) mkvmerge(1) DVD --chapters DVD DVD 1 : --chapters //dvd/BigBuckBunny/VIDEO_TS:2 mkvmerge(1) mkvmerge(1) Matroska(TM) --no-chapters (Matroska(TM) Ogg MP4 ) ChapterEditions Matroska(TM) XML UID ChapterEdition mkvextract(1) XML Matroska(TM) : = Matroska(TM) example-tags-2.xml Matroska(TM) : , , Matroska(TM) [5] Targets Matroska(TM) UID mkvmerge(1) ID mkvmerge(1) ( Matroska(TM) ) Matroska(TM) UID mkvmerge(1) UID mkvmerge(1) Matroska(TM) : --global-tags --tags --global-tags Targets --tags mkvmerge(1) --tags TID UID AVI mkvmerge --identify .avi ID ( ID UID !) 0 Targets mkvmerge(1): $ mkvmerge -o .mkv --tags 0:.xml .avi mkvmerge(1) XML Matroska(TM) [5] MKVToolNix example-tags-2.xml o o XML o Matroska(TM) UTF-8 XML mkvmerge(1) XML '@' Matroska(TM) Base64 ASCII mkvextract(1) Base64 Matroska(TM) mkvmerge(1) XML XML : Tags () Tag () Targets () TargetTypeValue () TargetType (UTF-8 ) TrackUID () EditionUID () ChapterUID () AttachmentUID () Simple () Simple () Name (UTF-8 ) TagLanguage (UTF-8 ) DefaultLanguage () String (UTF-8 ) Binary () XML Matroska(TM) "" "" XML --title --timestamp-scale XML : DateUTC ( "") MuxingApp WritingApp Duration mkvmerge(1) XML : Info () SegmentUID (: == 16) SegmentFilename (UTF-8 ) PreviousSegmentUID (: == 16) PreviousSegmentFilename (UTF-8 ) NextSegmentUID (: == 16) NextSegmentFilename (UTF-8 ) SegmentFamily (: == 16) ChapterTranslate () ChapterTranslateEditionUID () ChapterTranslateCodec () ChapterTranslateID () MATROSKA Matroska(TM) mkvmerge(1) [EBML ] [ { #1} [] [] {} {} [ 1] { 2} ... { n} {} { #2} {}] o #1 level 1 #2 mkvmerge(1) ---- #2 #1 #2 o Matroska(TM) [EBML ] [ [] [] [ 1]] mkvmerge(1) mkvmerge(1) Matroska(TM) AC-3 1536 v1.avi v2.avi $ mkvmerge ... --timestamps 0:.txt v1.avi +v2.avi mkvmerge(1) '#' v1 : 0 FPS '.' FPS # timestamp format v1 assume 27.930 800,1000,25 1500,1700,30 v2 25fps # timestamp format v2 0 40 80 v3 0.0 'gap' # timestamp format v3 assume 0.0 25.325 7.530,38.236 gap, 10.050 2.000,38.236 v4 v2 mkvmerge(1) o 0 -- o 1 -- mkvmerge(1) ':' o 2 -- mkvmerge(1) / mkvmerge(1) ( LANG LC_* ) MKVMERGE_DEBUG, MKVTOOLNIX_DEBUG MTX_DEBUG --debug MKVMERGE_ENGAGE, MKVTOOLNIX_ENGAGE MTX_ENGAGE --engage mkvinfo(1), mkvextract(1), mkvpropedit(1), mkvtoolnix-gui(1) MKVToolNix [6] Moritz Bunkus 1. Matroska(TM) https://www.matroska.org/ 2. IANA https://www.iana.org/assignments/media-types/ 3. mkvmerge-identification-output-schema-v18.json https://mkvtoolnix.download/doc/mkvmerge-identification-output- schema-v18.json 4. RFC 7159 https://tools.ietf.org/html/rfc7159 5. Matroska(TM) https://www.matroska.org/technical/specs/index.html 6. MKVToolNix https://mkvtoolnix.download/ MKVToolNix 83.0 2024-03-10 MKVMERGE(1)