MKVMERGE(1) Uzivatelske prikazy MKVMERGE(1) NAME mkvmerge - Spojit multimedialni proudy do souboru Matroska(TM) PrEHLED mkvmerge [global options] {-o out} [options1] {file1} [[options2] {file2}] [@options-file.json] POPIS Tento program nacte vstup z nekolika medialnich souboru a spoji jejich proudy (vsechny nebo pouze vyber) do souboru Matroska(TM); viz web Matroska(TM)[1]. Important Poradi voleb prikazoveho radku je dulezite. Pokud program pouzivate poprve, prectete si oddil "Poradi voleb". Globalni volby -v, --verbose Zvysit podrobnost. -q, --quiet Potlacit stav vystupu. -o, --output file-name Zapise do souboru file-name. Pouzije-li se rozdeleni, s timto parametrem se zachazi trochu jinak. Podrobnosti viz vysvetleni volby --split. -w, --webm Vytvori soubor odpovidajici WebM. Rezim se rovnez zapne, pokud pripona nazvu vystupniho souboru je "webm". Tento rezim vynucuje nekolik omezeni. Jedinymi povolenymi kodeky jsou video VP8 a VP9 a zvukove stopy Opus a Vorbis. Polozka hlavicky DocType se zmeni na "webm". Pro kapitoly a stitky je povolena pouze podmnozina prvku. mkvmerge(1) automaticky odstrani vsechny prvky, ktere specifikace nepovoluje. --title title Nastavuje obecny nazev vystupniho souboru, napriklad nazev filmu. --default-language language-code Nastavuje vychozi jazykovy kod pouzity pro stopy, pro nez neni jazyk nastaven volbou --language a pro nez zdrojovy kontejner neposkytuje jazyk. Vychozi jazykovy kod je pro ,,neurceno" und. Zpracovani informaci o useku (globalni volby) --segmentinfo filename.xml Nacte informace o useku ze souboru XML. Tento soubor muze obsahovat prvky UID rodiny useku, UID useku, UID predchoziho a nasledujiciho useku. Ukazkovy soubor a DTD jsou soucasti distribuce MKVToolNix. Podrobnosti viz nize v oddilu soubory XML s informacemi o useku. --segment-uid SID1,SID2,... Nastavuje UID useku, ktera se maji pouzit. Jde o carkami oddeleny seznam 128bitovych UID useku v obvykle podobe UID: sestnactkove cislice s predponou "0x" nebo bez ni, s mezerami nebo bez nich, presne 32 cislic. Zacina-li SID znakem =, zbytek se interpretuje jako nazev souboru Matroska, jehoz UID useku se nacte a pouzije. Kazdy vytvoreny soubor obsahuje jeden usek a kazdy usek ma jedno UID useku. Je-li zadano vice UID useku nez vytvorenych useku, prebytecna UID se ignoruji. Je-li zadano mene UID nez vytvorenych useku, vytvori se pro ne nahodna UID. Zpracovani kapitol a stitku (globalni volby) --chapter-language language-code Nastavuje jazykovy kod ISO 639-2 zapisovany pro kazdou polozku kapitoly. Vychozi je eng. Podrobnosti viz nize v oddilu kapitoly. Tuto volbu lze pouzit jak pro jednoduche soubory kapitol, tak pro zdrojove soubory obsahujici kapitoly, ale zadne informace o jazyku kapitol, napriklad soubory MP4 a OGM. Jazyk nastaveny touto volbou se pouzije take pri vytvareni kapitol volbou --generate-chapters. --chapter-charset character-set Nastavuje znakovou sadu pouzitou pro prevod jednoduchych souboru kapitol do UTF-8. Vysvetleni prevodu mezi znakovymi sadami programem mkvmerge(1) naleznete v oddilu textove soubory a znakove sady. Tato volba plati take pro kapitoly kopirovane z urcitych typu kontejneru, napriklad souboru Ogg/OGM a MP4. Podrobnosti viz nize v oddilu o kapitolach. --chapter-sync d[,o[/p]] Upravi casova razitka kapitol v nasledujicim zdrojovem souboru o d ms. Alternativne lze pouzit volbu --sync se zvlastnim ID stopy -2 (viz oddil zvlastni ID stop). o/p: upravi casova razitka o o/p, aby opravil linearni posuny. Neni-li p uvedeno, vychozi je 1. Hodnoty o i p mohou byt cisla s pohyblivou radovou carkou. Vychozi: zadna rucni oprava synchronizace (coz je stejne jako d = 0 a o/p = 1.0). Tuto volbu lze pro vstupni soubor pouzit vicekrat; pokazde lze vybrat jine ID stopy, takze plati pro nekolik stop. --generate-chapters mode mkvmerge(1) muze vytvaret kapitoly automaticky. V soucasnosti jsou podporovany nasledujici dva rezimy: o 'when-appending' - Tento rezim vytvori jednu kapitolu na zacatku a jednu kapitolu pokazde, kdyz je pripojen soubor. Tento rezim funguje take s rezimy rozdeleni 'parts:' a 'parts-frames:'. V techto rezimech se vytvori jedna kapitola pro kazdy pripojeny rozsah casovych razitek (ty, jejichz pocatecni casove razitko ma predponu '+'). Note mkvmerge(1) vyzaduje pritomnost video nebo zvukove stopy, aby mohl urcit, kdy je pripojen novy soubor. Jsou-li multiplexovany jedna nebo vice video stop, pouzije se prvni z nich. Jinak se pouzije prvni zvukova stopa. o 'interval:time-spec' - Tento rezim vytvari jednu kapitolu v pevnych intervalech urcenych time-spec. Format je bud HH:MM:SS.nnnnnnnnn, nebo cislo nasledovane jednou z jednotek 's', 'ms' ci 'us'. Priklad: --generate-chapters interval:45s Nazvy novych kapitol ridi volba --generate-chapters-name-template. Jazyk nastavuje volba --chapter-language, ktera musi byt uvedena pred --generate-chapters. --generate-chapters-name-template template Nastavuje sablonu nazvu kapitol vytvarenych volbou --generate-chapters. Neni-li volba pouzita, pouzije se vychozi 'Chapter '. V sablone lze pouzit nekolik promennych, ktere se pri vytvoreni kapitoly nahradi skutecnymi hodnotami. Retezec '' se nahradi cislem kapitoly. Retezec '' se nahradi pocatecnim casovym razitkem kapitoly. Retezce '' a '' se vyplni pouze pri vytvareni kapitol pro pripojene soubory. Nahradi se nazvem pripojeneho souboru bez pripony, resp. s priponou. Vklada se pouze zakladni nazev a pripona souboru, nikoli soucasti adresare nebo jednotky. Minimalni pocet mist pro cislo kapitoly muzete urcit pomoci '', napriklad ''. Ma-li cislo mene mist nez je zadano, doplni se pocatecnimi nulami. Format pocatecniho casoveho razitka lze ridit pomoci . Neni-li format zadan, vychozi je '%H:%M:%S'. Platne kody formatu jsou: o %h - hodiny o %H - hodiny doplnene pocatecnimi nulami na dve mista o %m - minuty o %M - minuty doplnene pocatecnimi nulami na dve mista o %s - sekundy o %S - sekundy doplnene pocatecnimi nulami na dve mista o %n - nanosekundy s deviti misty o %<1-9>n - nanosekundy az s deviti misty (napr. tri mista pomoci %3n) Retezec '' se vyplni pouze pri vytvareni kapitol pro pripojene soubory. Je-li k dispozici, nahradi se nazvem pripojeneho souboru. --cue-chapter-name-format format mkvmerge(1) podporuje nacitani CUE sheetu zvukovych souboru a jejich pouziti jako podkladu pro kapitoly. CUE sheety obvykle obsahuji u kazde polozky indexu udaje PERFORMER a TITLE. mkvmerge(1) pouziva tyto dva retezce k sestaveni nazvu kapitoly. Touto volbou lze nastavit format pouzity pro tento nazev. Neni-li tato volba zadana, mkvmerge(1) pouziva vychozi format '%p - %t' (interpret, za nim mezera, pomlcka, dalsi mezera a nazev). Je-li format zadan, vse krome nasledujicich metaznaku se zkopiruje beze zmeny a metaznaky se nahradi takto: o %p se nahradi retezcem PERFORMER aktualni polozky, o %t se nahradi retezcem TITLE aktualni polozky, o %n se nahradi aktualnim cislem stopy a o %N se nahradi aktualnim cislem stopy doplnenym zleva nulou, je-li < 10. --chapters file-name Nacte informace o kapitolach ze souboru file-name. Podrobnosti viz nize v oddilu o kapitolach. --global-tags file-name Nacte globalni stitky ze souboru file-name. Podrobnosti viz nize v oddilu o stitcich. Obecne rizeni vystupu (pokrocile globalni volby) --track-order FID1:TID1,FID2:TID2,... Tato volba meni poradi, v nemz se vytvareji stopy vstupniho souboru. Argumentem je seznam dvojic ID oddelenych carkami. Kazda dvojice obsahuje nejprve ID souboru (FID1), coz je jednoduse cislo souboru na prikazovem radku pocinaje 0. Druhym udajem je ID stopy (TID1) z daneho souboru. Jsou-li nektera ID stop vynechana, prislusne stopy se vytvori az po stopach uvedenych touto volbou. Neni-li tato volba zadana, stopy se seradi nejprve podle typu & pote podle poradi jejich zdrojovych souboru. Nejdrive budou video stopy, po nich zvukove & titulkove stopy. Ostatni zridka pouzivane typy stop budou zarazeny nakonec. --cluster-length spec Omezi pocet datovych bloku nebo delku dat v kazdem clusteru. Parametr spec muze byt bud cislo n bez jednotky, nebo cislo d s priponou 'ms'. Neni-li pouzita jednotka, mkvmerge(1) vlozi do kazdeho clusteru nejvyse n datovych bloku. Maximalni pocet bloku je 65535. Je-li cislo d zakonceno priponou 'ms', mkvmerge(1) vlozi do kazdeho clusteru nejvyse d milisekund dat. Minimalni hodnota parametru d je '100ms' a maximalni '32000ms'. mkvmerge(1) ve vychozim nastaveni vklada do clusteru nejvyse 65535 datovych bloku a 5000ms dat. Programy hledajici urcity snimek se mohou presunout primo pouze na cluster a pote musi precist cely cluster. Vytvareni vetsich clusteru proto muze vest k nepresnemu nebo pomalemu vyhledavani. --clusters-in-meta-seek Urcuje programu mkvmerge(1), aby na konci souboru vytvoril prvek hlavicky vyhledavani obsahujici vsechny clustery. Viz take oddil o usporadani souboru Matroska(TM). --timestamp-scale factor Vynuti nastaveni faktoru meritka casovych razitek na hodnotu factor. Platne hodnoty jsou v rozsahu 1000..10000000 nebo zvlastni hodnota -1. mkvmerge(1) bezne pouziva hodnotu 1000000, coz znamena, ze casova razitka a delky maji presnost 1 ms. U souboru bez video stopy, avsak alespon s jednou zvukovou stopou, mkvmerge(1) automaticky zvoli faktor meritka casovych razitek tak, aby vsechna casova razitka a delky mela presnost jednoho zvukoveho vzorku. Zvysuje to rezii, ale umoznuje presne vyhledavani a extrakci. Pouzije-li se zvlastni hodnota -1, mkvmerge(1) pouzije presnost na jeden vzorek i v pripade, ze je pritomna video stopa. --enable-durations Zapise delky vsech bloku. Tim se zvetsi velikost souboru a v soucasnosti to prehravacum neprinasi zadnou dalsi vyhodu. --no-cues Urcuje programu mkvmerge(1), aby nevytvarel ani nezapisoval data indexu, ktera lze prirovnat k indexu v souboru AVI. Soubory Matroska(TM) lze prehravat i bez dat indexu, vyhledavani vsak bude pravdepodobne nepresne a pomalejsi. Tuto volbu pouzijte pouze tehdy, pokud nutne potrebujete usetrit misto, nebo k testovani. Viz take volba --cues, kterou lze zadat pro kazdy vstupni soubor. --no-date Ve vychozim nastaveni mkvmerge(1) nastavuje pole "date" v informacich o useku na cas & datum zahajeni multiplexovani. Pri pouziti teto volby se pole vubec nezapise. --date timestamp Nastavi pole DateUTC zapisovane do informaci o useku. Casove razitko musi mit format podobny ISO 8601: YYYY-mm-ddTHH:MM:SSZ pro UTC nebo s posunem +-HH:MM (misto T lze pouzit take mezeru), napr. 2017-03-28T17:28:00Z nebo 2017-03-28 17:28:00+02:00. Pouzije-li se spolu s --no-date, ma --no-date prednost a zadne datum se nezapise. --disable-lacing Zakaze svazovani pro vsechny stopy. Tim se zvetsi velikost souboru, zejmena pokud obsahuje mnoho zvukovych stop. Tato volba neni urcena pro bezne pouziti. --disable-track-statistics-tags mkvmerge(1) bezne zapisuje urcite stitky se statistikami pro kazdou stopu. Pokud takove stitky jiz existuji, budou prepsany. Jde o stitky BPS, DURATION, NUMBER_OF_BYTES a NUMBER_OF_FRAMES. Zapnuti teto volby zabrani programu mkvmerge(1) zapisovat tyto stitky a menit existujici stitky se stejnymi nazvy. --disable-language-ietf mkvmerge(1) bezne zapisuje nove jazykove prvky IETF BCP 47 vedle zastaralych jazykovych prvku v hlavickach stop, kapitolach a stitcich. Pri pouziti teto volby se zapisuji pouze zastarale prvky. --normalize-language-ietf mode Povoli normalizaci vsech jazykovych znacek IETF BCP 47 bud na jejich kanonickou podobu v rezimu 'canonical', na podobu rozsirenych jazykovych podznacek v rezimu 'extlang', nebo ji vypne rezimem 'off'. Ve vychozim nastaveni se pouziva normalizace na kanonickou podobu. V kanonicke podobe se vsechny podznacky, pro nez existuji uprednostnovane hodnoty, nahradi temito hodnotami. Tim se napr. 'zh-yue-jyutping' prevede na 'yue-jyutping' nebo 'fr-FX' na 'fr-FR'. Pro podobu rozsirenych jazykovych podznacek se nejprve vytvori kanonicka podoba. Pote se vsechny primarni jazykove podznacky, pro nez existuje rozsirena jazykova podznacka, nahradi touto rozsirenou jazykovou podznackou a jeji predponou. Tim se napr. 'yue-jyutping' prevede zpet na 'zh-yue-jyutping', na 'fr-FR' to vsak nema vliv, protoze 'fr' neni rozsirena jazykova podznacka. --stop-after-video-ends Po skonceni primarni video stopy zastavi zpracovani a zahodi vsechny zbyvajici pakety ostatnich stop. Rozdeleni souboru, propojovani, pripojovani a zretezovani (dalsi globalni volby) --split specification Rozdeli vystupni soubor po dosazeni zadane velikosti nebo po uplynuti zadane doby. Upozornujeme, ze stopy lze rozdelovat pouze bezprostredne pred klicovym snimkem. Bod rozdeleni se proto muze od zadani uzivatele mirne lisit. V soucasnosti mkvmerge(1) podporuje nasledujici rezimy: 1. Rozdeleni podle velikosti. Syntaxe: --split [size:]d[k|m|g] Priklady: --split size:700m nebo --split 150000000 Parametr d muze koncit pismenem 'k', 'm' nebo 'g', cimz se urci velikost v KB, MB, respektive GB. Jinak se predpoklada velikost v bajtech. Jakmile aktualni vystupni soubor dosahne tohoto limitu velikosti, zacne se vytvaret novy vystupni soubor. Predponu 'size:' lze z duvodu kompatibility vynechat. 2. Rozdeleni po uplynuti doby. Syntaxe: --split [duration:]HH:MM:SS.nnnnnnnnn|ds Priklady: --split duration:00:60:00.000 nebo --split 3600s Parametr musi mit bud tvar HH:MM:SS.nnnnnnnnn pro zadani trvani s presnosti az na nanosekundy, nebo musi jit o cislo d nasledovane pismenem 's' pro trvani v sekundach. HH je pocet hodin, MM pocet minut, SS pocet sekund a nnnnnnnnn pocet nanosekund. Pocet hodin i pocet nanosekund lze vynechat. Za desetinnou teckou muze byt az devet cislic. Jakmile trvani obsahu aktualniho vystupniho souboru dosahne tohoto limitu, zacne se vytvaret novy vystupni soubor. Predponu 'duration:' lze z duvodu kompatibility vynechat. 3. Rozdeleni za konkretnimi casovymi razitky. Syntaxe: --split timestamps:A[,B[,C...]] Priklad: --split timestamps:00:45:00.000,01:20:00.250,6300s Parametry A, B, C atd. musi mit stejny format jako hodnoty delky (viz vyse). Seznam casovych razitek je oddelen carkami. Jakmile vstupni proud dosahne casoveho razitka aktualniho bodu rozdeleni, vytvori se novy soubor. Pote se pouzije dalsi bod rozdeleni uvedeny v seznamu. Predpona 'timestamps:' se nesmi vynechat. 4. Zachovani urcitych casti urcenim rozsahu casovych razitek pri vyrazeni ostatnich. Syntaxe: --split parts:start1-end1[,[+]start2-end2[,[+]start3-end3...]] Priklady: 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- Rezim parts urcuje programu mkvmerge(1), aby zachoval urcite rozsahy casovych razitek a ostatni zahodil. Zachovavane rozsahy musi byt uvedeny za klicovym slovem parts: a oddeleny carkami. Kazdy rozsah se sklada z pocatecniho a koncoveho casoveho razitka ve stejnem formatu, jaky prijimaji ostatni varianty --split (napr. 00:01:20 a 80s oznacuji stejne casove razitko). Je-li pocatecni casove razitko vynechano, pouzije se ve vychozim nastaveni koncove casove razitko predchoziho rozsahu. Nebyl-li predchozi rozsah, pouzije se zacatek souboru (viz priklad 3). Je-li koncove casove razitko vynechano, pouzije se ve vychozim nastaveni konec zdrojovych souboru, cimz se programu mkvmerge(1) v podstate urci, aby zachoval zbytek (viz priklad 3). Kazdy rozsah se bezne zapise do noveho souboru. To lze zmenit tak, aby se po sobe jdouci rozsahy zapisovaly do stejneho souboru. Uzivatel proto musi pred pocatecni casove razitko vlozit +. Touto predponou se programu mkvmerge(1) urci, aby nevytvarel novy soubor, ale pripojil rozsah ke stejnemu souboru, do nehoz byl zapsan predchozi rozsah. Casova razitka se upravi tak, aby ve vystupnim souboru nebyla mezera, i kdyz mezi obema rozsahy ve vstupnim souboru mezera byla. V prikladu 1 mkvmerge(1) vytvori dva soubory. Prvni bude obsahovat cast obsahu od 00:01:20 do 00:02:45. Druhy soubor bude obsahovat cast obsahu od 00:05:50 do 00:10:30. V prikladu 2 mkvmerge(1) vytvori pouze jeden soubor. Tento soubor bude obsahovat casti obsahu od 00:01:20 do 00:02:45 a od 00:05:50 do 00:10:30. V prikladu 3 mkvmerge(1) vytvori dva soubory. Prvni bude obsahovat cast obsahu od zacatku zdrojovych souboru do 00:02:45. Druhy soubor bude obsahovat cast obsahu od 00:05:50 do konce zdrojovych souboru. Note Upozornujeme, ze mkvmerge(1) rozhoduje o rozdeleni pouze na pozicich klicovych snimku. To plati pro zacatek i konec kazdeho rozsahu. I kdyz tedy koncove casove razitko lezi mezi dvema klicovymi snimky, mkvmerge(1) bude nadale zapisovat snimky az po nasledujici klicovy snimek, ten vsak uz nezahrne. 5. Zachovani urcitych casti zadanim rozsahu cisel snimku/pulsnimku a vyrazeni ostatnich. Syntaxe: --split parts-frames:start1-end1[,[+]start2-end2[,[+]start3-end3...]] Priklady: 1. --split parts-frames:137-258,548-1211 2. --split parts-frames:733-912,+1592-2730 3. --split parts-frames:-430,2512- Rezim parts-frames urcuje programu mkvmerge(1), aby zachoval urcite rozsahy cisel snimku/pulsnimku a ostatni zahodil. Zachovavane rozsahy musi byt uvedeny za klicovym slovem parts-frames: a oddeleny carkami. Kazdy rozsah se sklada z pocatecniho a koncoveho cisla snimku/pulsnimku. Cislovani zacina od 1. Je-li pocatecni cislo vynechano, pouzije se ve vychozim nastaveni koncove cislo predchoziho rozsahu. Nebyl-li predchozi rozsah, pouzije se zacatek souboru (viz priklad 3). Je-li koncove cislo vynechano, pouzije se ve vychozim nastaveni konec zdrojovych souboru, cimz se programu mkvmerge(1) v podstate urci, aby zachoval zbytek (viz priklad 3). Kazdy rozsah se bezne zapise do noveho souboru. To lze zmenit tak, aby se po sobe jdouci rozsahy zapisovaly do stejneho souboru. Uzivatel proto musi pred pocatecni cislo vlozit +. Touto predponou se programu mkvmerge(1) urci, aby nevytvarel novy soubor, ale pripojil rozsah ke stejnemu souboru, do nehoz byl zapsan predchozi rozsah. Casova razitka se upravi tak, aby ve vystupnim souboru nebyla mezera, i kdyz mezi obema rozsahy ve vstupnim souboru mezera byla. Note Upozornujeme, ze mkvmerge(1) rozhoduje o rozdeleni pouze na pozicich klicovych snimku. To plati pro zacatek i konec kazdeho rozsahu. I kdyz tedy koncove cislo snimku/pulsnimku lezi mezi dvema klicovymi snimky, mkvmerge(1) bude nadale zapisovat snimky az po nasledujici klicovy snimek, ten vsak uz nezahrne. V prikladu 1 mkvmerge(1) vytvori dva soubory. Prvni bude obsahovat cast obsahu pocinaje prvnim klicovym snimkem s cislem 137 nebo vyssim a konce tesne pred prvnim klicovym snimkem s cislem 258 nebo vyssim. Druhy soubor bude obsahovat cast obsahu od 548 do 1211. V prikladu 2 mkvmerge(1) vytvori pouze jeden soubor. Tento soubor bude obsahovat casti obsahu od 733 do 912 a od 1592 do 2730. V prikladu 3 mkvmerge(1) vytvori dva soubory. Prvni bude obsahovat cast obsahu od zacatku zdrojovych souboru do 430. Druhy soubor bude obsahovat cast obsahu od 2512 do konce zdrojovych souboru. Tento rezim zohlednuje pouze prvni vystupni video stopu. Neni-li vystupni zadna video stopa, nedojde k rozdeleni. Note Cisla zadana pomoci tohoto argumentu se interpretuji podle poctu vystupnich bloku Matroska(TM). Jeden blok Matroska(TM) obsahuje bud cely snimek (u progresivniho obsahu), nebo jedno pole (u prokladaneho obsahu). mkvmerge mezi nimi nerozlisuje a jednoduse pocita bloky. Priklad: chcete-li prokladany obsah rozdelit po 25. celem snimku, je nutne jako bod rozdeleni pouzit 50 (dve pole na cely snimek). 6. Rozdeleni za konkretnimi snimky/pulsnimky. Syntaxe: --split frames:A[,B[,C...]] Priklad: --split frames:120,237,891 Parametry A, B, C atd. musi byt kladna cela cisla. Cislovani zacina od 1. Seznam cisel snimku/pulsnimku je oddelen carkami. Jakmile vstupni proud dosahne cisla snimku/pole aktualniho bodu rozdeleni, vytvori se novy soubor. Pote se pouzije dalsi bod rozdeleni uvedeny v seznamu. Predpona 'frames:' se nesmi vynechat. Tento rezim zohlednuje pouze prvni vystupni video stopu. Neni-li vystupni zadna video stopa, nedojde k rozdeleni. Note Cisla zadana pomoci tohoto argumentu se interpretuji podle poctu vystupnich bloku Matroska(TM). Jeden blok Matroska(TM) obsahuje bud cely snimek (u progresivniho obsahu), nebo jedno pole (u prokladaneho obsahu). mkvmerge mezi nimi nerozlisuje a jednoduse pocita bloky. Priklad: chcete-li prokladany obsah rozdelit po 25. celem snimku, je nutne jako bod rozdeleni pouzit 50 (dve pole na cely snimek). 7. Rozdeleni pred konkretnimi kapitolami. Syntaxe: --split chapters:all nebo --split chapters:A[,B[,C...]] Priklad: --split chapters:5,8 Parametry A, B, C atd. musi byt kladna cela cisla. Cislovani zacina od 1. Seznam cisel kapitol je oddelen carkami. K rozdeleni dojde tesne pred prvnim klicovym snimkem, jehoz casove razitko je stejne nebo vyssi nez pocatecni casove razitko kapitol s uvedenymi cisly. Kapitola zacinajici v case 0s se pri rozdeleni nikdy nezohledni a bez upozorneni se zahodi. Klicove slovo all lze pouzit misto rucniho vypisu vsech cisel kapitol. Predpona 'chapters:' se nesmi vynechat. Note Format souboru Matroska(TM) podporuje libovolne hluboce vnorene struktury kapitol nazyvane 'polozky edice' a 'atomy kapitol'. Tento rezim vsak zohlednuje jen nejvyssi uroven kapitol ve vsech polozkach edice. V tomto rezimu rozdeleni se s nazvem vystupniho souboru zachazi jinak nez pri beznem zpracovani. Muze obsahovat vyraz ve stylu printf '%d' vcetne volitelne sirky pole, napr. '%02d'. Pokud jej obsahuje, aktualni cislo souboru se odpovidajicim zpusobem naformatuje a vlozi na dane misto nazvu souboru. Neni-li takovy vzor pritomen, pred priponou souboru se predpoklada vzor '-%03d': '-o output.mkv' vytvori 'output-001.mkv' atd. Nema-li nazev priponu, '-%03d' se pripoji k nazvu. Dalsim moznym vzorem je '%c', ktery se nahradi nazvem prvni kapitoly v souboru. Je-li pritomen '%c', vzor '-%03d' se neprida automaticky. --link Pri rozdeleni vystupniho souboru vzajemne propoji soubory. Podrobnosti viz nize v oddilu o propojovani souboru. --link-to-previous segment-UID Propoji prvni vystupni soubor s usekem, jehoz UID je zadano parametrem segment-UID. Podrobnosti viz nize v oddilu o propojovani souboru. Zacina-li SID znakem =, zbytek se interpretuje jako nazev souboru Matroska, jehoz UID useku se nacte a pouzije. --link-to-next segment-UID Propoji posledni vystupni soubor s usekem, jehoz UID je zadano parametrem segment-UID. Podrobnosti viz nize v oddilu o propojovani souboru. Zacina-li SID znakem =, zbytek se interpretuje jako nazev souboru Matroska, jehoz UID useku se nacte a pouzije. --append-mode mode Urcuje zpusob vypoctu casovych razitek pri pripojovani souboru. Parametr mode muze mit dve hodnoty: 'file', ktera je take vychozi, a 'track'. Kdyz mkvmerge pripoji stopu (dale 'track2_1') z druheho souboru (dale 'file2') ke stope (dale 'track1_1') z prvniho souboru (dale 'file1'), musi vsechna casova razitka stopy 'track2_1' posunout o urcitou hodnotu. V rezimu 'file' je touto hodnotou nejvyssi casove razitko nalezene v 'file1', i kdyz pochazelo z jine stopy nez 'track1_1'. V rezimu 'track' se jako posun pouzije nejvyssi casove razitko stopy 'track1_1'. mkvmerge bohuzel nedokaze spolehlive zjistit, ktery rezim pouzit. Proto je vychozi rezim 'file'. Rezim 'file' obvykle funguje lepe pro soubory vytvorene nezavisle na sobe, napr. pri pripojovani souboru AVI nebo MP4. Rezim 'track' muze fungovat lepe pro zdroje, ktere jsou v podstate pouze castmi jednoho velkeho souboru, napr. pro soubory VOB a EVO. S titulkovymi stopami se vzdy zachazi, jako by byl aktivni rezim 'file', i kdyz je ve skutecnosti aktivni rezim 'track'. --append-to SFID1:STID1:DFID1:DTID1[,...] Tato volba urcuje, ke ktere stope se pripoji jina stopa. Kazda specifikace obsahuje ctyri ID: ID souboru, ID stopy, ID druheho souboru a ID druhe stopy. Prvni dvojice, ,,ID zdrojoveho souboru" a ,,ID zdrojove stopy", urcuje stopu, ktera se ma pripojit. Druha dvojice, ,,ID ciloveho souboru" a ,,ID cilove stopy", urcuje stopu, ke ktere se prvni stopa pripoji. Je-li tato volba vynechana, pouzije se standardni mapovani. Pri nem se kazda stopa z aktualniho souboru pripoji ke stope z predchoziho souboru se stejnym ID stopy. Pokud byl film rozdelen na dve casti a oba soubory maji stejny pocet stop i stejna ID stop, umoznuje to jejich snadne pripojeni prikazem mkvmerge -o output.mkv part1.mkv +part2.mkv. + Jediny znak '+' zpusobi, ze se nasledujici soubor pripoji namisto pridani. Znak '+' lze take umistit pred nazev nasledujiciho souboru. Nasledujici dva prikazy jsou proto rovnocenne: $ mkvmerge -o full.mkv file1.mkv + file2.mkv $ mkvmerge -o full.mkv file1.mkv +file2.mkv [ file1 file2 ] Je-li v paru hranatych zavorek uvedeno vice nazvu souboru, druhy a vsechny nasledujici soubory se pripoji k prvnimu souboru uvedenemu v zavorkach. Toto je alternativni syntaxe k pouziti znaku '+' mezi nazvy souboru. Nasledujici dva prikazy jsou proto ekvivalentni: $ mkvmerge -o full.mkv file1.mkv + file2.mkv $ mkvmerge -o full.mkv '[' file1.mkv file2.mkv ']' = U urcitych typu souboru (programove proudy MPEG = VOB) mkvmerge(1) za beznych okolnosti hleda ve stejnem adresari jako vstupni soubor dalsi soubory se stejnym zakladnim nazvem, ktere se lisi pouze poradovym cislem (napr. 'VTS_01_1.VOB', 'VTS_01_2.VOB', 'VTS_01_3.VOB' atd.), a zachazi se vsemi temito soubory, jako by byly zretezeny do jednoho velkeho souboru. Tato volba, jediny znak '=', zpusobi, ze mkvmerge tyto dalsi soubory hledat nebude. Znak '=' lze take umistit pred nazev nasledujiciho souboru. Nasledujici dva prikazy jsou proto ekvivalentni: $ mkvmerge -o full.mkv = file1.vob $ mkvmerge -o full.mkv =file1.vob ( file1 file2 ) Je-li v paru kulatych zavorek uvedeno vice nazvu souboru, bude s temito soubory zachazeno, jako by byly zretezeny do jednoho velkeho souboru tvoreneho obsahem jednotlivych souboru v uvedenem poradi. To lze pouzit napriklad pro soubory VOB pochazejici z DVD nebo pro transportni proudy MPEG. Nelze to pouzit, pokud kazdy soubor obsahuje vlastni sadu hlavicek, coz byva pripad samostatnych souboru, jako jsou AVI nebo MP4. Umisteni nazvu souboru do kulatych zavorek take zpusobi, ze mkvmerge(1) nebude hledat dalsi soubory se stejnym zakladnim nazvem, jak je popsano u volby =. Nasledujici dva prikazove radky jsou proto rovnocenne: $ mkvmerge -o out.mkv = file.mkv $ mkvmerge -o out.mkv '(' file.mkv ')' Je treba vzit v uvahu nekolik veci: 1. Za oteviraci i pred zaviraci zavorkou musi byt mezery. 2. Kazdy parametr mezi kulatymi zavorkami se vyklada jako nazev souboru. Vsechny volby vztahujici se k tomuto logickemu souboru proto musi byt uvedeny pred oteviraci zavorkou. 3. Nektere shelly povazuji zavorky za zvlastni znaky. Proto je nutne je eskapovat nebo uzavrit do uvozovek, jak ukazuje uvedeny priklad. Podpora priloh (dalsi globalni volby) --attachment-description description Prosty textovy popis nasledujici prilohy. Plati pro nasledujici volbu --attach-file nebo --attach-file-once. --attachment-mime-type MIME type Typ MIME nasledujici prilohy. Plati pro nasledujici volbu --attach-file nebo --attach-file-once. Seznam oficialne registrovanych typu MIME najdete napriklad na domovske strance IANA[2]. Typ MIME je pro prilohu povinny. Neni-li pro prilohu uveden zadny typ MIME, jeji typ se zjisti automaticky. --attachment-name name Nastavi nazev, ktery se pro tuto prilohu ulozi do vystupniho souboru. Neni-li tato volba zadana, nazev se odvodi z nazvu souboru prilohy zadaneho volbou --attach-file nebo --attach-file-once. --attach-file file-name, --attach-file-once file-name Vytvori uvnitr souboru Matroska(TM) prilohu. Rozdil mezi obema podobami spociva v tom, ze pri rozdeleni se soubory prilozene pomoci --attach-file pripoji ke vsem vystupnim souborum, zatimco soubory prilozene pomoci --attach-file-once pouze k prvnimu vytvorenemu souboru. Neni-li rozdeleni pouzito, obe podoby se chovaji stejne. mkvextract(1) lze pouzit k extrahovani pripojenych souboru ze souboru Matroska(TM). --enable-legacy-font-mime-types Povoli pouzivani zastaralych typu MIME pro urcite typy priloh pisem. Napriklad pro pisma TrueType se pouzije 'application/x-truetype-font' namisto 'fonts/ttf'. Tyka se to jak novych priloh, pokud se jejich typ MIME zjistuje automaticky, tak existujicich priloh, jejichz ulozene typy MIME se premapuji na zastarale typy. Dotcenymi typy MIME jsou 'font/sfnt', 'font/ttf' a 'font/collection', ktere se vsechny mapuji na 'application/x-truetype-fonts', a 'font/otf', ktery se mapuje na 'application/vnd.ms-opentype'. Volby, ktere lze pouzit pro kazdy vstupni soubor -a, --audio-tracks [!]n,m,... Zkopiruje zvukove stopy n, m atd. Cisla jsou ID stop, ktera lze ziskat volbou --identify. Nejde pouze o cisla stop (viz oddil ID stop). Vychozi: zkopiruji se vsechny zvukove stopy. Misto ID stop lze zadat take jazykove kody ISO 639-2. Funguje to pouze pro zdrojove soubory, ktere pro sve stopy poskytuji jazykove znacky. Vychozi: zkopirovat vsechny stopy tohoto druhu. Maji-li ID predponu !, vyznam se obrati: zkopiruji se vsechny stopy tohoto druhu krome stop uvedenych za !. -d, --video-tracks [!]n,m,... Zkopiruje video stopy n, m atd. Cisla jsou ID stop, ktera lze ziskat volbou --identify. Nejde pouze o cisla stop (viz oddil ID stop). Vychozi: zkopiruji se vsechny video stopy. Misto ID stop lze zadat take jazykove kody ISO 639-2. Funguje to pouze pro zdrojove soubory, ktere pro sve stopy poskytuji jazykove znacky. Maji-li ID predponu !, vyznam se obrati: zkopiruji se vsechny stopy tohoto druhu krome stop uvedenych za !. -s, --subtitle-tracks [!]n,m,... Zkopiruje titulkove stopy n, m atd. Cisla jsou ID stop, ktera lze ziskat volbou --identify. Nejde pouze o cisla stop (viz oddil ID stop). Vychozi: zkopiruji se vsechny titulkove stopy. Misto ID stop lze zadat take jazykove kody ISO 639-2. Funguje to pouze pro zdrojove soubory, ktere pro sve stopy poskytuji jazykove znacky. Maji-li ID predponu !, vyznam se obrati: zkopiruji se vsechny stopy tohoto druhu krome stop uvedenych za !. -b, --button-tracks [!]n,m,... Zkopiruje stopy tlacitek n, m atd. Cisla jsou ID stop, ktera lze ziskat volbou --identify. Nejde pouze o cisla stop (viz oddil ID stop). Vychozi: zkopiruji se vsechny stopy tlacitek. Misto ID stop lze zadat take jazykove kody ISO 639-2. Funguje to pouze pro zdrojove soubory, ktere pro sve stopy poskytuji jazykove znacky. Maji-li ID predponu !, vyznam se obrati: zkopiruji se vsechny stopy tohoto druhu krome stop uvedenych za !. --track-tags [!]n,m,... Zkopiruje stitky stop n, m atd. Cisla jsou ID stop, ktera lze ziskat volbou --identify (viz oddil ID stop). Nejde pouze o cisla stop. Vychozi: zkopiruji se stitky vsech stop. Maji-li ID predponu !, vyznam se obrati: zkopiruje se vse krome ID uvedenych za !. -m, --attachments [!]n[:all|first],m[:all|first],... Zkopiruje prilohy s ID n, m atd. do vsech vystupnich souboru, nebo pouze do prvniho. Za kazdym ID muze nasledovat ':all' (vychozi hodnota, neni-li zadana zadna z obou moznosti) nebo ':first'. Je-li aktivni rozdeleni, prilohy s ID zadanymi pomoci ':all' se zkopiruji do vsech vyslednych vystupnich souboru, zatimco ostatni pouze do prvniho vystupniho souboru. Neni-li rozdeleni aktivni, maji obe varianty stejny ucinek. Ve vychozim stavu se vsechny prilohy zkopiruji do vsech vystupnich souboru. Maji-li ID predponu !, vyznam se obrati: zkopiruje se vse krome ID uvedenych za !. -A, --no-audio Z tohoto souboru nekopirovat zadnou zvukovou stopu. -D, --no-video Z tohoto souboru nekopirovat zadnou video stopu. -S, --no-subtitles Z tohoto souboru nekopirovat zadnou titulkovou stopu. -B, --no-buttons Z tohoto souboru nekopirovat zadnou stopu tlacitek. -T, --no-track-tags Z tohoto souboru nekopirovat zadne stitky specificke pro stopu. --no-chapters Z tohoto souboru nekopirovat kapitoly. -M, --no-attachments Z tohoto souboru nekopirovat prilohy. --no-global-tags Z tohoto souboru nekopirovat globalni stitky. --regenerate-track-uids Pri pouziti teto volby pro zdrojovy soubor Matroska vytvori mkvmerge(1) nova nahodna jedinecna ID stop namisto zachovani ID existujicich v souboru. Existujici UID stop v kapitolach & stitcich nactenych ze stejneho souboru se premapuji na nove vytvorene hodnoty. Toto chovani se automaticky povoluje pro soubory Matroska vytvorene programem MakeMKV. Duvodem je, ze MakeMKV pouziva jako UID po sobe jdouci cisla (1, 2, 3...) namisto generovani nahodnych hodnot. -y, --sync TID:d[,o[/p]] Upravi casova razitka stopy s ID TID o d ms. ID stop jsou stejna jako ID uvadena volbou --identify (viz oddil ID stop). o/p: upravi casova razitka o o/p, aby opravil linearni posuny. Neni-li p uvedeno, vychozi je 1. Hodnoty o i p mohou byt cisla s pohyblivou radovou carkou. Vychozi: zadna rucni oprava synchronizace (coz je stejne jako d = 0 a o/p = 1.0). Tuto volbu lze pro vstupni soubor pouzit vicekrat; pokazde lze vybrat jine ID stopy, takze plati pro nekolik stop. --cues TID:none|iframes|all Urcuje, pro ktere bloky se pro danou stopu vytvori polozky indexu (viz oddil ID stop). Hodnota 'none' vytvareni polozek indexu zakaze. Pri hodnote 'iframes' se do indexu vlozi pouze bloky bez zpetnych nebo doprednych referenci (= snimky I ve video stopach). Hodnota 'all' zpusobi, ze mkvmerge(1) vytvori polozky indexu pro vsechny bloky, cimz soubor vyrazne naroste. Vychozi hodnotou je 'iframes' pro video a titulkove stopy a 'none' pro zvukove stopy. Viz take volba --no-cues, ktera zakaze vytvareni polozek indexu bez ohledu na pouzite volby --cues. Tuto volbu lze pro vstupni soubor pouzit vicekrat; pokazde lze vybrat jine ID stopy, takze plati pro nekolik stop. --default-track-flag TID[:bool] Nastavi priznak "vychozi stopa" pro danou stopu (viz oddil ID stop), je-li volitelny argument bool nastaven na 1 nebo neni-li pritomen. Priznak se nastavi, pokud zdrojovy kontejner tuto informaci neposkytuje a uzivatel ji nezada touto volbou. Nevybere-li uzivatel behem prehravani stopu vyslovne, mel by prehravac vybrat jednu ze stop s nastavenym priznakem "vychozi stopa" a zohlednit pritom uzivatelske predvolby, napriklad uprednostnovany jazyk. Tuto volbu lze pro vstupni soubor pouzit vicekrat; pokazde lze vybrat jine ID stopy, takze plati pro nekolik stop. --track-enabled-flag TID[:bool] Nastavi priznak "povolena stopa" pro danou stopu (viz oddil ID stop) na zadanou hodnotu bool (0 nebo 1; neni-li zadana, vychozi je 1). Ve vychozim nastaveni jsou stopy povoleny, pokud pro ne neni zadana zadna volba a zdrojovy kontejner tuto informaci rovnez neposkytuje. Pri prehravani se maji zohlednit pouze stopy, pro nez je nastaven priznak "povolena stopa". Tuto volbu lze pro vstupni soubor pouzit vicekrat; pokazde lze vybrat jine ID stopy, takze plati pro nekolik stop. --forced-display-flag TID[:bool] Nastavi priznak "vynucene zobrazeni" pro danou stopu (viz oddil ID stop), je-li volitelny argument bool nastaven na 1 nebo neni-li pritomen. Pouzijte jej pro stopy obsahujici text zobrazovany na obrazovce nebo dialogy v cizim jazyce. Tuto volbu lze pro vstupni soubor pouzit vicekrat; pokazde lze vybrat jine ID stopy, takze plati pro nekolik stop. --hearing-impaired-flag TID[:bool] Nastavi priznak "sluchove postizeni" pro danou stopu (viz oddil ID stop), je-li volitelny argument bool nastaven na 1 nebo neni-li pritomen. Tento priznak lze nastavit, je-li stopa vhodna pro uzivatele se sluchovym postizenim. Tuto volbu lze pro vstupni soubor pouzit vicekrat; pokazde lze vybrat jine ID stopy, takze plati pro nekolik stop. --visual-impaired-flag TID[:bool] Nastavi priznak "zrakove postizeni" pro danou stopu (viz oddil ID stop), je-li volitelny argument bool nastaven na 1 nebo neni-li pritomen. Tento priznak lze nastavit, je-li stopa vhodna pro uzivatele se zrakovym postizenim. Tuto volbu lze pro vstupni soubor pouzit vicekrat; pokazde lze vybrat jine ID stopy, takze plati pro nekolik stop. --text-descriptions-flag TID[:bool] Nastavi priznak "textove popisy" pro danou stopu (viz oddil ID stop), je-li volitelny argument bool nastaven na 1 nebo neni-li pritomen. Tento priznak lze nastavit, obsahuje-li stopa textove popisy video obsahu vhodne k prehravani systemem prevodu textu na rec pro uzivatele se zrakovym postizenim. Tuto volbu lze pro vstupni soubor pouzit vicekrat; pokazde lze vybrat jine ID stopy, takze plati pro nekolik stop. --original-flag TID[:bool] Nastavi priznak "puvodni jazyk" pro danou stopu (viz oddil ID stop), je-li volitelny argument bool nastaven na 1 nebo neni-li pritomen. Tento priznak lze nastavit, je-li stopa v puvodnim jazyce obsahu (nejde o preklad). Tuto volbu lze pro vstupni soubor pouzit vicekrat; pokazde lze vybrat jine ID stopy, takze plati pro nekolik stop. --commentary-flag TID[:bool] Nastavi priznak "komentar" pro danou stopu (viz oddil ID stop), je-li volitelny argument bool nastaven na 1 nebo neni-li pritomen. Tento priznak lze nastavit, obsahuje-li stopa komentar. Tuto volbu lze pro vstupni soubor pouzit vicekrat; pokazde lze vybrat jine ID stopy, takze plati pro nekolik stop. --track-name TID:name Nastavi nazev dane stopy (viz oddil ID stop) na name. --language TID:language Nastavi jazyk dane stopy (viz oddil ID stop). Povoleny jsou jazykove kody ISO 639-2 i kody zemi ISO 639-1. Kody zemi se automaticky prevedou na jazykove kody. Vsechny jazyky vcetne jejich kodu ISO 639-2 lze vypsat volbou --list-languages. Tuto volbu lze pro vstupni soubor pouzit vicekrat; pokazde lze vybrat jine ID stopy, takze plati pro nekolik stop. -t, --tags TID:file-name Nacte stitky pro stopu s cislem TID ze souboru file-name. Podrobnosti najdete nize v oddilu o stitcich. --aac-is-sbr TID[:0|1] Urcuje programu mkvmerge(1), ze stopa s ID TID je SBR AAC (znama take jako HE-AAC nebo AAC+). Tato volba je nutna, pokud a) je zdrojovym souborem soubor AAC (nikoli soubor Matroska(TM)) a b) soubor AAC obsahuje data SBR AAC. Duvodem teto volby je, ze bezna data AAC nelze automaticky odlisit od dat SBR AAC bez dekodovani celeho snimku AAC. Protoze s dekodery AAC souvisi nekolik patentovych problemu, mkvmerge(1) tuto fazi dekodovani nikdy obsahovat nebude. Pro soubory SBR AAC je proto tato volba povinna. Pri jejim vynechani se vysledny soubor nemusi prehrat spravne, nebo vubec. Je-li zdrojovym souborem soubor Matroska(TM), mel by CodecID stacit k rozpoznani SBR AAC. Je-li vsak CodecID chybny, lze tuto volbu pouzit k jeho oprave. Rozpozna-li mkvmerge chybne soubor AAC jako SBR, muzete k ID stopy pridat ':0'. --audio-emphasis TID:n|symbolic-name Nastavi zdurazneni zvuku pro stopu s ID TID. Rezim muze byt bud cislo n (urcite hodnoty mezi 0 a 16), nebo symbolicky nazev. Vsechna platna cisla & symbolicke nazvy lze vypsat volbou --list-audio-emphasis. --reduce-to-core TID Nektere zvukove kodeky maji ztratove jadro a volitelna rozsireni umoznujici bezeztratove dekodovani. Tato volba zpusobi, ze mkvmerge(1) zkopiruje pouze jadro, nikoli rozsireni. Ve vychozim nastaveni mkvmerge(1) kopiruje jadro i rozsireni. V soucasnosti se tato volba tyka pouze stop DTS. Stopy TrueHD obsahujici vlozene jadro AC-3 se namisto toho zobrazuji jako dve samostatne stopy, z nichz muze uzivatel vybrat, kterou zkopirovat. U DTS by takove reseni nefungovalo, protoze rozsireni HD nelze na rozdil od dat TrueHD dekodovat samostatne. --remove-dialog-normalization-gain TID Nektere zvukove kodeky obsahuji pole hlavicky, ktera dekoderu nebo prehravaci urcuji pouziti zesileni (obvykle se zapornou hodnotou) pro normalizaci dialogu. Tato volba zpusobi, ze mkvmerge(1) toto zesileni odstrani nebo minimalizuje upravou prislusnych poli hlavicky. V soucasnosti se tato volba tyka pouze stop AC-3, DTS a TrueHD. --timestamps TID:file-name Nacte ze souboru file-name casova razitka, ktera se maji pouzit pro konkretni ID stopy. Tato casova razitka vynucene prepisi casova razitka, ktera mkvmerge(1) bezne vypocitava. Prectete si oddil o externich souborech casovych razitek. --default-duration TID:x Vynuti vychozi delku dane stopy na zadanou hodnotu. Rovnez upravi casova razitka stopy tak, aby odpovidala vychozi delce. Argument x musi mit priponu 's', 'ms', 'us', 'ns', 'fps', 'p' nebo 'i'; tyto pripony v uvedenem poradi urcuji vychozi delku v sekundach, milisekundach, mikrosekundach, nanosekundach, 'snimcich za sekundu', 'progresivnich snimcich za sekundu' nebo 'prokladanych snimcich za sekundu'. Samotne cislo x muze byt desetinne cislo nebo zlomek. Neni-li vychozi delka vynucena, pokusi se mkvmerge u urcitych typu stop, napr. AVC/H.264 nebo MPEG-2, odvodit vychozi delku stopy z kontejneru nebo zakodovaneho bitoveho toku, pripadne z obou. Touto volbou lze take zmenit FPS video stop, aniz by bylo nutne pouzit externi soubor casovych razitek. --fix-bitstream-timing-information TID[:0|1] Za beznych okolnosti mkvmerge(1) nemeni casovaci informace (frekvenci snimku/pulsnimku) ulozene v bitovem toku videa. Touto volbou se tyto informace upravi tak, aby odpovidaly casovacim informacim kontejneru. Ty mohou pochazet z ruznych zdroju: z prikazoveho radku (viz volba --default-duration), ze zdrojoveho kontejneru nebo mohou byt odvozeny z bitoveho toku. Note Dosud je to implementovano pouze pro video stopy AVC/H.264. --compression TID:n Vybere metodu komprese, ktera se ma pouzit pro stopu. Tuto metodu musi podporovat take prehravac. Platne hodnoty jsou 'none', 'zlib' a 'mpeg4_p2'/'mpeg4p2'. Metoda komprese 'mpeg4_p2'/'mpeg4p2' je zvlastni metoda zvana 'odstraneni hlavicky', ktera je dostupna pouze pro video stopy MPEG4 cast 2. Pro nektere typy titulku je vychozi komprese 'zlib'. Tuto metodu komprese podporuje take vetsina, ne-li vsechny prehravaci aplikace. Podpora jinych metod komprese nez 'none' neni zarucena. Volby, ktere se vztahuji pouze na video stopy -f, --fourcc TID:FourCC Vynuti FourCC na zadanou hodnotu. Funguje pouze pro video stopy v 'rezimu kompatibility s MS'. --display-dimensions TID:widthxheight Soubory Matroska(TM) obsahuji dve hodnoty, podle nichz ma prehravac pri prehravani skalovat obraz: sirku zobrazeni a vysku zobrazeni. Tyto hodnoty lze nastavit touto volbou, napr. '1:640x480'. Hodnoty lze zadat take volbou --aspect-ratio nebo --aspect-ratio-factor (viz nize). Tyto volby se navzajem vylucuji. --aspect-ratio TID:ratio|width/height Soubory Matroska(TM) obsahuji dve hodnoty, podle nichz ma prehravac pri prehravani skalovat obraz: sirku zobrazeni a vysku zobrazeni. Touto volbou mkvmerge(1) automaticky vypocita sirku a vysku zobrazeni podle puvodni sirky a vysky obrazu a pomeru stran zadaneho touto volbou. Pomer lze zadat bud jako desetinne cislo ratio, nebo jako zlomek 'width/height', napr. '16/9'. Hodnoty lze zadat take volbami --aspect-ratio-factor nebo --display-dimensions (viz vyse a nize). Tyto volby se navzajem vylucuji. --aspect-ratio-factor TID:factor|n/d Pomer stran lze nastavit take zadanim factor. Puvodni pomer stran se nejprve vynasobi timto factor a vysledek se pouzije jako cilovy pomer stran. Hodnoty lze zadat take volbami --aspect-ratio nebo --display-dimensions (viz vyse). Tyto volby se navzajem vylucuji. --cropping TID:left,top,right,bottom Nastavuje parametry oriznuti pixelu video stopy na zadane hodnoty. --color-matrix-coefficients TID:n Nastavi koeficienty matice videa pouzivane k odvozeni hodnot jasu a chrominance z cervenych, zelenych a modrych primarnich barev. Parametr n je cele cislo v rozsahu od 0 do 10. Platne hodnoty a jejich vyznam jsou: 0: GBR, 1: BT709, 2: neurceno, 3: vyhrazeno, 4: FCC, 5: BT470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: YCOCG, 9: BT2020 s nekonstantnim jasem, 10: BT2020 s konstantnim jasem --color-bits-per-channel TID:n Nastavi pocet kodovanych bitu pro barevny kanal. Hodnota 0 oznacuje, ze pocet bitu neni urcen. --chroma-subsample TID:hori,vert Pocet pixelu, ktere se maji odebrat v kanalech Cr a Cb na kazdy pixel, ktery se neodebere vodorovne/svisle. Priklad: U videa s podvzorkovanim chrominance 4:2:0 ma byt parametr nastaven na TID:1,1. --cb-subsample TID:hori,vert Pocet pixelu, ktere se maji v kanalu Cb odstranit na kazdy pixel neodstraneny ve vodorovnem/svislem smeru. Tato hodnota se pricita k --chroma-subsample. Priklad: U videa s podvzorkovanim chrominance 4:2:1 ma byt parametr --chroma-subsample nastaven na TID:1,0 a podvzorkovani Cb na TID:1,0. --chroma-siting TID:hori,vert Nastavi zpusob vodorovneho/svisleho umisteni chrominance (0: neurceno, 1: spolecne umisteno nahore, 2: polovicni posun). --color-range TID:n Nastavi oriznuti barevnych rozsahu (0: neurceno, 1: vysilaci rozsah, 2: plny rozsah (bez oriznuti), 3: urceno pomoci MatrixCoefficients/TransferCharacteristics). --color-transfer-characteristics TID:n Prenosove charakteristiky videa. Platne hodnoty a jejich vyznam jsou: 0: vyhrazeno, 1: ITU-R BT.709, 2: neurceno, 3: vyhrazeno, 4: krivka gama 2.2, 5: krivka gama 2.8, 6: SMPTE 170M, 7: SMPTE 240M, 8: linearni, 9: log, 10: odmocnina z log, 11: IEC 61966-2-4, 12: rozsireny barevny gamut ITU-R BT.1361, 13: IEC 61966-2-1, 14: ITU-R BT.2020 10 bitu, 15: ITU-R BT.2020 12 bitu, 16: SMPTE ST 2084, 17: SMPTE ST 428-1; 18: ARIB STD-B67 (HLG) --color-primaries TID:n Nastavuje primarni barvy videa. Platne hodnoty a jejich vyznam jsou: 0: vyhrazeno, 1: ITU-R BT.709, 2: neurceno, 3: vyhrazeno, 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: luminofory JEDEC P22 --max-content-light TID:n Nastavi maximalni jas jednoho pixelu (Maximum Content Light Level) v kandelach na metr ctverecni (cd/m^2). Hodnota n musi byt nezaporne cele cislo. --max-frame-light TID:n Nastavi maximalni jas jednoho celeho snimku (Maximum Frame-Average Light Level) v kandelach na metr ctverecni (cd/m^2). Hodnota n musi byt nezaporne cele cislo. --chromaticity-coordinates TID:red-x,red-y,green-x,green-y,blue-x,blue-y Nastavuje souradnice chromaticnosti cervene/zelene/modre podle CIE 1931. --white-color-coordinates TID:x,y Nastavuje souradnice chromaticnosti bile podle CIE 1931. --max-luminance TID:float Nastavuje maximalni jas v kandelach na metr ctverecni (cd/m^2). Hodnota by mela byt mensi nez 9999.99. --min-luminance TID:float Nastavuje minimalni jas v kandelach na metr ctverecni (cd/m^2). Hodnota by mela byt mensi nez 999.9999. --projection-type TID:method Nastavi pouzitou metodu projekce videa. Platne hodnoty jsou 0 (obdelnikova projekce), 1 (ekvirektangularni projekce), 2 (projekce mapy krychle) a 3 (sitova projekce). --projection-private TID:data Nastavi soukroma data platna pouze pro urcitou projekci. Data musi byt zadana jako sestnactkova cisla s predponou "0x" nebo bez ni a s mezerami nebo bez nich. --projection-pose-yaw TID:float Urcuje rotaci projekce v ose yaw. --projection-pose-pitch TID:float Urcuje rotaci projekce v ose pitch. --projection-pose-roll TID:float Urcuje rotaci projekce v ose roll. --field-order TID:n Nastavi poradi pulsnimku video stopy s ID stopy TID. Poradi musi byt jedno z nasledujicich cisel: 0: progresivni; 1: prokladane, horni pulsnimek se zobrazi jako prvni a ulozi jako prvni; 2: neurcene poradi pulsnimku; 6: prokladane, dolni pulsnimek se zobrazi jako prvni a ulozi jako prvni; 9: prokladane, dolni pulsnimek se zobrazi jako prvni a horni pulsnimek se ulozi jako prvni; 14: prokladane, horni pulsnimek se zobrazi jako prvni a dolni pulsnimek se ulozi jako prvni --stereo-mode TID:n|symbolic-name Nastavi rezim sterea video stopy s ID stopy TID. Rezim muze byt bud cislo n mezi 0 a 14, nebo symbolicky nazev. Vsechna platna cisla & nazvy lze vypsat volbou --list-stereo-modes. Volby, ktere plati pouze pro textove titulkove stopy --sub-charset TID:character-set Nastavi pro dane ID stopy znakovou sadu pouzivanou pri prevodu titulku do UTF-8. Neni-li zadana, odvodi se znakova sada z aktualniho nastaveni narodniho prostredi. Pro titulky nactene ze souboru Matroska(TM) nebo z proudu Kate neni znakova sada potreba, protoze jsou vzdy ulozeny v UTF-8. Vysvetleni, jak mkvmerge(1) prevadi mezi znakovymi sadami, najdete v oddilu o textovych souborech a znakovych sadach. Tuto volbu lze pro vstupni soubor pouzit vicekrat; pokazde lze vybrat jine ID stopy, takze plati pro nekolik stop. Dalsi volby -i, --identify file-name Necha mkvmerge(1) prozkoumat jediny soubor a oznamit jeho typ, stopy obsazene v souboru a jejich ID stop. Pri pouziti teto volby je jedinym dalsim povolenym argumentem nazev souboru. Vystupni format vysledku lze zmenit volbou --identification-format. -J file-name Toto je pohodlny alias pro "--identification-format json --identify file-name". -F, --identification-format format Urcuje vystupni format pouzivany volbou --identify. Podporovany jsou nasledujici formaty: text (vychozi, neni-li tato volba pouzita) a json. 1. Format text je strucny a citelny pro cloveka. Sklada se z jednoho radku pro kazdou nalezenou polozku (kontejner, stopy, prilohy atd.). Tento format neni urcen ke strojovemu zpracovani. Vystup se prelozi do jazyka pouzivaneho programem mkvmerge(1) (viz take --ui-language). 2. Format json vypisuje strojove citelnou reprezentaci JSON. Tento format se ridi schematem JSON popsanym v nasledujicim souboru: mkvmerge-identification-output-schema-v20.json[3] Vsechny verze schematu JSON jsou dostupne online i ve vydanych archivech zdrojoveho kodu. --probe-range-percentage percentage Typy souboru, jako jsou programove a transportni proudy MPEG (.vob, .m2ts), vyzaduji analyzu urciteho mnozstvi dat, aby bylo mozne rozpoznat vsechny stopy obsazene v souboru. Toto mnozstvi cini 0,3 % velikosti zdrojoveho souboru nebo 10 MB podle toho, ktera hodnota je vetsi. Je-li znamo, ze stopy jsou pritomny, ale nebyly nalezeny, lze touto volbou zmenit procento prohledavanych dat. Minimum 10 MB je pevne vestaveno a nelze je zmenit. --list-audio-emphasis Vypise vsechna platna cisla & jejich odpovidajici symbolicke nazvy pro volbu --audio-emphasis. --list-languages Vypise vsechny jazyky a jejich kody ISO 639-2, ktere lze pouzit s volbou --language. --list-stereo-modes Vypise vsechna platna cisla & jejich odpovidajici symbolicke nazvy pro volbu --stereo-mode. -l, --list-types Vypise podporovane typy vstupnich souboru. --priority priority Nastavi prioritu procesu, s niz mkvmerge(1) bezi. Platne hodnoty jsou 'lowest', 'lower', 'normal', 'higher' a 'highest'. Neni-li zadana zadna hodnota, pouzije se 'normal'. Na systemech podobnych Unixu pouziva mkvmerge(1) funkci nice(2). Hodnoty 'higher' a 'highest' proto muze pouzit pouze superuzivatel. V systemu Windows muze vsechny hodnoty pouzit kazdy uzivatel. Vyber hodnoty 'lowest' zpusobi, ze mkvmerge(1) vedle nejnizsi mozne priority procesu zvoli take prioritu I/O v rezimu necinnosti. --command-line-charset character-set Nastavi znakovou sadu, ze ktere se maji prevadet retezce zadane na prikazovem radku. Vychozi je znakova sada urcena aktualnim narodnim prostredim systemu. Toto nastaveni plati pro argumenty nasledujicich voleb: --title, --track-name a --attachment-description. --output-charset character-set Nastavuje znakovou sadu, do ktere se prevadeji retezce urcene k vystupu. Vychozi je znakova sada dana aktualnim narodnim prostredim systemu. -r, --redirect-output file-name Zapise vsechny zpravy do souboru file-name misto na konzoli. Ackoli to lze snadno provest presmerovanim vystupu, tato volba je potreba v pripadech, kdy terminal vystup pred zapisem do souboru znovu interpretuje. Je respektovana znakova sada nastavena pomoci --output-charset. --no-bom Textove soubory vytvorene & kodovane v nektere z variant UTF obvykle zacinaji znackou poradi bajtu (BOM). Tato volba zakaze zapis teto znacky poradi bajtu. --flush-on-close Dava programu pokyn, aby pri zavirani souboru otevrenych pro zapis vyprazdnil na uloziste vsechna data ulozena v pameti. Lze tim zabranit ztrate dat pri vypadku napajeni nebo obejit urcite problemy v operacnim systemu ci ovladacich. Nevyhodou je, ze multiplexovani bude trvat dele, protoze mkvmerge pred ukoncenim ceka na zapis vsech dat na uloziste. Podrobnou diskusi o vyhodach a nevyhodach najdete v hlasenich c. 2469 a 2480 ve sledovani chyb MKVToolNix. --ui-language code Vynuti pouziti prekladu pro jazyk code (napr. 'de_DE' pro nemecke preklady). Zadanim 'list' jako code program vypise seznam dostupnych prekladu. --abort-on-warnings Ukonci program po vydani prvniho upozorneni. Navratovy kod programu bude 1. --deterministic seed Povoli vytvareni bajtove shodnych souboru, pokud se pouzije stejna verze mkvmerge(1) se stejnymi zdrojovymi soubory, stejnou sadou voleb a stejnou pocatecni hodnotou. V tomto rezimu se nezapisuje pole ,,date" v informacich o useku. Pocatecni hodnota muze byt libovolny retezec a nemusi byt cislem. Vysledek bajtove shodnych souboru je zarucen pouze pri nasledujicich podminkach: 1. Pouziva se stejna verze mkvmerge(1) sestavena se stejnymi verzemi libEBML a libMatroska. 2. Pouzite zdrojove soubory jsou bajtove shodne. 3. Pouziji se stejne volby prikazoveho radku ve stejnem poradi (s vyznamnou vyjimkou --output ...). Pouziti jinych verzi mkvmerge(1) nebo jinych voleb prikazoveho radku muze vest ke stejnemu bajtove shodnemu souboru, neni to vsak zaruceno. --debug topic Zapne ladeni urcite funkce. Tato volba je uzitecna pouze pro vyvojare. --engage feature Zapne experimentalni funkce. Seznam dostupnych funkci lze vyzadat prikazem mkvmerge --engage list. Tyto funkce nejsou urceny pro bezne pouziti. --gui-mode Zapne rezim GUI. V tomto rezimu mohou byt vypisovany specialne formatovane radky, ktere ridicimu GUI sdeluji, co se deje. Tyto zpravy maji format '#GUI#message'. Za zpravou mohou nasledovat dvojice klic/hodnota jako v '#GUI#message#key1=value1#key2=value2...'. Zpravy ani klice se nikdy neprekladaji a vzdy jsou vypisovany anglicky. @options-file.json Nacte dalsi argumenty prikazoveho radku ze souboru options-file. Dalsi informace najdete v oddilu o souborech voleb. Chcete-li pouzit znak @ jako prvni znak argumentu volby, napriklad '--title', musite jej zdvojit pridanim druheho znaku @. Priklad: $ mkvmerge -o midnight-s01e01.mkv --title @@midnight midnight-s01e01.mp4 --capabilities Vypise informace o volitelnych funkcich zahrnutych pri kompilaci a skonci. Prvni radek vystupu bude obsahovat informace o verzi. Kazdy nasledujici radek bude obsahovat prave jedno slovo, jehoz pritomnost oznacuje, ze dana funkce byla zahrnuta pri kompilaci. Jde o tyto funkce: o 'FLAC' -- cteni samostatnych souboru FLAC a zpracovani stop FLAC v jinych kontejnerech, napr. Ogg(TM) nebo Matroska(TM). -h, --help Zobrazi informace o pouziti a ukonci se. -V, --version Zobrazi informace o verzi a ukonci se. POUzITi U kazdeho souboru muze uzivatel vybrat, ktere stopy ma mkvmerge(1) prevzit. Vsechny se vlozi do souboru zadaneho volbou -o. Seznam znamych (a podporovanych) zdrojovych formatu lze ziskat volbou -l. Important Poradi voleb prikazoveho radku je dulezite. Pokud program pouzivate poprve, prectete si oddil "Poradi voleb". POrADi VOLEB Poradi, v nemz se zadavaji volby, je u nekterych voleb dulezite. Volby spadaji do dvou kategorii: 1. Volby, ktere ovlivnuji cely program a nejsou svazany s zadnym vstupnim souborem. Patri mezi ne mimo jine --command-line-charset, --output nebo --title. Na prikazovem radku mohou byt uvedeny kdekoli. 2. Volby, ktere ovlivnuji jeden vstupni soubor nebo jednu stopu ve vstupnim souboru. Vsechny tyto volby plati pro nasledujici vstupni soubor na prikazovem radku. Vsechny volby platne pro stejny vstupni soubor (nebo pro stopy ze stejneho vstupniho souboru) lze zapsat v libovolnem poradi, pokud jsou vsechny uvedeny pred nazvem tohoto vstupniho souboru. Priklady voleb platnych pro vstupni soubor jsou --no-chapters nebo --chapter-charset. Priklady voleb platnych pro jednu stopu jsou --default-duration nebo --language. Volby se zpracovavaji zleva doprava. Objevi-li se volba ve stejnem rozsahu vicekrat, pouzije se jeji posledni vyskyt. V nasledujicim prikladu se proto nazev nastavi na "Something else": $ mkvmerge -o output.mkv --title 'This and that' input.avi --title 'Something else' Nasledujici priklad ukazuje, ze dvoji pouziti volby --language je v poradku, protoze je pouzita v ruznych rozsazich. Prestoze se obe pouziti vztahuji ke stejnemu ID stopy, plati pro ruzne vstupni soubory, a maji proto ruzne rozsahy: $ mkvmerge -o output.mkv --language 0:fre francais.ogg --language 0:deu deutsch.ogg PriKLADY Predpokladejme, ze mate soubor MyMovie.avi a zvukovou stopu v samostatnem souboru, napr. 'MyMovie.wav'. Nejprve chcete zvuk zakodovat do OggVorbis(TM): $ oggenc -q4 -oMyMovie.ogg MyMovie.wav Po nekolika minutach muzete spojit video a zvuk: $ mkvmerge -o MyMovie-with-sound.mkv MyMovie.avi MyMovie.ogg Obsahuje-li vas soubor AVI jiz zvukovou stopu, zkopiruje se take (pokud mkvmerge(1) dany zvukovy format podporuje). Chcete-li tomu zabranit, jednoduse pouzijte $ mkvmerge -o MyMovie-with-sound.mkv -A MyMovie.avi MyMovie.ogg Po chvili premysleni vyextrahujete dalsi zvukovou stopu, napriklad komentar rezisera nebo stopu v jinem jazyce, do souboru 'MyMovie-add-audio.wav'. Znovu ji zakodujte a spojte s druhym souborem: $ oggenc -q4 -oMyMovie-add-audio.ogg MyMovie-add-audio.wav $ mkvmerge -o MM-complete.mkv MyMovie-with-sound.mkv MyMovie-add-audio.ogg Stejneho vysledku lze dosahnout pomoci $ mkvmerge -o MM-complete.mkv -A MyMovie.avi MyMovie.ogg MyMovie-add-audio.ogg Nyni spustte mplayer(TM) a uzivejte si vysledek. Mate-li vice zvukovych stop (nebo dokonce video stop), muzete programu mplayer(TM) volbami '-vid' a '-aid' urcit, kterou stopu ma prehrat. Cislovani zacina od 0 a nerozlisuje mezi videem a zvukem. Potrebujete-li zvukovou stopu synchronizovat, lze to snadno provest. Nejprve zjistete ID stopy Vorbis pomoci $ mkvmerge --identify outofsync.ogg Nyni muzete toto ID pouzit v nasledujicim prikazovem radku: $ mkvmerge -o goodsync.mkv -A source.avi -y 12345:200 outofsync.ogg Tim by se na zacatek zvukove stopy s ID 12345 prevzate ze souboru 'outofsync.ogg' pridalo 200 ms ticha. Nektere filmy zacinaji spravne synchronizovane, ale postupne se rozchazeji. Pro takove filmy lze zadat faktor zpozdeni, ktery se pouzije na vsechna casova razitka -- zadna data se nepridaji ani neodeberou. Je-li faktor prilis velky nebo prilis maly, bude vysledek chybny. Napriklad jedna mnou prekodovana epizoda byla 0.2 sekundy mimo synchronizaci na konci filmu, ktery mel 77340 snimku. Pri 29.97fps odpovida 0.2 sekundy priblizne 6 snimkum. Pouzil jsem tedy $ mkvmerge -o goodsync.mkv -y 23456:0,77346/77340 outofsync.mkv Vysledek byl v poradku. Volby synchronizace lze stejnym zpusobem pouzit i pro titulky. Pro textove titulky muzete pouzit bud nektery program pro Windows (napriklad SubRipper(TM)), nebo balicek subrip(TM), ktery se nachazi ve zdrojich programu transcode(1) v adresari 'contrib/subrip'. Obecny postup je nasledujici: 1. extrahovat ze zdroje nezpracovany proud titulku: $ tccat -i /path/to/copied/dvd/ -T 1 -L | tcextract -x ps1 -t vob -a 0x20 | subtitle2pgm -o mymovie 2. prevest vysledne obrazky PGM na text pomoci gocr: $ pgm2txt mymovie 3. zkontrolovat pravopis vyslednych textovych souboru: $ ispell -d american *txt 4. prevest textove soubory na soubor SRT: $ srttool -s -w -i mymovie.srtx -o mymovie.srt Vysledny soubor lze pouzit jako dalsi vstupni soubor pro mkvmerge(1): $ mkvmerge -o mymovie.mkv mymovie.avi mymovie.srt Chcete-li zadat jazyk urcite stopy, lze to snadno provest. Nejprve zjistete kod ISO 639-2 sveho jazyka. mkvmerge(1) vam muze vsechny tyto kody vypsat: $ mkvmerge --list-languages Vyhledejte v seznamu potrebne jazyky. Predpokladejme, ze jste do souboru Matroska(TM) vlozili dve zvukove stopy, chcete nastavit jejich jazykove kody a jejich ID stop jsou 2 a 3. Lze to provest prikazem $ mkvmerge -o with-lang-codes.mkv --language 2:ger --language 3:dut without-lang-codes.mkv Jak vidite, volbu --language lze pouzit vicekrat. Mozna take chcete, aby prehravac ve vychozim nastaveni pouzival nizozemstinu. Mate rovnez dalsi titulky, napriklad anglicke a francouzske, a chcete, aby prehravac ve vychozim nastaveni zobrazoval francouzske. Lze to provest prikazem $ mkvmerge -o with-lang-codes.mkv --language 2:ger --language 3:dut --default-track-flag 3 without-lang-codes.mkv --language 0:eng english.srt --default-track-flag 0 --language 0:fre french.srt Nevidite-li ve vystupu mkvinfo(1) zadane priznaky jazyka nebo vychozi stopy, prectete si oddil o vychozich hodnotach. Vypne kompresi pro vstupni soubor. $ mkvmerge -o no-compression.mkv --compression -1:none MyMovie.avi --compression -1:none mymovie.srt ID STOP Bezna ID stop Nektere volby mkvmerge(1) vyzaduji ID stopy k urceni, na kterou stopu se maji pouzit. Tato ID stop vypisuji ctecky pri demultiplexovani aktualniho vstupniho souboru nebo se vypisi pri spusteni mkvmerge(1) s volbou --identify. Priklad takoveho vystupu: $ mkvmerge -i v.mkv File 'v.mkv': container: Matroska(TM) Track ID 0: video (V_MS/VFW/FOURCC, DIV3) Track ID 1: audio (A_MPEG/L3) Nezamenujte ID prirazena stopam vkladanym do vystupniho souboru MKV s ID stop vstupnich souboru. Pro volby vyzadujici tyto hodnoty se pouzivaji pouze ID stop vstupnich souboru. Kazdy vstupni soubor ma navic vlastni sadu ID stop. ID stop souboru 'file1.ext' oznamena prikazem 'mkvmerge --identify' se proto nemeni bez ohledu na pocet ostatnich vstupnich souboru nebo pozici, na ktere je 'file1.ext' pouzit. ID stop se prirazuji takto: o Soubory AVI: video stopa ma ID 0. Zvukove stopy dostavaji ID vzestupne od 1. o Soubory AAC, AC-3, MP3, SRT a WAV: jedina 'stopa' v takovem souboru dostane ID 0. o Vetsina ostatnich souboru: ID stop se prirazuji v poradi, v jakem se stopy v souboru najdou, od 0. ID stop se pouzivaji u voleb, jejichz popis obsahuje 'TID'. Pouzivaji je take nasledujici volby: --audio-tracks, --video-tracks, --subtitle-tracks, --button-tracks a --track-tags. Zvlastni ID stop Existuje nekolik ID se zvlastnim vyznamem, ktera se nevyskytuji ve vystupu identifikace. Zvlastni ID stopy '-1' je zastupny znak a pouzije zadanou volbu na vsechny stopy nactene ze vstupniho souboru. Zvlastni ID stopy '-2' odkazuje na kapitoly ve zdrojovem souboru. Toto zvlastni ID v soucasnosti pouziva pouze volba --sync. Jako alternativu k --sync -2:... lze pouzit volbu --chapter-sync .... ZPRACOVaNi JAZYKu Matroska(TM) podporuje dva ruzne typy jazykovych prvku: stary, zastaraly prvek "Language" obsahujici tripismenne kody ISO 639-2 a nove znacky "LanguageIETF" obsahujici jazykove znacky IETF BCP 47. Vsechny volby mkvmerge(1), ktere prijimaji jazyk, prijimaji jazykovou znacku BCP 47. Kdykoli je to mozne, mkvmerge(1) odvodi hodnotu zastaraleho prvku "Language" z jazykovych znacek BCP 47. Pri identifikaci souboru v rezimu JSON se existujici prvky "LanguageIETF" v hlavickach stop vypisi jako vlastnost stopy language_ietf. Pri zapisu souboru mkvmerge(1) vzdy zapise prvky "LanguageIETF", "ChapLanguageIETF" a "TagLanguageIETF" (posledni dva pouze tehdy, zapisuji-li se kapitoly, respektive stitky). Vedle techto prvku se zapisi odpovidajici stare prvky, ktere budou nastaveny na cast jazykove znacky BCP 47 tvorenou kodem ISO 639-2. Je-li napriklad jazyk stopy nastaven na sr-Cyrl-RS, "LanguageIETF" se nastavi na sr-Cyrl-RS a stary prvek "Language" na srp. Pri cteni existujicich souboru (souboru Matroska, souboru kapitol nebo stitku XML atd.), ktere jiz obsahuji prvky "...LanguageIETF", se tyto prvky zachovaji. Jinak se prvky "...LanguageIETF" pridaji na zaklade voleb prikazoveho radku a ostatnich existujicich zastaralych prvku "...Language". Vytvareni novych prvku lze zcela zakazat volbou prikazoveho radku --disable-language-ietf, ktera pusobi na vsechny tri nove prvky. Parametrem --normalize-language-ietf lze zvolit metodu normalizace pouzivanou pro rozsirene jazykove podznacky. TEXTOVe SOUBORY A PrEVODY ZNAKOVyCH SAD Note Tento oddil plati pro vsechny programy v MKVToolNix, i kdyz zminuje pouze mkvmerge(1). Uvod Veskery text v souboru Matroska(TM) je kodovan v UTF-8. mkvmerge(1) proto musi prevadet kazdy nacteny textovy soubor i kazdy text zadany na prikazovem radku z urcite znakove sady do UTF-8. Zaroven to znamena, ze vystup mkvmerge(1) musi byt z UTF-8 preveden zpet do teto znakove sady, napriklad pri pouziti jineho nez anglickeho prekladu s volbou --ui-language nebo u textu pochazejiciho ze souboru Matroska(TM). mkvmerge(1) tento prevod provadi automaticky podle pritomnosti znacky poradi bajtu (zkracene BOM) nebo aktualniho narodniho prostredi systemu. Zpusob odvozeni znakove sady z narodniho prostredi zavisi na operacnim systemu, na kterem mkvmerge(1) bezi. Znacky poradi bajtu (BOM) Textove soubory zacinajici znackou BOM jsou jiz zakodovany v nektere reprezentaci UTF. mkvmerge(1) podporuje nasledujicich pet rezimu: UTF-8, UTF-16 s poradim bajtu Little Endian a Big Endian a UTF-32 s poradim bajtu Little Endian a Big Endian. Textove soubory s BOM se automaticky prevadeji do UTF-8. Vsechny parametry, ktere by jinak nastavovaly znakovou sadu takoveho souboru (napr. --sub-charset), se bez upozorneni ignoruji. Linux a systemy podobne Unixu vcetne macOS Na systemech podobnych Unixu pouziva mkvmerge(1) systemove volani setlocale(3), ktere pouziva promenne prostredi LANG, LC_ALL a LC_CTYPE. Vyslednou znakovou sadou je casto UTF-8 nebo nektera ze sady ISO-8859-*; pouziva se pro vsechny operace s textovymi soubory, pro kodovani retezcu na prikazovem radku i pro vystup do konzole. Windows V systemu Windows se vychozi znakova sada pouzivana k prevodu textovych souboru urcuje volanim systemove funkce GetACP(). Prikazovy radek se nacita funkci GetCommandLineW(), ktera jiz vraci retezec Unicode. Volba --command-line-charset se proto v systemu Windows ignoruje. Pri vystupu do konzole nastavaji tri pripady: 1. Je-li vystup presmerovan volbou --redirect-output, je vychozi znakovou sadou UTF-8. Lze ji zmenit volbou --output-charset. 2. Je-li vystup presmerovan samotnym programem cmd.exe, napr. pomoci mkvinfo file.mkv > info.txt, je znakovou sadou vzdy UTF-8 a nelze ji zmenit. 3. Jinak (pri zapisu primo do konzole) se pouziva funkce Windows WriteConsoleW() a volba --output-charset se ignoruje. Konzole by mela umet vypsat vsechny znaky Unicode, pro nez je nainstalovana odpovidajici jazykova podpora (napr. cinske znaky se nemusi zobrazit v anglickych verzich Windows). Volby prikazoveho radku Pro zadani znakovych sad jsou k dispozici nasledujici volby: o --sub-charset pro textove soubory titulku a pro textove titulkove stopy ulozene v kontejnerovych formatech, u nichz nelze znakovou sadu jednoznacne urcit (napr. soubory Ogg), o --chapter-charset pro textove soubory kapitol a pro kapitoly a nazvy souboru ulozene v kontejnerovych formatech, u nichz nelze znakovou sadu jednoznacne urcit (napr. soubory Ogg pro informace o kapitolach, nazvy stop a souboru atd.; soubory MP4 pro informace o kapitolach), o --command-line-charset pro vsechny retezce na prikazovem radku, o --output-charset pro vsechny retezce zapisovane do konzole nebo do souboru, je-li vystup presmerovan volbou --redirect-output. Na systemech jinych nez Windows je vychozi znakovou sadou vystupu aktualni znakova sada systemu. V systemu Windows je vychozi UTF-8 jak pri presmerovani volbou --redirect-output, tak pri presmerovani samotnym programem cmd.exe, napr. mkvinfo file.mkv > info.txt. SOUBORY VOLEB Soubor voleb je soubor, ze ktereho muze mkvmerge(1) nacist dalsi argumenty prikazoveho radku. Lze jim obejit urcita omezeni shellu nebo operacniho systemu pri spousteni externich programu, napriklad omezenou delku prikazoveho radku. Soubor voleb obsahuje data ve formatu JSON. Jeho obsah musi byt platne pole JSON tvorene vyhradne retezci JSON. Soubor musi byt kodovan v UTF-8. Nemel by zacinat znackou poradi bajtu (BOM), je-li vsak pritomna, preskoci se. Pravidla pro uvozovani zvlastnich znaku uvnitr JSON stanovuje oficialni specifikace JSON, RFC 7159[4]. Samotny nazev souboru voleb musi byt zadan jako argument prikazoveho radku s predponou tvorenou znakem '@'. Prikazovy radek 'mkvmerge -o "my file.mkv" -A "a movie.avi" sound.ogg' lze prevest na nasledujici soubor voleb JSON nazvany napriklad 'options.json': [ "-o", "c:\\Matroska\\my file.mkv", "--title", "#65", "-A", "a movie.avi", "sound.ogg" ] Odpovidajici prikaz by potom byl 'mkvmerge @options.json'. PROPOJOVaNi SOUBORu Matroska(TM) podporuje propojovani souboru, jimz se jednoduse urcuje, ze urcity soubor je predchudcem nebo naslednikem aktualniho souboru. Presneji receno nejsou ve skutecnosti propojeny soubory, ale useky Matroska(TM). Protoze vetsina souboru bude pravdepodobne obsahovat pouze jeden usek Matroska(TM), pouzivaji nasledujici vysvetleni pojem 'propojovani souboru', prestoze presnejsi by bylo 'propojovani useku'. Kazdy usek je identifikovan jedinecnym 128bitovym UID useku. Toto UID automaticky vytvari mkvmerge(1). Propojeni se provadi predevsim vlozenim UID useku (zkracene SID) predchoziho/nasledujiciho souboru do informaci v hlavicce useku. mkvinfo(1) tyto identifikatory SIDs vypise, pokud je najde. Je-li soubor rozdelen na nekolik mensich a pouzije se propojovani, casova razitka nezacnou znovu od 0, ale pokracuji od mista, kde skoncil predchozi soubor. Tim se zachova absolutni cas, i kdyz predchozi soubory nejsou dostupne (napr. pri streamovani). Neni-li propojovani pouzito, mela by casova razitka kazdeho souboru zacinat od 0. Ve vychozim nastaveni mkvmerge(1) propojovani souboru nepouziva. Chcete-li je pouzit, muzete je zapnout volbou --link. Tato volba ma vyznam pouze tehdy, je-li aktivovano take rozdeleni. Bez ohledu na to, zda je rozdeleni aktivni, muze uzivatel programu mkvmerge(1) urcit, aby vytvorene soubory propojil s konkretnimi SIDs. K tomu slouzi volby --link-to-previous a --link-to-next. Tyto volby prijimaji SID useku ve formatu vypisovanem programem mkvinfo(1): 16 sestnactkovych cisel mezi 0x00 a 0xff, z nichz kazde ma predponu '0x', napr. '0x41 0xda 0x73 0x66 0xd9 0xcf 0xb2 0x1e 0xae 0x78 0xeb 0xb4 0x5e 0xca 0xb3 0x93'. Alternativne lze pouzit kratsi podobu: 16 sestnactkovych cisel mezi 0x00 a 0xff bez predpon '0x' a bez mezer, napr. '41da7366d9cfb21eae78ebb45ecab393'. Je-li pouzito rozdeleni, prvni soubor se propoji s SID zadanym volbou --link-to-previous a posledni soubor s SID zadanym volbou --link-to-next. Neni-li rozdeleni pouzito, jediny vystupni soubor se propoji s obema identifikatory SIDs. VyCHOZi HODNOTY Specifikace Matroska(TM) stanovuje pro nektere prvky vychozi hodnotu. Je-li hodnota prvku rovna jeho vychozi hodnote, prvek se do souboru obvykle nezapisuje, aby se setrilo mistem. Prvky, ktere muze uzivatel postradat ve vystupu mkvinfo(1), jsou language a default track flag. Vychozi hodnotou prvku language je anglictina ('eng') a vychozi hodnotou prvku default track flag je true. Pouzijete-li tedy pro stopu --language 0:eng, ve vystupu mkvinfo(1) se neobjevi. PriLOHY Mozna chcete se souborem Matroska(TM) uchovat take fotografie nebo pouzivate titulky SSA a potrebujete zvlastni, velmi vzacne pismo TrueType(TM). V takovych pripadech lze tyto soubory prilozit k souboru Matroska(TM). Nebudou k souboru pouze pripojeny, ale vlozi se do nej. Prehravac pak muze tyto soubory zobrazit (v pripade 'fotografii') nebo je pouzit k vykresleni titulku (v pripade 'pisem TrueType(TM)'). Zde je priklad, jak k vystupnimu souboru prilozit fotografii a pismo TrueType(TM): $ 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 Je-li jako vstupni soubor pouzit soubor Matroska(TM) obsahujici prilohy, mkvmerge(1) zkopiruje prilohy do noveho souboru. Vyber priloh, ktere se maji zkopirovat a ktere nikoli, lze zmenit volbami --attachments a --no-attachments. KAPITOLY System kapitol Matroska(TM) je propracovanejsi nez starsi zavedeny system pouzivany v souborech OGM. Uplnou specifikaci najdete na webu Matroska(TM)[1]. mkvmerge(1) podporuje jako vstup dva druhy souboru kapitol. Prvni format, nazyvany ,,jednoduchy format kapitol", je stejny jako format ocekavany nastroji OGM. Druhy je format kapitol zalozeny na XML, ktery podporuje vsechny funkce kapitol Matroska(TM). Krome samostatnych souboru kapitol umi mkvmerge(1) nacitat kapitoly take z jinych formatu souboru (napr. MP4, Ogg, Blu-ray nebo DVD). Jednoduchy format kapitol Tento format se sklada z dvojic radku zacinajicich v tomto poradi 'CHAPTERxx=' a 'CHAPTERxxNAME='. Prvni obsahuje pocatecni casove razitko a druhy nazev. Priklad: 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) prevede kazdou dvojici radku na jeden prvek Matroska(TM) ChapterAtom. Nenastavi zadny prvek ChapterTrackNumber, coz znamena, ze vsechny kapitoly plati pro vsechny stopy v souboru. Protoze jde o textovy soubor, muze byt nutny prevod znakove sady. Vysvetleni prevodu mezi znakovymi sadami v programu mkvmerge(1) najdete v oddilu o textovych souborech a znakovych sadach. Format kapitol zalozeny na XML Format kapitol zalozeny na XML vypada jako v nasledujicim prikladu: <?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> Tento format umoznuje tri veci, ktere v jednoduchem formatu kapitol mozne nejsou: 1. lze nastavit casove razitko konce kapitoly, 2. kapitoly lze vnorovat, 3. lze nastavit jazyk a zemi. Distribuce MKVToolNix obsahuje v podadresari doc nekolik ukazkovych souboru, ktere lze pouzit jako zaklad. Nasledujici seznam uvadi podporovane znacky XML, jejich datove typy a pripadne platny rozsah jejich hodnot: Chapters (hlavni) EditionEntry (hlavni) EditionUID (cele cislo bez znamenka, platny rozsah: 1 <= hodnota) EditionFlagHidden (cele cislo bez znamenka, platny rozsah: 0 <= hodnota <= 1) EditionFlagDefault (cele cislo bez znamenka, platny rozsah: 0 <= hodnota <= 1) EditionFlagOrdered (cele cislo bez znamenka, platny rozsah: 0 <= hodnota <= 1) ChapterAtom (hlavni) ChapterAtom (hlavni) ChapterUID (cele cislo bez znamenka, platny rozsah: 1 <= hodnota) ChapterTimeStart (cele cislo bez znamenka) ChapterTimeEnd (cele cislo bez znamenka) ChapterFlagHidden (cele cislo bez znamenka, platny rozsah: 0 <= hodnota <= 1) ChapterFlagEnabled (cele cislo bez znamenka, platny rozsah: 0 <= hodnota <= 1) ChapterSegmentUID (binarni, platny rozsah: 1 <= delka v bajtech) ChapterSegmentEditionUID (cele cislo bez znamenka, platny rozsah: 1 <= hodnota) ChapterPhysicalEquiv (cele cislo bez znamenka) ChapterTrack (hlavni) ChapterTrackNumber (cele cislo bez znamenka, platny rozsah: 1 <= hodnota) ChapterDisplay (hlavni) ChapterString (retezec UTF-8) ChapterLanguage (retezec UTF-8) ChapterCountry (retezec UTF-8) ChapterProcess (hlavni) ChapterProcessCodecID (cele cislo bez znamenka) ChapterProcessPrivate (binarni) ChapterProcessCommand (hlavni) ChapterProcessTime (cele cislo bez znamenka) ChapterProcessData (binarni) Nacitani kapitol z disku Blu-ray mkvmerge(1) umi nacitat kapitoly z nesifrovanych disku Blu-ray. K tomu lze parametru --chapters predat cestu k nekteremu seznamu stop MPLS. Priklad: --chapters /srv/blurays/BigBuckBunny/BDMV/PLAYLIST/00001.mpls Nacitani kapitol z disku DVD Je-li MKVToolNix zkompilovan s knihovnou libdvdread(TM), umi mkvmerge(1) nacitat kapitoly z disku DVD. K tomu lze parametru --chapters predat cestu k nekteremu adresari nebo souboru na DVD. Protoze DVD muze obsahovat vice titulu a kazdy titul ma vlastni sadu kapitol, lze na konec argumentu s nazvem souboru pripojit dvojtecku a pozadovane cislo titulu. Vychozi cislo titulu je 1. Priklad: --chapters /srv/dvds/BigBuckBunny/VIDEO_TS:2 Obecne poznamky Pri rozdeleni souboru mkvmerge(1) spravne upravi take kapitoly. Kazdy soubor tedy obsahuje pouze polozky kapitol, ktere se na nej vztahuji, a casova razitka se posunou tak, aby odpovidala novym casovym razitkum jednotlivych vystupnich souboru. mkvmerge(1) umi kopirovat kapitoly ze zdrojovych souboru Matroska(TM), pokud to neni vyslovne zakazano volbou --no-chapters. Kapitoly ze vsech zdroju (souboru Matroska(TM), souboru Ogg, souboru MP4 a textovych souboru kapitol) se obvykle neslucuji, ale skonci v samostatnych prvcich ChapterEditions. Pouze pokud jsou kapitoly nacteny z nekolika souboru Matroska(TM) nebo XML, ktere sdileji stejna UID edic, slouci se do jedineho prvku ChapterEdition. Je-li takove slouceni pozadovano i v jinych pripadech, musi uzivatel nejprve pomoci mkvextract(1) extrahovat kapitoly ze vsech zdroju, rucne sloucit soubory XML a pote je multiplexovat. STiTKY Uvod System stitku Matroska(TM) je podobny systemum jinych kontejneru: jde o sadu dvojic KEY=VALUE. V Matroska(TM) vsak mohou byt tyto stitky take vnorene a KEY i VALUE jsou samostatne prvky. Ukazkovy soubor example-tags-2.xml znazornuje pouziti tohoto systemu. Rozsah platnosti stitku Stitky Matroska(TM) se automaticky nevztahuji na cely soubor. Mohou se na nej vztahovat, ale mohou se take vztahovat na ruzne casti souboru: na jednu ci vice stop, jednu ci vice kapitol, nebo dokonce na kombinaci obojiho. Dalsi podrobnosti uvadi specifikace Matroska(TM)[5]. Dulezite je, ze stitky jsou se stopami nebo kapitolami propojeny prostrednictvim prvku stitku Matroska(TM) Targets a ze UID pouzita k tomuto propojeni nejsou ID stop, ktera mkvmerge(1) pouziva na jinych mistech. Pouzivaji se naopak UID, ktera mkvmerge(1) automaticky vypocita (pochazi-li stopa z jineho formatu nez Matroska(TM)), nebo ktera zkopiruje ze zdrojoveho souboru, je-li zdrojem stopy soubor Matroska(TM). Proto je obtizne pred predanim souboru programu mkvmerge(1) zjistit, ktera UID v souboru stitku pouzit. mkvmerge(1) nabizi dve volby pro pridavani stitku do souboru Matroska(TM): --global-tags a --tags. Rozdil spociva v tom, ze prvni volba, --global-tags, odstrani vsechny vyse uvedene prvky Targets, a stitky se proto budou vztahovat na cely soubor. Druha volba, --tags, automaticky vlozi UID, ktere mkvmerge(1) vytvori pro stopu zadanou casti TID volby --tags. Priklad Predpokladejme, ze chcete pridat stitky k video stope nactene ze souboru AVI. Prikaz mkvmerge --identify file.avi oznami, ze ID video stopy (nezamenujte toto ID s UID) je 0. Vytvorite tedy soubor stitku, vynechate vsechny prvky Targets a spustite mkvmerge(1): $ mkvmerge -o file.mkv --tags 0:tags.xml file.avi Format souboru stitku mkvmerge(1) podporuje format souboru stitku zalozeny na XML. Format je velmi tesne odvozen od specifikace Matroska(TM)[5]. Binarni i zdrojova distribuce MKVToolNix obsahuji ukazkovy soubor example-tags-2.xml, ktery jednoduse uvadi vsechny zname stitky a lze jej pouzit jako zaklad skutecnych souboru stitku. Zakladni pravidla: o Korenovym prvkem musi byt <Tags>. o Jeden logicky stitek je obsazen v jedne dvojici <Tag> znacek XML. o Bile znaky bezprostredne pred obsahem stitku a za nim se ignoruji. Datove typy Novy system stitku Matroska(TM) zna pouze dva datove typy: retezec UTF-8 a binarni typ. Prvni se pouziva pro nazev stitku a prvek <String>, zatimco binarni typ se pouziva pro prvek <Binary>. Protoze samotna binarni data nelze vlozit do souboru XML, podporuje mkvmerge(1) dva jine zpusoby jejich ulozeni. Zacina-li obsah znacky XML znakem '@', povazuje se nasledujici text za nazev souboru. Obsah odpovidajiciho souboru se zkopiruje do prvku Matroska(TM). Jinak se ocekava, ze data budou kodovana pomoci Base64. Toto kodovani prevadi binarni data na omezenou sadu znaku ASCII a pouziva se napriklad v e-mailovych programech. mkvextract(1) vypise binarni prvky jako data kodovana pomoci Base64. Zastaraly system stitku zna nekolik dalsich datovych typu, ktere jsou uvedeny v oficialni specifikaci stitku Matroska(TM). Protoze mkvmerge(1) tento system jiz nepodporuje, nejsou zde tyto typy popsany. Zname znacky pro format souboru XML Nasledujici seznam uvadi podporovane znacky XML, jejich datove typy a pripadne platny rozsah jejich hodnot: Tags (hlavni) Tag (hlavni) Targets (hlavni) TargetTypeValue (cele cislo bez znamenka) TargetType (retezec UTF-8) TrackUID (cele cislo bez znamenka) EditionUID (cele cislo bez znamenka) ChapterUID (cele cislo bez znamenka) AttachmentUID (cele cislo bez znamenka) Simple (hlavni) Simple (hlavni) Name (retezec UTF-8) TagLanguage (retezec UTF-8) DefaultLanguage (cele cislo bez znamenka) String (retezec UTF-8) Binary (binarni) INFORMACE O uSEKU Pomoci souboru XML s informacemi o useku lze nastavit urcite hodnoty v poli hlavicky "informace o useku" souboru Matroska(TM). Zadnou z techto hodnot nelze nastavit jinymi volbami prikazoveho radku. Jina pole hlavicky "informace o useku" lze nastavit volbami prikazoveho radku, nikoli vsak souborem XML. Patri sem napriklad volby --title a --timestamp-scale. Nektere dalsi prvky nelze nastavit ani volbami prikazoveho radku, ani soubory XML. Patri mezi ne nasledujici prvky: DateUTC (znamy take jako "datum multiplexovani"), MuxingApp, WritingApp a Duration. Vzdy je nastavuje samotny mkvmerge(1). Nasledujici seznam uvadi podporovane znacky XML, jejich datove typy a pripadne platny rozsah jejich hodnot: Info (hlavni) SegmentUID (binarni, platny rozsah: delka v bajtech == 16) SegmentFilename (retezec UTF-8) PreviousSegmentUID (binarni, platny rozsah: delka v bajtech == 16) PreviousSegmentFilename (retezec UTF-8) NextSegmentUID (binarni, platny rozsah: delka v bajtech == 16) NextSegmentFilename (retezec UTF-8) SegmentFamily (binarni, platny rozsah: delka v bajtech == 16) ChapterTranslate (hlavni) ChapterTranslateEditionUID (cele cislo bez znamenka) ChapterTranslateCodec (cele cislo bez znamenka) ChapterTranslateID (binarni) USPOraDaNi SOUBORU MATROSKA(TM) Usporadani souboru Matroska(TM) je pomerne flexibilni. mkvmerge(1) vytvori soubor predem stanovenym zpusobem. Vysledny soubor vypada takto: [hlavicka EBML] [usek {hlavicka vyhledavani c. 1} [informace o useku] [informace o stopach] {prilohy} {kapitoly} [cluster 1] {cluster 2} ... {cluster n} {indexy} {hlavicka vyhledavani c. 2} {stitky}] Prvky ve slozenych zavorkach jsou volitelne a zavisi na obsahu a pouzitych volbach. Nekolik poznamek: o Prvek hlavicky vyhledavani c. 1 obsahuje pouze maly pocet prvku urovne 1, a to jen tehdy, pokud skutecne existuji: prilohy, kapitoly, indexy, stitky a prvek hlavicky vyhledavani c. 2. Starsi verze mkvmerge(1) ukladaly do tohoto prvku hlavicky vyhledavani take clustery. Proto bylo nutne nepresnym odhadem vyhradit dostatek mista, coz casto selhalo. Nyni jsou clustery ulozeny pouze v prvku hlavicky vyhledavani c. 2 a prvek hlavicky vyhledavani c. 1 odkazuje na prvek hlavicky vyhledavani c. 2. o Prvky priloh, kapitol a stitku jsou pritomny pouze tehdy, pokud byly pridany. Nejkratsi mozny soubor Matroska(TM) by vypadal takto: [hlavicka EBML] [usek [informace o useku] [informace o stopach] [cluster 1]] Tak tomu muze byt u souboru obsahujicich pouze zvuk. EXTERNi SOUBORY cASOVyCH RAZiTEK mkvmerge(1) umoznuje uzivateli zvolit casova razitka pro konkretni stopu. To lze vyuzit k vytvareni souboru s videem s promenlivou frekvenci snimku nebo k vkladani mezer do zvuku. Snimek je zde jednotka, kterou mkvmerge(1) vytvari samostatne pro kazdy blok Matroska(TM). U videa jde presne o jeden snimek, u zvuku o jeden paket prislusneho zvukoveho typu. Napriklad u AC-3 by slo o paket obsahujici 1536 vzorku. Soubory casovych razitek pouzivane pri pripojovani stop k sobe se smeji zadat pouze pro prvni cast retezce stop. Pokud napriklad pripojujete dva soubory v1.avi a v2.avi a chcete pouzit casova razitka, musi prikazovy radek vypadat priblizne takto: $ mkvmerge ... --timestamps 0:my_timestamps.txt v1.avi +v2.avi mkvmerge(1) rozpoznava ctyri formaty. Prvni radek vzdy obsahuje cislo verze. Prazdne radky, radky obsahujici pouze bile znaky a radky zacinajici znakem '#' se ignoruji. Format souboru casovych razitek v1 Tento format zacina radkem s verzi. Druhy radek urcuje vychozi pocet snimku za sekundu. Vsechny nasledujici radky obsahuji tri cisla oddelena carkami: pocatecni snimek (0 je prvni snimek), koncovy snimek a pocet snimku za sekundu v tomto rozsahu. Hodnota FPS je cislo s plovouci desetinnou carkou, pricemz jako desetinny oddelovac se pouziva tecka '.'. Rozsahy mohou obsahovat mezery, pro ktere se pouzije vychozi hodnota FPS. Priklad: # timestamp format v1 assume 27.930 800,1000,25 1500,1700,30 Format souboru casovych razitek v2 V tomto formatu obsahuje kazdy radek casove razitko odpovidajiciho snimku. Casove razitko musi byt zadano s presnosti na milisekundy. Muze jit o cislo s plovouci desetinnou carkou, ale nemusi. Musite zadat alespon tolik radku s casovymi razitky, kolik je ve stope snimku. Casova razitka v tomto souboru musi byt serazena. Priklad pro 25 fps: # timestamp format v2 0 40 80 Format souboru casovych razitek v3 V tomto formatu kazdy radek obsahuje delku v sekundach nasledovanou volitelnym poctem snimku za sekundu. Obe hodnoty mohou byt cisla s plovouci desetinnou carkou. Neni-li pocet snimku za sekundu uveden, pouzije se vychozi hodnota. U zvuku byste meli nechat casova razitka snimku vypocitat samotny kodek. Proto pouzijte jako pocet snimku za sekundu hodnotu 0.0. Mezery v proudu lze vytvorit take klicovym slovem 'gap' nasledovanym delkou mezery. Priklad pro zvukovy soubor: # timestamp format v3 assume 0.0 25.325 7.530,38.236 gap, 10.050 2.000,38.236 Format souboru casovych razitek v4 Tento format je totozny s formatem v2. Jediny rozdil spociva v tom, ze casova razitka nemuseji byt serazena. Tento format by se temer nikdy nemel pouzivat. NaVRATOVe KoDY mkvmerge(1) konci jednim ze tri navratovych kodu: o 0 - Tento navratovy kod znamena, ze multiplexovani bylo uspesne dokonceno. o 1 - V tomto pripade mkvmerge(1) vypsal alespon jedno upozorneni, ale multiplexovani pokracovalo. Upozorneni ma predponu 'Warning:'. V zavislosti na danych problemech muze, ale nemusi byt vysledny soubor v poradku. Uzivatel by mel zkontrolovat upozorneni i vysledny soubor. o 2 - Tento navratovy kod se pouzije po vyskytu chyby. mkvmerge(1) se ukonci hned po vypsani chybove zpravy. Chybove zpravy sahaji od chybnych argumentu prikazoveho radku pres chyby cteni a zapisu az po poskozene soubory. PROMeNNe PROSTrEDi mkvmerge(1) pouziva vychozi promenne urcujici narodni prostredi systemu (napr. LANG a rodinu LC_*). Dalsi promenne: MKVMERGE_DEBUG, MKVTOOLNIX_DEBUG a jeji zkraceny tvar MTX_DEBUG Obsah se zpracuje, jako by byl predan pomoci volby --debug. MKVMERGE_ENGAGE, MKVTOOLNIX_ENGAGE a jeji zkraceny tvar MTX_ENGAGE Obsah se zpracuje, jako by byl predan pomoci volby --engage. VIZ TAKe mkvinfo(1), mkvextract(1), mkvpropedit(1), mkvtoolnix-gui(1) WWW Nejnovejsi verzi lze vzdy najit na domovske strance MKVToolNix[6]. AUTHOR Moritz Bunkus <moritz@bunkus.org> Vyvojar NOTES 1. web Matroska(TM) https://www.matroska.org/ 2. domovske strance IANA https://www.iana.org/assignments/media-types/ 3. mkvmerge-identification-output-schema-v20.json https://mkvtoolnix.download/doc/mkvmerge-identification-output- schema-v20.json 4. RFC 7159 https://tools.ietf.org/html/rfc7159 5. specifikace Matroska(TM) https://www.matroska.org/technical/specs/index.html 6. domovske strance MKVToolNix https://mkvtoolnix.download/ MKVToolNix 102.0 2026-09-14 MKVMERGE(1)