mkvmerge -- Multimédia folyamokat egyesít egy Matroska(tm) fájlba

# 1. Szinopszis

mkvmerge global options {-o out} options1 {file1} options2 {file2} @options-file.json

# 2. Leírás

Ez a program több médiafájl bemenetét veszi át, és egyesíti a streamjeiket (az összeset vagy csak egy kiválasztást) egy Matroska(tm) fájlba; lásd a Matroska weboldal.

Important:

A parancssori opciók sorrendje fontos. Kérjük, olvassa el a "Opciók sorrendje" részt, ha még nem ismeri a programot.

## 2.1. Globális opciók

Option | Description
--- | ---
-v, --verbose | Növelje a szóbeliséget.
-q, --csend | Állapot kimenet elnyomása.
-o, --output file-name | Írás a fájlnév fájlba. Ha osztást használunk, akkor ezt a paramétert egy kicsit másképp kezeljük. A részletekért lásd a --split opció magyarázatát.
-w, --webm | Hozzon létre egy WebM-kompatibilis fájlt. Ez akkor is be van kapcsolva, ha a kimeneti fájl nevének kiterjesztése "webm". Ez az üzemmód számos korlátozást érvényesít. Csak a VP8, VP9 videó és az Opus, Vorbis hangsávok engedélyezettek. A DocType fejléc elemet "webm" -re módosítja.

A fejezetek és címkék esetében az elemeknek csak egy részhalmaza engedélyezett. mkvmerge(1) automatikusan eltávolítja a specifikáció által nem engedélyezett elemeket.

--title title | Beállítja a kimeneti fájl általános címét, például a film nevét.
--default-language language-code | Beállítja az alapértelmezett nyelvi kódot, amelyet olyan zeneszámok esetében használnak, amelyeknél a --language opcióval nincs nyelv beállítva, és amelyeknél a forráskonténer nem ad meg nyelvet. Az alapértelmezett nyelvi kód a 'und', ami a 'meghatározatlan'.

## 2.2. Szegmensinformációk kezelése (globális opciók)

Option | Description
--- | ---
--segmentinfo filename.xml | Szegmensinformációk olvasása egy XML fájlból. Ez a fájl tartalmazhatja a szegmenscsalád UID, szegmens UID, előző és következő szegmens UID elemeket. Az MKVToolNix disztribúció tartalmaz egy példafájlt és egy DTD fájlt. A részletekért lásd a segment info XML fájlok című részt.
--segment-uid SID1,SID2,... | Beállítja a használni kívánt szegmens UID-ket. Ez egy vesszővel elválasztott lista a 128 bites szegmens UID-kről a szokásos UID-formában: hexa számok a "0x" előtaggal vagy anélkül, szóközzel vagy anélkül, pontosan 32 számjegy. Ha az SID =-mal kezdődik, akkor a többi része egy olyan Matroska fájl neveként értelmeződik, amelynek szegmens UID-jét beolvassa és használja.

Minden létrehozott fájl egy szegmenst tartalmaz, és minden szegmensnek egy szegmens UID-je van. Ha több szegmens UID van megadva, mint ahány szegmens létrejön, akkor a többlet UID-ket figyelmen kívül hagyjuk. Ha kevesebb UID van megadva, mint amennyi szegmens létrehozásra kerül, akkor véletlenszerű UID-ket hoz létre a szegmensekhez.

## 2.3. Fejezet és címke kezelése (globális opciók)

Option | Description
--- | ---
--fejezet-nyelv nyelv-kód | Beállítja az ISO 639-2 nyelvi kódot, amely minden egyes fejezetbejegyzéshez kiírásra kerül. Alapértelmezett értéke 'eng'. A részletekért lásd a fejezetekről szóló részt alább. Ez az opció egyszerű fejezetfájlok és olyan forrásfájlok esetében is használható, amelyek tartalmaznak fejezeteket, de nem tartalmaznak információt a fejezetek nyelvéről, pl. MP4 és OGM fájlok.

Az ezzel az opcióval beállított nyelv akkor is használatos, amikor a fejezeteket a --generate-chapters opcióval generáljuk.

--chapter-charset karakterkészlet | Beállítja a karakterkészletet, amelyet az egyszerű fejezetfájlok UTF-8-ra történő konvertálásához használnak. Lásd a szövegfájlok és karakterkészletek című szakaszt a karakterkészletek közötti konverzió magyarázatáért. Ez a kapcsoló azokra a fejezetekre is vonatkozik, amelyeket bizonyos tárolótípusokból, például Ogg/OGM és MP4 fájlokból másolnak. A részleteket lásd a fejezetekről szóló alábbi szakaszban.
--chapter-sync d[,o[/p]] | Állítsa be a következő forrásfájlban lévő fejezetek időbélyegeit d ms értékkel. Alternatívaként használhatja a --sync opciót a speciális sávazonosítóval -2 (lásd a speciális sávazonosítók részt). o/p: az időbélyegek beállítása o/p segítségével a lineáris eltolódások kijavítása érdekében. p alapértelmezett értéke 1, ha elhagyja. Mind a o, mind a p lehet lebegőpontos szám.

Alapértelmezett: nincs manuális szinkronkorrekció (ami megegyezik a d = 0 és o/p = 1.0 értékkel).

Ez az opció többször is használható egy bemeneti fájlhoz, amely több sávra vonatkozik, ha minden alkalommal más sávazonosítót választ ki.

--generate-chapters mode | mkvmerge(1) automatikusan létrehozhat fejezeteket. Jelenleg a következő két mód támogatott:

- 'when-appending' - Ez a mód egy fejezetet hoz létre az elején, és egy fejezetet minden alkalommal, amikor egy fájlt csatolunk.

  Ez az üzemmód a 'parts:' és a 'parts-frames:' osztási módokkal is működik. Ezeknél a módoknál minden egyes csatolt időbélyeg-tartományhoz (azokhoz, amelyek kezdő időbélyegei előtt a '+' előtaggal szerepelnek) egy fejezetet generál.

  Note:

  mkvmerge(1) megköveteli egy videó vagy egy hangsáv jelenlétét, hogy képes legyen meghatározni, mikor egy új fájl van hozzácsatolva. Ha egy vagy több videó sáv van muxolva, akkor az elsőt használja. Ellenkező esetben az első hangsávot használja.

- 'interval:time-spec' - Ez a mód egy fejezetet hoz létre a time-spec által megadott rögzített időközönként. A formátum vagy a HH:MM:SS.nnnnnnnnnnn forma, vagy egy szám, amelyet a 's', 'ms' vagy 'us' egységek egyike követ.

  Példa: --generate-chapters intervallum:45s

Az új fejezetek neveit a --generate-chapters-name-template opció vezérli. A nyelv beállítása a --chapter-language segítségével történik, amelynek a --generate-chapters előtt kell szerepelnie.

--generate-chapters-name-template template | Ez állítja be a --generate-chapters opció által generált fejezetnevek névsablonját. Ha az opciót nem használja, akkor az alapértelmezett 'Kapitány <NUM:2>' lesz használva. A sablonban több változó is használható, amelyek a fejezet generálásakor a tényleges értékükre cserélődnek. A '<NUM>' karakterláncot a fejezet száma fogja helyettesíteni. A '<START>' karakterláncot a fejezet kezdő időbélyege fogja helyettesíteni.

A '<FILE_NAME>' és '<FILE_NAME_WITH_EXT>' karakterláncok csak a csatolt fájlok fejezeteinek létrehozásakor töltődnek ki. Ezek helyébe a csatolt fájl neve lép a kiterjesztés nélkül, illetve annak kiterjesztésével együtt. Vegye figyelembe, hogy csak a fájl alapneve és kiterjesztése kerül beillesztésre, a könyvtár vagy meghajtó összetevői nem.

A fejezetszám minimális helyszámát a '<NUM:helyek>' paranccsal adhatja meg, például '<NUM:3>'. A kapott számot vezető nullákkal egészíti ki, ha a helyek száma kevesebb, mint a megadott.

A <START:format> segítségével szabályozhatja a kezdő időbélyeg által használt formátumot. A formátum alapértelmezés szerint '%H:%M:%S', ha nincs megadva. Az érvényes formátumkódok a következők:

- %h - órák

- %H - órák két helyen nullával kiegészítve

- %m - percek

- %M - két helyen nullával kitöltött percek

- %s - másodpercek

- %S - másodpercek két helyen nullával kitöltve

- %n - nanoszekundum kilenc helyigénnyel

- %<1-9>n - nanoszekundumok legfeljebb kilenc helyen (pl. három helyen a %3n-vel).

--cue-chapter-name-format format | mkvmerge(1) támogatja a CUE lapok olvasását a hangfájlokhoz, mint a fejezetek bemenetét. A CUE lapok általában tartalmazzák a PERFORMER és TITLE bejegyzéseket minden egyes index bejegyzéshez. mkvmerge(1) ezt a két karakterláncot használja fel a fejezetnév megkonstruálásához. Ezzel az opcióval beállítható az ehhez a névhez használt formátum.

Ha ez az opció nincs megadva, akkor az mkvmerge(1) alapértelmezés szerint a '%p - %t' formátumot használja (az előadó, majd egy szóköz, egy kötőjel, egy újabb szóköz és a cím).

Ha a formátum meg van adva, akkor a következő meta karakterek kivételével mindent úgy másolunk, ahogy van, és a meta karaktereket így helyettesítjük:

- %p helyébe az aktuális bejegyzés PERFORMER karakterlánca lép,

- %t helyébe az aktuális bejegyzés TITLE karakterlánca lép,

- %n helyébe az aktuális pályaszám lép és

- %N helyébe az aktuális pályaszám lép, egy vezető nullával kitöltve, ha az < 10.

--fejezetek fájlnév | Fejezetinformációk olvasása a fájlnév fájlból. A részletekért lásd a fejezetekről szóló részt alább.
--global-tags file-name | Globális címkék beolvasása a fájlnév fájlból. A részletekért lásd a tags című részt alább.

## 2.4. Általános kimeneti vezérlés (speciális globális opciók)

Option | Description
--- | ---
--track-order FID1:TID1,FID2:TID2,... | Ez az opció megváltoztatja a bemeneti fájl sávjainak létrehozási sorrendjét. Az argumentum a párok azonosítóinak vesszővel elválasztott listája. Minden pár tartalmazza először a fájl azonosítóját (FID1), amely egyszerűen a parancssorban szereplő fájl száma, 0-val kezdve. A második egy sáv azonosítója (TID1) az adott fájlból. Ha néhány track ID-t kihagyunk, akkor azok a trackek az ezzel az opcióval megadottak után jönnek létre.

Ha ez az opció nincs megadva, akkor a sávok először a típusuk & másodszor a forrásfájljuk sorrendje szerint lesznek rendezve. A videó sávok következnek először, majd a hang- és felirat-sávok. Az egyéb, ritkán használt sávtípusok az utolsó helyre kerülnek.

---cluster-length spec | Korlátozza az adatblokkok számát vagy az adatok időtartamát az egyes fürtökben. A spec paraméter lehet egy szám n egység nélkül, vagy egy szám d, amelyet a 'ms' szóval utólagosan rögzítünk. Ha nem használunk egységet, akkor az mkvmerge(1) legfeljebb n adatblokkokat helyez el minden egyes klaszterbe. A blokkok maximális száma 65535.

Ha a d számhoz a 'ms' utótagot adjuk meg, akkor az mkvmerge(1) legfeljebb d milliszekundumnyi adatot tesz minden egyes klaszterbe. A d minimális értéke '100ms', a maximális értéke pedig '32000ms'.

mkvmerge(1) alapértelmezés szerint legfeljebb 65535 adatblokkot és 5000 ms adatot helyez el egy fürtben.

Azok a programok, amelyek egy bizonyos keretet keresnek, csak közvetlenül egy klasztert kereshetnek, és utána az egész klasztert kell beolvasniuk. Ezért a nagyobb klaszterek létrehozása pontatlan vagy lassú kereséshez vezethet.

----clusters-in-meta-seek | Megmondja az mkvmerge(1) parancsnak, hogy hozzon létre egy meta seek elemet a fájl végén, amely tartalmazza az összes klasztert. Lásd még a Matroska fájlelrendezésről szóló részt.
--timestamp-scale faktor | Kényszeríti az időbélyeg skálázási tényezőjét a faktor értékre. Az érvényes értékek a 1000..10000000 vagy a -1 speciális érték. Normális esetben az mkvmerge(1) 1000000 értéket használ, ami azt jelenti, hogy az időbélyegek és időtartamok pontossága 1ms. Az olyan fájlok esetében, amelyek nem tartalmaznak videó sávot, de legalább egy hangsávot, az mkvmerge(1) automatikusan kiválaszt egy időbélyeg skálafaktort, így minden időbélyeg és időtartam egy hangminta pontosságú lesz. Ez nagyobb többletköltséget okoz, de lehetővé teszi a pontos keresést és kivonást.

Ha a -1 speciális értéket használja, akkor az mkvmerge(1) akkor is a minta pontosságát fogja használni, ha van videó sáv.

--enable-durations | Az összes blokk írási időtartama. Ez megnöveli a fájl méretét, és jelenleg nem nyújt semmilyen többletértéket a játékosok számára.
--no-cues | Megmondja az mkvmerge(1) -nek, hogy ne hozza létre és ne írja ki a cue-adatokat, amelyeket egy AVI-ban lévő indexhez lehet hasonlítani. Matroska(tm) fájlok lejátszhatók a cue-adatok nélkül, de a keresés valószínűleg pontatlan és lassabb lesz. Ezt csak akkor használja, ha nagyon elszántan keresi a helyet, vagy tesztelési céllal. Lásd még az --cues opciót, amely minden egyes bemeneti fájlhoz megadható.
--no-date | Alapértelmezés szerint az mkvmerge(1) a "date" szegmensinformációs mezőt a multiplexelés megkezdésének időpontjára és dátumára állítja. Ezzel az opcióval ez a mező egyáltalán nem íródik ki.
--disable-lacing | Letiltja a fűzést minden pálya esetében. Ez növeli a fájl méretét, különösen, ha sok hangsáv van. Ezt az opciót nem mindennapi használatra szánjuk.
--disable-track-statistics-tags | Normális esetben az mkvmerge(1) minden egyes zeneszámhoz statisztikákat ír bizonyos címkékkel. Ha ilyen címkék már vannak, akkor felülírja őket. A címkék a következők: BPS, DURATION, NUMBER_OF_BYTES és NUMBER_OF_FRAMES. Az opció engedélyezése megakadályozza, hogy az mkvmerge(1) kiírja ezeket a címkéket, és ne érintse a már létező, azonos nevű címkéket.
--disable-language-ietf | Normális esetben az mkvmerge(1) az új IETF BCP 47 nyelvi elemeket írja a régi nyelvi elemek mellett a pálya fejlécekbe, fejezetekbe és címkékbe. Ha ezt az opciót használjuk, csak a régi nyelvi elemek kerülnek kiírásra.
--normalize-language-ietf mode | Engedélyezi az összes IETF BCP 47 nyelvi tag normalizálását vagy a kanonikus formájukra a 'canonical' móddal, vagy a kiterjesztett nyelvi altagok formájára a 'extlang' móddal, vagy kikapcsolja a 'off' móddal. Alapértelmezés szerint a kanonikus formára való normalizálás kerül alkalmazásra.

A kanonikus formában minden olyan alcímke, amelyhez létezik preferált érték, az adott preferált értékekkel van helyettesítve. Így pl. a 'zh-yue-jyutping'-t 'yue-jyutping'-ra vagy a 'fr-FX'-t 'fr-FR'-ra alakítja át.

A kiterjesztett nyelvi alcímkeforma esetében először a kanonikus forma épül fel. Ezután minden olyan elsődleges nyelv, amelyhez létezik kiterjesztett nyelvi alcímke, helyébe az adott kiterjesztett nyelvi alcímke és annak előtagja lép. Ez például a 'yue-jyutping'-t visszaváltja 'zh-yue-jyutping'-ra, de nincs hatással a 'fr-FR'-ra, mivel a 'fr' nem egy kiterjesztett nyelvi altag.

--stop-after-video-ends | Az elsődleges videósáv vége után leállítja a feldolgozást, és a többi sáv fennmaradó csomagjait elveti.

## 2.5. Fájlok felosztása, összekapcsolása, csatolása és összekapcsolása (több globális opció)

Option | Description
--- | ---
--split specifikáció | A kimeneti fájlt egy adott méret vagy idő után felosztja. Vegye figyelembe, hogy a sávok csak közvetlenül a kulcskocka előtt oszthatók fel. Ezért a felosztási pont egy kicsit eltérhet attól, amit a felhasználó megadott. Jelenleg az mkvmerge(1) a következő módokat támogatja:

1. Méret szerinti felosztás.

   Szintaxis: --split [méret:]d[k|m|g]

   Példák: --split size:700m vagy --split 150000000

   A d paraméter végére a 'k', 'm' vagy 'g' betűjelet lehet írni, hogy a méret KB-ban, MB-ban vagy GB-ban legyen megadva. Ellenkező esetben bájtban megadott méretet feltételezünk. Miután az aktuális kimeneti fájl elérte ezt a mérethatárt, egy új kimeneti fájl indul.

   A 'size:' előtag kompatibilitási okokból elhagyható.

2. Szétválasztás egy időtartam után.

   Szintaxis: --split [duration:]H:MM:SS.nnnnnnnnnnn|ds

   Példák: --split duration:00:60:00.000 vagy --split 3600s.

   A paraméternek vagy a HH:MM:SS.nnnnnnnnnnnnn formájúnak kell lennie az időtartam nanoszekundumos pontossággal történő megadásához, vagy egy számnak d, amelyet a 's' betű követ a másodpercben megadott időtartamhoz. HHH az órák száma, MM a percek száma, SS a másodpercek száma és nnnnnnnnnnnnn a nanoszekundumok száma. Az órák és a nanoszekundumok száma egyaránt elhagyható. A tizedesvessző után legfeljebb kilenc számjegy állhat. Miután az aktuális kimenet tartalmának időtartama elérte ezt a határt, egy új kimeneti fájl indul.

   A 'duration:' előtag kompatibilitási okokból elhagyható.

3. Meghatározott időbélyegek utáni felosztás.

   Szintaxis: --split timestamps:A[,B[,C...]]

   Példa: --split timestamps:00:45:00.000,01:20:00.250,6300s

   A A, B, C stb. paramétereknek ugyanolyan formátumúnak kell lenniük, mint az időtartamhoz használtak (lásd fent). Az időbélyegek listáját vesszővel kell elválasztani. Miután a bemeneti folyam elérte az aktuális osztási pont időbélyegét, egy új fájl jön létre. Ezután a listában megadott következő felosztási pont kerül felhasználásra.

   A 'timestamps:' előtag nem hagyható el.

4. Bizonyos részek megtartása időbélyeg-tartományok megadásával, míg mások elvetése.

   Szintaxis: --split parts:start1-vég1[,[+]start2-vég2[,[+]start3-vég3...]]

   Példák:

   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-

   A parts mód azt mondja az mkvmerge(1) -nek, hogy bizonyos időbélyegtartományokat tartson meg, míg másokat dobjon el. A megtartandó tartományokat a parts: kulcsszó után kell felsorolni és vesszővel elválasztani. Maga a tartomány egy kezdő és egy vég időbélyegből áll, ugyanabban a formátumban, amelyet a --split többi változata is elfogad (pl. a 00:01:20 és a 80s is ugyanarra az időbélyegre vonatkozik).

   Ha a kezdő időbélyegző kimarad, akkor alapértelmezés szerint az előző tartomány végének időbélyegzője lesz. Ha nem volt előző tartomány, akkor az alapértelmezett érték a fájl eleje (lásd a 3. példát).

   Ha a vég időbélyegzőt kihagyjuk, akkor a forrásfájlok végét veszi alapértelmezés szerint, ami lényegében azt mondja az mkvmerge(1) -nek, hogy tartsa meg a többit (lásd a 3. példát).

   Normális esetben minden tartomány egy új fájlba íródik. Ez megváltoztatható úgy, hogy az egymást követő tartományok ugyanabba a fájlba íródjanak. Ehhez a felhasználónak a kezdő időbélyeget egy + előtaggal kell ellátnia. Ez arra utasítja az mkvmerge(1) -t, hogy ne hozzon létre új fájlt, hanem csatolja a tartományt ugyanabba a fájlba, amelybe az előző tartományt írták. Az időbélyegek kiigazításra kerülnek, így a kimeneti fájlban nem lesz rés, még akkor sem, ha a bemeneti fájlban a két tartomány között rés volt.

   Az 1. példában az mkvmerge(1) két fájlt hoz létre. Az első tartalmazza a 00:01:20-tól 00:02:45-ig terjedő tartalmat. A második fájl a 00:05:50-tól 00:10:30-ig tartó tartalmat tartalmazza.

   A 2. példában az mkvmerge(1) csak egy fájlt hoz létre. Ez a fájl tartalmazza mind a 00:01:20-tól 00:02:45-ig terjedő tartalmat, mind a 00:05:50-tól 00:10:30-ig terjedő tartalmat.

   A 3. példában az mkvmerge(1) két fájlt hoz létre. Az első tartalmazza a tartalmat a forrásfájlok elejétől 00:02:45-ig. A második fájl a 00:05:50-tól a forrásfájlok végéig tartó tartalmat fogja tartalmazni.

   Note:

   Vegye figyelembe, hogy az mkvmerge(1) csak a kulcsfontosságú képkockapozíciókban hoz döntést a felosztásról. Ez az egyes tartományok elejére és végére egyaránt vonatkozik. Tehát még akkor is, ha a vég időbélyegző két kulcskocka között van, az mkvmerge(1) folytatja a képkockák kiadását a következő kulcskockáig, de kizárva a következő kulcskockát.

5. Bizonyos részek megtartása a képkocka/mezőszámtartományok megadásával, míg mások elvetése.

   Szintaxis: --split parts-frames:start1-vég1[,[+]start2-vég2[,[+]start3-vég3...]]

   Példák:

   1. --split parts-frames:137-258,548-1211

   2. --split parts-frames:733-912,+1592-2730

   3. --split parts-frames:-430,2512-

   A parts-frames mód azt mondja az mkvmerge(1) -nek, hogy tartsa meg a képkocka/mező számok bizonyos tartományait, míg másokat el kell dobnia. A megtartandó tartományokat a parts-frames: kulcsszó után kell felsorolni és vesszővel elválasztani. Maga a tartomány egy kezdő és egy végkocka/mező számból áll. A számozás 1-től kezdődik.

   Ha a kezdőszámot kihagyja, akkor alapértelmezés szerint az előző tartomány végszámát veszi fel. Ha nem volt előző tartomány, akkor az alapértelmezett érték a fájl eleje (lásd a 3. példát).

   Ha a végszámot kihagyjuk, akkor a forrásfájlok végére állítja be az alapértelmezett értéket, ami lényegében azt mondja az mkvmerge(1) programnak, hogy tartsa meg a többit (lásd a 3. példát).

   Normális esetben minden tartomány egy új fájlba íródik. Ez megváltoztatható úgy, hogy az egymást követő tartományok ugyanabba a fájlba íródjanak. Ehhez a felhasználónak a kezdőszám elé egy +-t kell illesztenie. Ez arra utasítja az mkvmerge(1) -t, hogy ne hozzon létre új fájlt, hanem csatolja a tartományt ugyanahhoz a fájlhoz, amelybe az előző tartományt írták. Az időbélyegek kiigazításra kerülnek, így a kimeneti fájlban nem lesz hézag, még akkor sem, ha a bemeneti fájlban a két tartomány között hézag volt.

   Note:

   Vegye figyelembe, hogy az mkvmerge(1) csak a kulcsfontosságú képkockapozíciókban hoz döntést a felosztásról. Ez az egyes tartományok elejére és végére egyaránt vonatkozik. Tehát még akkor is, ha egy végkocka/mezőszám két kulcskocka között van, az mkvmerge(1) folytatja a képkockák kiadását a következő kulcskockáig, de kizárva a következő kulcskockát.

   Az 1. példában az mkvmerge(1) két fájlt hoz létre. Az első a 137-nál vagy azután lévő első kulcskockától kezdve a 258-nál vagy azután lévő első kulcskockáig, de nem tartalmazza a tartalmat. A második fájl a 548-tól 1211-ig tartó tartalmat tartalmazza.

   A 2. példában az mkvmerge(1) csak egy fájlt hoz létre. Ez a fájl tartalmazza mind a 733-tól 912-ig terjedő tartalmat, mind a 1592-tól 2730-ig terjedő tartalmat.

   A 3. példában az mkvmerge(1) két fájlt hoz létre. Az első tartalmazza a tartalmat a forrásfájlok elejétől 430-ig. A második fájl a 2512-tól a forrásfájlok végéig tartó tartalmat fogja tartalmazni.

   Ez az üzemmód csak az első kimeneti videó sávot veszi figyelembe. Ha nincs kimeneti videó sáv, akkor nem történik felosztás.

   Note:

   Az ezzel az argumentummal megadott számokat a kimeneti Matroska(tm) blokkok száma alapján értelmezzük. Egyetlen Matroska(tm) blokk vagy egy teljes képkockát (progresszív tartalom esetén) vagy egyetlen mezőt (interlaced tartalom esetén) tartalmaz. Az mkvmerge nem tesz különbséget e kettő között, és egyszerűen a blokkok számát számolja. Például: Ha interlaced tartalom esetén a 25. teljes képkocka után szeretnénk szétválasztani, akkor a 50 (két mező egy teljes képkockára) értéket kell használnunk a szétválasztási pontként.

6. Meghatározott képkockák/mezők utáni felosztás.

   Szintaxis: --split frames:A[,B[,C...]]

   Példa: --split frames:120,237,891

   A A, B, C stb. paramétereknek pozitív egész számoknak kell lenniük. A számozás 1-től kezdődik. A keret/mező számok listáját vesszővel kell elválasztani. Miután a bemeneti adatfolyam elérte az aktuális felosztási pont képkocka/mező számát, egy új fájl jön létre. Ezután a listában megadott következő felosztási pont kerül felhasználásra.

   A 'frames:' előtag nem hagyható el.

   Ez az üzemmód csak az első kimeneti videó sávot veszi figyelembe. Ha nincs kimeneti videó sáv, akkor nem történik felosztás.

   Note:

   Az ezzel az argumentummal megadott számokat a kimeneti Matroska(tm) blokkok száma alapján értelmezzük. Egyetlen Matroska(tm) blokk vagy egy teljes képkockát (progresszív tartalom esetén) vagy egyetlen mezőt (interlaced tartalom esetén) tartalmaz. Az mkvmerge nem tesz különbséget e kettő között, és egyszerűen a blokkok számát számolja. Például: Ha interlaced tartalom esetén a 25. teljes képkocka után szeretnénk szétválasztani, akkor a 50 (két mező egy teljes képkockára) értéket kell használnunk a szétválasztási pontként.

7. Meghatározott fejezetek előtti felosztás.

   Szintaxis: --split chapters:all vagy --split chapters:A[,B[,C...]]

   Példa: --split chapters:5,8

   A A, B, C stb. paramétereknek pozitív egész számoknak kell lenniük. A számozás 1-től kezdődik. A fejezetszámok listáját vesszőkkel választjuk el. A szétválasztás közvetlenül az első olyan kulcskocka előtt történik, amelynek időbélyege egyenlő vagy nagyobb, mint azoknak a fejezeteknek a kezdő időbélyege, amelyeknek a számai fel vannak sorolva. A 0s-nál kezdődő fejezetek soha nem kerülnek felosztásra, és némán elvetésre kerülnek.

   A all kulcsszó használható az összes fejezetszám kézi felsorolása helyett.

   A 'chapters:' előtag nem hagyható el.

   Note:

   A Matroska(tm) fájlformátum támogatja a tetszőlegesen mélyen egymásba ágyazott fejezetszerkezeteket, amelyeket 'kiadási bejegyzéseknek' és 'fejezetatomoknak' neveznek. Ez a mód azonban csak a fejezetek legfelső szintjét veszi figyelembe az összes kiadási bejegyzésben.

Ebben a felosztási módban a kimeneti fájlnevet másképp kezeli, mint a normál műveletnél. Tartalmazhat egy printf-szerű '%d' kifejezést, beleértve egy opcionális mezőszélességet, pl. '%02d'. Ha igen, akkor az aktuális fájlszámot megfelelően formázza, és a fájlnév ezen pontjára illeszti be. Ha nincs ilyen minta, akkor közvetlenül a fájl kiterjesztése előtt a '-%03d' mintát feltételezzük: '-o output.mkv' a 'output-001.mkv'-t eredményezné, és így tovább. Ha nincs kiterjesztés, akkor '-%03d' lesz a névhez csatolva.

Egy másik lehetséges minta a '%c', amely a fájl első fejezetének nevével lesz helyettesítve. Vegye figyelembe, hogy ha a '%c' jelen van, a '-%03d' minta nem kerül automatikusan hozzáadásra.

--link | A fájlok összekapcsolása egymással a kimeneti fájl felosztásakor. A részletekért lásd a fájlok összekapcsolása című részt.
--link-to-previous segment-UID | Az első kimeneti fájlt a szegmens-UID paraméter által megadott szegmens UID-vel rendelkező szegmenshez kapcsolja. A részletekért lásd a fájlok összekapcsolása című részt. Ha az SID =-mal kezdődik, akkor a többi része egy olyan Matroska fájl neveként értelmeződik, amelynek szegmens UID-jét beolvassa és használja.
--link-to-next segment-UID | Az utolsó kimeneti fájlt a szegmens-UID paraméter által megadott szegmens UID-vel rendelkező szegmenshez kapcsolja. A részletekért lásd a fájlok összekapcsolása című részt. Ha az SID =-mal kezdődik, akkor a többi része egy olyan Matroska fájl neveként értelmeződik, amelynek szegmens UID-jét beolvassa és használja.
--append-mode mode | Meghatározza, hogy az időbélyegek hogyan kerülnek kiszámításra a fájlok csatolásakor. A mode paraméter két értéket vehet fel: 'file', ami egyben az alapértelmezett is, és 'track'. Amikor az mkvmerge egy második fájlból (a neve 'file2') származó (track2') sávot csatol (a neve 'track1_1') az első fájlból (a neve 'file1') származó (track2_1) sávhoz, akkor a 'track2_1' összes időbélyegét eltolja egy összeggel. A 'file' üzemmódban ez az összeg a 'file1'-ben előforduló legmagasabb időbélyeg, még akkor is, ha ez az időbélyeg a 'track1_1'-tól eltérő sávból származik. Sáv módban az eltolás a 'sáv1_1' legmagasabb időbélyege.

Sajnos az mkvmerge nem tudja megbízhatóan felismerni, hogy melyik módot használja. Ezért alapértelmezés szerint a 'file' módot használja. A 'file' mód általában jobban működik olyan fájlok esetében, amelyek egymástól függetlenül jöttek létre; például AVI vagy MP4 fájlok csatolásakor. A 'track' mód jobban működhet olyan források esetében, amelyek lényegében egyetlen nagy fájl részei, pl. VOB és EVO fájlok esetében.

A feliratos sávokat mindig úgy kezeli, mintha a 'file' mód lenne aktív, még akkor is, ha a 'track' mód valóban az.

--append-to SFID1:STID1:DFID1:DTID1[,...] | Ez az opció szabályozza, hogy melyik sávhoz csatoljon egy másik sávot. Minden spec négy azonosítót tartalmaz: egy fájl azonosítót, egy sáv azonosítót, egy második fájl azonosítót és egy második sáv azonosítót. Az első pár, "source file ID" és "source track ID" azonosítja a csatolandó sávot. A második pár, "célfájl ID" és "célsáv ID", azt a sávot azonosítja, amelyhez az elsőt hozzá kell csatolni.

Ha ez az opció kimaradt, akkor a szabványos leképezés kerül alkalmazásra. Ez a szabványos hozzárendelés az aktuális fájl minden egyes sávját az előző fájl azonos sávazonosítóval rendelkező sávjához csatolja. Ez lehetővé teszi az egyszerű csatolást, ha egy filmet két részre osztottunk, és mindkét fájlnak azonos számú sávja és sávazonosítója van a mkvmerge -o output.mkv part1.mkv +part2.mkv paranccsal.

+ | Egyetlen '+' a következő fájl hozzáadása helyett a következő fájl csatolását eredményezi. A '+' a következő fájl neve elé is kerülhet. Ezért a következő két parancs egyenértékű:
    $ mkvmerge -o full.mkv file1.mkv + file2.mkv
    $ mkvmerge -o full.mkv file1.mkv +file2.mkv
[ file1 file2 ] | Ha több fájlnév szerepel egy pár szögletes zárójelben, akkor a második és az összes következő fájl a zárójelben megnevezett első fájlhoz lesz csatolva. Ez egy alternatív szintaxis a fájlnevek közötti '+' használatához képest. Ezért a következő két parancs egyenértékű:
    $ mkvmerge -o full.mkv file1.mkv + file2.mkv
    $ mkvmerge -o full.mkv '[' file1.mkv file2.mkv ']'
= | Bizonyos fájltípusok (MPEG program streamek = VOB-ok) esetében az mkvmerge(1) általában a bemeneti fájlokkal azonos könyvtárban lévő olyan fájlokat keres, amelyeknek ugyanaz az alapnevük, és csak a futószámukban különböznek (pl. 'VTS_01_1.VOB', 'VTS_01_2.VOB', 'VTS_01_3.VOB' stb.), és ezeket a fájlokat úgy kezeli, mintha egyetlen nagy fájlba lettek volna összefűzve. Ez az opció, egyetlen '=', azt eredményezi, hogy az mkvmerge nem keresi ezeket a további fájlokat.

Az '=' a következő fájlnév elé is kerülhet. Ezért a következő két parancs egyenértékű:

    $ mkvmerge -o full.mkv = file1.vob
    $ mkvmerge -o full.mkv =file1.vob

( file1 file2 ) | Ha több fájlnév szerepel egy zárójeles párban, akkor ezeket a fájlokat úgy kezeli, mintha egyetlen nagy fájlba lennének összefűzve, amely az egyes fájlok tartalmát egymás után tartalmazza. Ez használható például DVD-ről érkező VOB-fájlok vagy MPEG-továbbítási streamek esetén. Nem használható, ha minden egyes fájl saját fejléceket tartalmaz, ami általában az olyan önálló fájlok esetében fordul elő, mint az AVI vagy az MP4.

A fájlnév zárójelbe tétele azt is megakadályozza, hogy az mkvmerge(1) további, azonos alapnévvel rendelkező fájlokat keressen a opció = pontban leírtak szerint. Ezért ez a két parancssor egyenértékű:

    $ mkvmerge -o out.mkv = file.mkv
    $ mkvmerge -o out.mkv '(' file.mkv ')'

Több dolgot is meg kell jegyezni:

1. A nyitó és a záró zárójel után is szóköznek kell lennie.

2. Minden zárójelek közötti paramétert fájlnévként értelmezünk. Ezért az összes, erre a logikai fájlra vonatkozó opciót a nyitó zárójel előtt kell felsorolni.

3. Néhány héj speciális karakterként kezeli a zárójeleket. Ezért a fenti példában látható módon szabadulni kell tőlük, vagy idézőjelbe kell tenni őket.

## 2.6. Csatolmánytámogatás (több globális opció)

Option | Description
--- | ---
--attchment-description leírás | A következő melléklet egyszerű szöveges leírása. A következő --attach-file vagy --attach-file-once opcióra vonatkozik.
--attachment-mime-type MIME típus | MIME típus a következő csatolmányhoz. A következő --attach-file vagy --attach-file-once opcióra vonatkozik. A hivatalosan elismert MIME típusok listája megtalálható például a az IANA honlapon. A MIME típus kötelező a csatolmányokhoz. Ha egy csatolmánynak nincs MIME típusa megadva, akkor a típus automatikusan felismerésre kerül.
--csatlakozás-név név | Beállítja a kimeneti fájlban tárolt nevet a melléklethez. Ha ez az opció nincs megadva, akkor a név a csatolmány --attach-file vagy a --attach-file-once opcióval megadott fájlnevéből származik.
--attach-file file-name, --attach-file-once file-name. | A Matroska(tm) fájlon belül létrehoz egy fájlmellékletet. A két forma közötti különbség az, hogy a felosztás során a --attach-file opcióval csatolt fájlok az összes kimeneti fájlhoz csatolódnak, míg a --attach-file-once opcióval csatoltak csak az első létrehozott fájlhoz. Ha nem használjuk a felosztást, akkor mindkettő ugyanazt teszi.

Az mkvextract(1) használható a csatolt fájlok kivonására egy Matroska(tm) fájlból.

--enable-legacy-font-mime-types | Lehetővé teszi a régi MIME típusok használatát bizonyos típusú betűmellékletekhez. Például a 'application/x-truetype-font' a TrueType betűtípusok esetében a 'fonts/ttf' helyett használatos. Ez mind az új mellékleteket érinti, ha a MIME típus automatikusan felismerésre kerül, mind pedig a meglévő mellékleteket, amelyeknek a tárolt MIME típusai a régi típusokra lesznek átképezve.

Az érintett MIME típusok a következők: 'font/sfnt', 'font/ttf' és 'font/collection', amelyek mind a 'application/x-truetype-fonts'-ra vannak leképezve, valamint a 'font/otf', amely a 'application/vnd.ms-opentype'.

## 2.7. Az egyes bemeneti fájlokhoz használható beállítások

Option | Description
--- | ---
-a, --audio-tracks [!]n,m,... | Másolja a hangsávokat n, m stb. A számok a sávok azonosítói, amelyeket a --identify kapcsolóval kaphatunk meg. Ezek nem egyszerűen a sávok számai (lásd a sávok azonosítói részt). Alapértelmezett: az összes hangsáv másolása. A pályaazonosítók helyett ISO 639-2 nyelvi kódokat is megadhat. Ez csak olyan forrásfájlok esetében működik, amelyek nyelvi címkéket adnak meg a sávjaikhoz.

Alapértelmezett: az összes ilyen típusú sáv másolása.

Ha az azonosítók előtt ! áll, akkor a jelentés fordított: másolja az összes ilyen típusú pályát, kivéve a ! után felsoroltakat.

-d, --video-tracks [!]n,m,.... | Másolja a videó sávokat n, m stb. A számok a sávok azonosítói, amelyeket a --identify kapcsolóval kaphatunk meg. Ezek nem egyszerűen a sávok számai (lásd a sávok azonosítói részt). Alapértelmezett: az összes videó sáv másolása. A pályaazonosítók helyett ISO 639-2 nyelvi kódokat is megadhat. Ez csak olyan forrásfájlok esetében működik, amelyek nyelvi címkéket adnak meg a sávjaikhoz.

Ha az azonosítók előtt ! áll, akkor a jelentés fordított: másolja az összes ilyen típusú pályát, kivéve a ! után felsoroltakat.

-s, --subtitle-tracks [!]n,m,.... | Másolja a feliratsávokat n, m stb. A számok a sávok azonosítói, amelyeket a --identify kapcsolóval kaphatunk meg. Ezek nem egyszerűen a sávok számai (lásd a sávok azonosítói részt). Alapértelmezett: az összes feliratos sáv másolása. A pályaazonosítók helyett ISO 639-2 nyelvi kódokat is megadhat. Ez csak olyan forrásfájlok esetében működik, amelyek nyelvi címkéket adnak meg a sávjaikhoz.

Ha az azonosítók előtt ! áll, akkor a jelentés fordított: másolja az összes ilyen típusú pályát, kivéve a ! után felsoroltakat.

-b, --gomb-sávok [!]n,m,... | Másolja a gombsávokat n, m stb. A számok a sávok azonosítói, amelyeket a --identify kapcsolóval kaphatunk meg. Ezek nem egyszerűen a sávok számai (lásd a sávok azonosítói részt). Alapértelmezett: az összes gombsáv másolása. A pályaazonosítók helyett ISO 639-2 nyelvi kódokat is megadhat. Ez csak olyan forrásfájlok esetében működik, amelyek nyelvi címkéket adnak meg a sávjaikhoz.

Ha az azonosítók előtt ! áll, akkor a jelentés fordított: másolja az összes ilyen típusú pályát, kivéve a ! után felsoroltakat.

--track-tags [!]n,m,... | Másolja a sávok címkéit n, m stb. A számok a sávok azonosítói, amelyeket a --identify kapcsolóval kaphatunk meg (lásd a sáv azonosítók című szakaszt). Ezek nem egyszerűen a sávszámok. Alapértelmezett: az összes sáv címkéinek másolása. Ha az azonosítók előtt ! áll, akkor a jelentés fordított: mindent másoljon, kivéve a ! után felsorolt azonosítókat.
-m, --csatolmányok [!]n[:all|first],m[:all|first],... | Másolja a n, m stb. azonosítóval rendelkező mellékleteket az összes vagy csak az első kimeneti fájlba. Minden azonosítót követhet a ':all' (ami az alapértelmezett, ha egyiket sem adtuk meg) vagy a ':first'. Ha a felosztás aktív, akkor azok a csatolmányok, amelyek azonosítóját a ':all' kifejezéssel adtuk meg, az összes keletkező kimeneti fájlba átmásolódnak, míg a többiek csak az első kimeneti fájlba. Ha a szétválasztás nem aktív, akkor mindkét változatnak ugyanaz a hatása.

Az alapértelmezett beállítás szerint az összes mellékletet átmásolja az összes kimeneti fájlba.

Ha az azonosítók előtt ! áll, akkor a jelentés fordított: mindent másoljon, kivéve a ! után felsorolt azonosítókat.

-A, --no-audio | Ne másoljon semmilyen hangsávot ebből a fájlból.
-D, --no-video | Ne másoljon semmilyen videó sávot ebből a fájlból.
-S, --no-subtitles | Ebből a fájlból ne másoljon ki semmilyen felirat-sávot.
-B, --no-buttons | Ne másoljon egyetlen gombsávot sem ebből a fájlból.
-T, --no-track-tags | Ne másoljon ki semmilyen sávspecifikus taget ebből a fájlból.
--no-chapters | Ne másoljon fejezeteket ebből a fájlból.
-M, --no-attachments | Ne másoljon mellékleteket ebből a fájlból.
--no-global-tags | Ne másoljon globális címkéket ebből a fájlból.
---regenerate-track-uids | Ha ezt az opciót egy Matroska forrásfájlhoz használod, az mkvmerge(1) új, véletlenszerű, egyedi sávazonosítókat hoz létre ahelyett, hogy a meglévőeket megtartaná a fájlban. Az ugyanabból a fájlból beolvasott, már létező sáv UID-k a fejezetekben & címkéket az újonnan generált értékekre fogja átképezni.

Ez a viselkedés automatikusan engedélyezve van a MakeMKV szoftver által létrehozott Matroska fájlok esetében. Ennek oka, hogy a MakeMKV véletlenszerű számok generálása helyett egymást követő számokat (1, 2, 3...) használ UID-ként.

-y, --sync TID:d[,o[/p]] | A TID azonosítóval rendelkező sáv időbélyegeinek d ms értékkel történő módosítása. A sáv azonosítói megegyeznek a --identify segítségével megadottakkal (lásd a sáv azonosítók című szakaszt). o/p: az időbélyegek beállítása o/p segítségével a lineáris eltolódások kijavítása érdekében. p alapértelmezett értéke 1, ha elhagyja. Mind a o, mind a p lehet lebegőpontos szám.

Alapértelmezett: nincs manuális szinkronkorrekció (ami megegyezik a d = 0 és o/p = 1.0 értékkel).

Ez az opció többször is használható egy bemeneti fájlhoz, amely több sávra vonatkozik, ha minden alkalommal más sávazonosítót választ ki.

--cues TID:none|iframes|all | Szabályozza, hogy mely sávok cue (index) bejegyzéseit hozza létre az adott sávhoz (lásd a sáv azonosítók részt). A 'none' gátolja a cue-bejegyzések létrehozását. A 'iframes' esetén csak a visszafelé vagy előre utalások nélküli blokkok ( = I képkockák a videó-sávokban) kerülnek a cue lapra. A 'all' hatására az mkvmerge(1) az összes blokkhoz létrehozza a cue-bejegyzéseket, ami nagyon nagy méretűvé teszi a fájlt.

Az alapértelmezett érték a 'iframes' a videó- és felirat-sávoknál és a 'none' a hangsávoknál. Lásd még a --no-cues opciót, amely a használt --cues opcióktól függetlenül megakadályozza a cue-bejegyzések létrehozását.

Ez az opció többször is használható egy bemeneti fájlhoz, amely több sávra vonatkozik, ha minden alkalommal más sávazonosítót választ ki.

--default-track-flag TID[:bool] | Beállítja az "alapértelmezett track" jelzőt az adott trackhez (lásd a track ID-k részt), ha az opcionális bool argumentum 1 értékre van állítva, vagy ha nincs jelen. A zászló akkor lesz beállítva, ha a forráskonténer nem adja meg ezt az információt, és a felhasználó nem adja meg ezen az opción keresztül.

Ha a felhasználó a lejátszás során nem választ ki kifejezetten egy zeneszámot, a lejátszónak ki kell választania az egyik olyan zeneszámot, amelynél az "alapértelmezett zeneszám" jelző be van állítva, figyelembe véve a felhasználó preferenciáit, például a preferált nyelvet.

Ez az opció többször is használható egy bemeneti fájlhoz, amely több sávra vonatkozik, ha minden alkalommal más sávazonosítót választ ki.

--track-enabled-flag TID[:bool] | Az adott sáv (lásd a sáv azonosítók) "track enabled" jelzőjét a megadott bool értékre állítja (0 vagy 1; alapértelmezés szerint 1, ha nincs megadva). A sávok alapértelmezés szerint engedélyezve vannak, ha nincs megadva számukra opció, és a forráskonténer sem adja meg ezt az információt.

Csak azok a zeneszámok vehetők figyelembe lejátszáskor, amelyeknél a "track enabled" jelző be van kapcsolva.

Ez az opció többször is használható egy bemeneti fájlhoz, amely több sávra vonatkozik, ha minden alkalommal más sávazonosítót választ ki.

--forced-display-flag TID[:bool] | Beállítja a "forced display" jelzőt az adott sávra (lásd a sáv azonosítók című részt), ha az opcionális bool argumentum 1, vagy ha nincs jelen. Ezt a képernyőn megjelenő szöveget vagy idegen nyelvű párbeszédet tartalmazó sávokhoz használja. Ez az opció többször is használható egy bemeneti fájlhoz, amely több sávra vonatkozik, ha minden alkalommal más sávazonosítót választ ki.
--hearing-impaired-flag TID[:bool] | Beállítja a "hallássérült" jelzőt az adott zeneszámra (lásd a sáv azonosítók című részt), ha az opcionális bool argumentum 1, vagy ha nincs jelen. Ez a jelző akkor állítható be, ha a zeneszám alkalmas a hallássérült felhasználók számára. Ez az opció többször is használható egy bemeneti fájlhoz, amely több sávra vonatkozik, ha minden alkalommal más sávazonosítót választ ki.
----visual-impaired-flag TID[:bool] | Beállítja a "látássérült" jelzőt az adott sávra (lásd a sáv azonosítók című részt), ha az opcionális bool argumentum 1, vagy ha nincs jelen. Ez a jelző akkor állítható be, ha a pálya alkalmas a látássérült felhasználók számára. Ez az opció többször is használható egy bemeneti fájlhoz, amely több sávra vonatkozik, ha minden alkalommal más sávazonosítót választ ki.
--text-descriptions-flag TID[:bool] | Beállítja a "szöveges leírás" jelzőt az adott sávhoz (lásd a sáv azonosítók részt), ha az opcionális bool argumentum 1, vagy ha nincs jelen. Ez a jelző akkor állítható be, ha a sáv olyan videótartalom szöveges leírását tartalmazza, amely alkalmas a látássérült felhasználó számára szöveges beszéddel történő lejátszásra.

Ez az opció többször is használható egy bemeneti fájlhoz, amely több sávra vonatkozik, ha minden alkalommal más sávazonosítót választ ki.

--original-flag TID[:bool] | Beállítja az "eredeti nyelv" zászlót az adott zeneszámhoz (lásd a sáv azonosítók című részt), ha az opcionális bool argumentum 1, vagy ha nincs jelen. Ez a flag akkor állítható be, ha a track a tartalom eredeti nyelvén van (nem fordítás). Ez az opció többször is használható egy bemeneti fájlhoz, amely több sávra vonatkozik, ha minden alkalommal más sávazonosítót választ ki.
--commentary-flag TID[:bool] | Beállítja a "commentary" zászlót az adott zeneszámhoz (lásd a sáv azonosítók részt), ha az opcionális bool argumentum 1, vagy ha nincs jelen. Ez a zászló akkor állítható be, ha a zeneszám kommentárt tartalmaz. Ez az opció többször is használható egy bemeneti fájlhoz, amely több sávra vonatkozik, ha minden alkalommal más sávazonosítót választ ki.
--track-name TID:name | Az adott sáv (lásd a sáv azonosítók című részt) sávnevét a név értékre állítja.
--nyelv TID:language | Beállítja az adott sáv nyelvét (lásd a sáv azonosítók című részt). Mind az ISO 639-2 nyelvi kódok, mind az ISO 639-1 országkódok engedélyezettek. Az országkódok automatikusan nyelvi kódokká lesznek konvertálva. Az összes nyelv az ISO 639-2 kódokkal együtt felsorolható a --list-languages opcióval.

Ez az opció többször is használható egy bemeneti fájlhoz, amely több sávra vonatkozik, ha minden alkalommal más sávazonosítót választ ki.

-t, --tags TID:fájlnév | A TID számmal rendelkező zeneszám címkéinek beolvasása a fájlnév fájlból. A részletekért lásd a címkékről szóló részt alább.
--aac-is-sbr TID[:0|1] | Megmondja az mkvmerge(1) -nek, hogy a TID azonosítóval rendelkező zeneszám SBR AAC (más néven HE-AAC vagy AAC+). Erre az opcióra akkor van szükség, ha a) a forrásfájl egy AAC fájl (nem egy Matroska(tm) fájl esetében) és b) a AAC fájl SBR AAC adatokat tartalmaz. Ennek a váltásnak az az oka, hogy technikailag lehetetlen automatikusan megkülönböztetni a normál AAC adatokat a SBR AAC adatoktól anélkül, hogy egy teljes AAC keretet dekódolnánk. Mivel a AAC dekóderekkel kapcsolatban számos szabadalmi probléma van, az mkvmerge(1) soha nem fogja tartalmazni ezt a dekódolási szakaszt. Tehát a SBR AAC fájlok esetében ez a kapcsoló kötelező. Az eredményül kapott fájl esetleg nem megfelelően vagy egyáltalán nem is játszódik le, ha a kapcsoló kimarad.

Ha a forrásfájl egy Matroska(tm) fájl, akkor a CodecID elég lesz a SBR AAC felismeréséhez. Ha azonban a CodecID hibás, akkor ez a kapcsoló használható ennek kijavítására.

Ha az mkvmerge tévesen azt érzékeli, hogy egy AAC fájl SBR, akkor a track ID-hez hozzáadhatja a ':0' szót.

--audio-emphasis TID:n|szimbolikus név | A TID sávazonosítóval rendelkező hangsáv kiemelésének beállítása. Az üzemmód lehet egy szám n (bizonyos értékek 0 és 16 között) vagy egy szimbolikus név. Az összes érvényes szám & szimbolikus név felsorolható a --list-audio-emphasis opcióval.
---csökkentés a magra TID | Egyes audiokodekek veszteséges maggal és veszteségmentes dekódolást megvalósító opcionális bővítményekkel rendelkeznek. Ez az opció arra utasítja az mkvmerge(1) -t, hogy csak a magot másolja, a bővítményeket ne. Alapértelmezés szerint az mkvmerge(1) mind a magot, mind a bővítményeket másolja.

Jelenleg csak a DTS sávokat érinti ez az opció. A beágyazott AC-3 magot tartalmazó TrueHD sávok ehelyett két külön sávként jelennek meg, amelyeknél a felhasználó kiválaszthatja, hogy melyik sávot szeretné másolni. A DTS esetében egy ilyen séma nem működne, mivel a HD kiterjesztések önmagukban nem dekódolhatók - ellentétben a TrueHD adatokkal.

--remove-dialog-normalization-gain TID | Néhány audiokódex tartalmaz olyan fejlécmezőket, amelyek a dekódert vagy a lejátszót arra utasítják, hogy a párbeszéd normalizálásához alkalmazzon (általában negatív) erősítést. Ez az opció arra utasítja az mkvmerge(1) -t, hogy a megfelelő fejlécmezők módosításával távolítsa el vagy minimalizálja ezt az erősítést.

Jelenleg csak a AC-3, DTS és TrueHD sávokat érinti ez az opció.

--timestamps TID:fájlnév | A fájlnévből beolvassa az adott sáv azonosítójához használandó időbélyegeket. Ezek az időbélyegek erősen felülírják az mkvmerge(1) által általában kiszámított időbélyegeket. Olvassa el a külső időbélyegfájlokról szóló részt.
--default-duration TID:x | Az adott zeneszám alapértelmezett időtartamát a megadott értékre kényszeríti. A sáv időbélyegeit is módosítja, hogy megfeleljenek az alapértelmezett időtartamnak. Az x argumentumot a 's', 'ms', 'us', 'ns', 'fps' kifejezéssel kell utólagosan kiegészíteni, 'p' vagy 'i' az alapértelmezett időtartam másodpercben, milliszekundumban, mikroszekundumban, nanoszekundumban, 'képkocka/másodpercben', 'progresszív képkocka/másodpercben' vagy 'interlaced képkocka/másodpercben' történő megadásához. Maga a x szám lehet lebegőpontos szám vagy tört.

Ha az alapértelmezett időtartam nincs kikényszerítve, akkor az mkvmerge megpróbálja levezetni a track alapértelmezett időtartamát a konténerből és/vagy a kódolt bitfolyamból bizonyos track típusok esetében, pl. AVC/H.264 vagy MPEG-2.

Ez az opció használható a videósávok FPS értékének megváltoztatására is, anélkül, hogy külső időbélyegző fájlt kellene használni.

--fix-bitstream-timing-information TID[:0|1] | Normális esetben az mkvmerge(1) nem változtatja meg a videó bitfolyamban tárolt időzítési információkat (képkocka/felvételi sebesség). Ezzel az opcióval ez az információ a konténer időzítési információjának megfelelően módosul. A konténer időzítési információ különböző forrásokból származhat: a parancssorból (lásd az --default-duration opciót), a forráskonténerből vagy a bitfolyamból származtatva.

Note:

Ez eddig csak az AVC/H.264 videósávok esetében valósult meg.

---tömörítés TID:n | Kiválasztja a sávhoz használandó tömörítési módszert. Vegye figyelembe, hogy a lejátszónak is támogatnia kell ezt a módszert. Az érvényes értékek a következők: 'none', 'zlib' és 'mpeg4_p2'/'mpeg4p2'. A 'mpeg4_p2'/'mpeg4p2' tömörítési módszer egy speciális tömörítési módszer, az úgynevezett 'fejléc eltávolítás', amely csak a MPEG4 part 2 videósávok esetében érhető el.

Néhány felirat típus esetében az alapértelmezett tömörítés a 'zlib' tömörítés. Ezt a tömörítési módszert támogatja a legtöbb, ha nem minden lejátszó alkalmazás. A 'none'-tól eltérő tömörítési módszerek támogatása nem biztosított.

## 2.8. Csak a videósávokra vonatkozó beállítások

Option | Description
--- | ---
-f, --fourcc TID:FourCC | A FourCC a megadott értékre kényszeríti. Csak az 'MS kompatibilitási módban' lévő videósávok esetében működik.
--display-dimensions TID:widthxheight | Matroska(tm) fájlok két értéket tartalmaznak, amelyek beállítják azokat a megjelenítési tulajdonságokat, amelyekre a lejátszónak a képet lejátszáskor méreteznie kell: a megjelenítési szélességet és a megjelenítési magasságot. Ezeket az értékeket ezzel az opcióval lehet beállítani, például '1:640x480'.

Az értékek megadásának másik módja a --aspect-ratio vagy a --aspect-ratio-factor opció használata (lásd alább). Ezek az opciók kölcsönösen kizárják egymást.

---aspektus-arány TID:arány|szélesség/magasság | Matroska(tm) fájlok két értéket tartalmaznak, amelyek beállítják azokat a megjelenítési tulajdonságokat, amelyekre a lejátszónak a képet lejátszáskor méreteznie kell: a megjelenítési szélességet és a megjelenítési magasságot. Ezzel az opcióval az mkvmerge(1) automatikusan kiszámítja a megjelenítési szélességet és magasságot a kép eredeti szélessége és magassága, valamint az ezzel az opcióval megadott képarány alapján. Az arány megadható lebegőpontos számként arány vagy törtként 'szélesség/magasság', pl. '16/9'.

Az értékek megadásának másik módja a --aspect-ratio-factor vagy --display-dimensions opciók használata (lásd fent és lent). Ezek az opciók kölcsönösen kizárják egymást.

---aspektus-arány-tényező TID:factor|n/d | A képarány beállításának másik módja a tényező megadása. Az eredeti képarányt először megszorozzuk ezzel a tényezővel, majd ezt követően a cél képarányként használjuk. Az értékek megadásának másik módja a --aspect-ratio vagy a --display-dimensions opciók használata (lásd fent). Ezek az opciók kölcsönösen kizárják egymást.
--csonkítás TID:bal,felső,jobb,alsó | A videósáv pixelkivágási paramétereit a megadott értékekre állítja be.
--color-matrix-coefficients TID:n | Beállítja a videó mátrixkoefficienseit, amelyeket a vörös, zöld és kék színprimerekből a luma- és krómértékek levezetésére használnak. A n egy egész szám, amely 0 és 10 között mozog. Érvényes értékek és jelentésük: 0: 1: BT709, 2: nem meghatározott, 3: fenntartva, 4: GBR, 1: BT709, 2: nem meghatározott, 3: fenntartva, 4: GBR: FCC, 5: BT470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: YCOCG, 9: BT2020 nem állandó fénysűrűség, 10: BT2020 állandó fénysűrűség.
--szín-bit-csatornánként TID:n | A színcsatorna kódolt bitjeinek számát állítja be. A 0 érték azt jelzi, hogy a bitek száma nincs megadva.
--chroma-subsample TID:hori,vert | A Cr és Cb csatornákban eltávolítandó képpontok mennyisége minden egyes vízszintesen/függőlegesen el nem távolított képpont után. Példa: A 4:2:0-s chroma-alulmintavételezésű videó esetében a paramétert TID:1,1 értékre kell beállítani.
--cb-subsample TID:hori,vert | A Cb-csatornában eltávolítandó képpontok mennyisége minden egyes vízszintesen/függőlegesen el nem távolított képpont után. Ez additív a --chroma-subsample-val. Példa: A 4:2:1 chroma-alulmintavételezésű videó esetében a --chroma-subsample paramétert TID:1,0, a Cb-subsample-t pedig TID:1,0 értékre kell állítani.
---chroma-siting TID:hori,vert | Beállítja, hogy a kroma hogyan helyezkedik el vízszintesen/függőlegesen (0: nem meghatározott, 1: felülről kollokált, 2: félig).
--színtartomány TID:n | Beállítja a színtartományok vágását (0: nem meghatározott, 1: sugárzási tartomány, 2: teljes tartomány (nincs vágás), 3: MatrixCoefficients/TransferCharacteristics által meghatározott).
--color-transfer-characteristics TID:n | A videó átviteli jellemzői. Érvényes értékek és jelentésük: 0: fenntartva, 1: ITU-R BT.709, 2: nem meghatározott, 3: fenntartva, 4: gamma 2.2 görbe, 5: gamma 2.8 görbe, 6: SMPTE 170M, 7: SMPTE 240M, 8: lineáris, 9: log, 10: log sqrt, 11: IEC 61966-2-4, 12: ITU-R BT.1361. kiterjesztett színskála, 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 | Beállítja a videó színprimereit. Érvényes értékek és jelentésük: 0: fenntartva, 1: ITU-R BT.709, 2: nem meghatározott, 3: fenntartva, 4: ITU-R BT.470.M, 5: ITU-R BT.470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: 9: ITU-R BT.2020, 10: SMPTE ST 428-1, 22: JEDEC P22 foszforok
--max-content-light TID:n | Egyetlen képpont maximális fényerejét (Maximum Content Light Level) állítja be kandela/négyzetméterben (cd/m²). A n értékének nem negatív egész számnak kell lennie.
--max-frame-light TID:n | Egyetlen teljes képkocka maximális fényerejét állítja be (Maximális képkocka-átlagos fényszint) kandela/négyzetméterben (cd/m²). A n értékének nem negatív egész számnak kell lennie.
---kromatikus koordináták TID:red-x,red-y,green-x,green-y,blue-x,blue-y | A CIE 1931 által meghatározott vörös/zöld/kék színkoordináták beállítása.
----fehér-szín-koordináták TID:x,y | Beállítja a fehér szín kromatikus koordinátáit a CIE 1931 szerint.
--max-luminance TID:float | Beállítja a maximális fénysűrűséget kandela/négyzetméterben (cd/m²). Az értéknek 9999,99-nél kisebbnek kell lennie.
--min-luminance TID:float | Beállítja a minimális fénysűrűséget kandela/négyzetméterben (cd/m²). Az értéknek 999,9999-nél kisebbnek kell lennie.
--projection-type TID:method | Beállítja az alkalmazott videoprojekciós módszert. Az érvényes értékek a következők: 0 (téglalap vetítés), 1 (egyenszög vetítés), 2 (kockatérkép vetítés) és 3 (háló vetítés).
--projection-private TID:data | Olyan privát adatokat állít be, amelyek csak egy adott vetületre vonatkoznak. Az adatokat hexa számokként kell megadni "0x" előtaggal vagy anélkül, szóközökkel vagy szóközök nélkül.
--projection-pose-yaw TID:float | Megadja a vetítés tengelyirányú elforgatását.
----projection-pose-pitch TID:float | Megadja a vetítés dőlésszögének elforgatását.
--projection-pose-roll TID:float | Megadja a vetület elforgatását.
---mező-rend TID:n | A TID sávazonosítóval rendelkező videósáv mezősorrendjének beállítása. A sorrendnek a következő számok egyikének kell lennie: 0: progresszív; 1: egymásba ágyazva, a felső mezőt először megjelenítve és a felső mezőt először tárolva; 2: meghatározatlan mezősorrend; 6: egymásba ágyazva, az alsó mezőt először megjelenítve és az alsó mezőt először tárolva; 9: egymásba ágyazva, az alsó mezőt először megjelenítve és a felső mezőt először tárolva; 14: egymásba ágyazva, a felső mezőt először megjelenítve és az alsó mezőt először tárolva.
----stereo-mode TID:n|szimbolikus név | Beállítja a sztereó módot a TID sávazonosítóval rendelkező videósávhoz. A mód lehet egy n szám 0 és 14 között, vagy egy szimbolikus név. Az összes érvényes szám & név felsorolható a --list-stereo-modes opcióval.

## 2.9. Csak a szöveges feliratsávokra vonatkozó beállítások

Option | Description
--- | ---
--sub-charset TID:karakterkészlet | Beállítja a karakterkészletet a megadott sávazonosítóhoz tartozó UTF-8 feliratok UTF-8-ra történő konvertálásához. Ha nincs megadva, a karakterkészlet az aktuális helyi beállításokból lesz származtatva. Vegye figyelembe, hogy a Matroska(tm) fájlokból vagy Kate streamekből beolvasott feliratokhoz nincs szükség karakterkészletre, mivel ezek mindig UTF-8-ban vannak tárolva. Lásd a szövegfájlok és karakterkészletek című szakaszt, ahol megtudhatja, hogyan konvertál az mkvmerge(1) a karakterkészletek között.

Ez az opció többször is használható egy bemeneti fájlhoz, amely több sávra vonatkozik, ha minden alkalommal más sávazonosítót választ ki.

## 2.10. Egyéb lehetőségek

Option | Description
--- | ---
-i, --identify fájlnév | Engedi, hogy az mkvmerge(1) megvizsgálja az egyetlen fájlt, és jelentse annak típusát, a fájlban található zeneszámokat és azok zeneszám-azonosítóit. Ha ezt az opciót használjuk, akkor az egyetlen megengedett opció a fájlnév. Az eredmény kimeneti formátumát a --identification-format opcióval lehet megváltoztatni.
-J fájlnév | Ez egy kényelmes alias a "--identification-format json --identify file-name" számára.
-F, --identification-format format | Meghatározza a --identify opció által használt kimeneti formátumot. A következő formátumokat támogatja: text (az alapértelmezett, ha ezt az opciót nem használja) és json.

1. A text formátum rövid és ember által olvasható. Talált elemenként (konténer, pályák, mellékletek stb.) egy-egy sorból áll.

   Ezt a formátumot nem kell elemezni. A kimenet le lesz fordítva a mkvmerge(1) által használt nyelvre (lásd még --ui-language).

2. A json formátum egy gépileg olvasható JSON-reprezentációt ad ki. Ez a formátum a következő fájlban leírt JSON sémát követi:

   mkvmerge-identification-output-schema-v20.json

   A JSON-séma minden verziója elérhető online és a kiadott forráskód-archívumban is.

--probe-range-percentage százalék | Az olyan fájltípusok, mint az MPEG program- és transzportfolyamok (.vob, .m2ts) bizonyos mennyiségű adat elemzésére van szükség ahhoz, hogy a fájlban található összes zeneszámot felismerjék. Ez a mennyiség a forrásfájl méretének 0,3%-a vagy 10 MB, attól függően, hogy melyik a nagyobb.

Ha a nyomok ismertek, de nem találhatók, akkor a szondázandó százalékos arány megváltoztatható ezzel az opcióval. A minimum 10 MB beépített és nem módosítható.

--list-audio-emphasis | A --audio-emphasis opcióhoz tartozó összes érvényes szám és a megfelelő szimbolikus nevek listája.
--list-languages | Az összes nyelv és ISO 639-2 kódjuk felsorolása, amely a --language opcióval használható.
--list-stereo-modes | A --stereo-mode opció összes érvényes számának és a hozzájuk tartozó szimbolikus neveknek a listája.
-l, --list-types | A támogatott bemeneti fájltípusok listája.
--priority priority | Beállítja a folyamat prioritását, amellyel az mkvmerge(1) fut. Érvényes értékek: 'alacsonyabb', 'alacsonyabb', 'normális', 'magasabban' és 'magasabban'. Ha semmi sincs megadva, akkor a 'normal' értéket kell használni. Unix-szerű rendszereken az mkvmerge(1) a nice(2) függvényt használja. Ezért csak a szuperfelhasználó használhatja a 'higher' és a 'highest' parancsot. Windowson minden érték használható minden felhasználó számára.

A 'legalacsonyabb' kiválasztása azt is eredményezi, hogy az mkvmerge(1) a lehető legalacsonyabb processzprioritás mellett az üres I/O prioritást is kiválasztja.

--command-line-charset karakterkészlet | Beállítja a karakterkészletet, amelyből a parancssorban megadott karakterláncokat konvertálni kell. Alapértelmezés szerint a rendszer aktuális területi beállítása által megadott karakterkészlet. Ez a beállítás a következő opciók argumentumaira vonatkozik: --title, --track-name és --attachment-description.
--output-charset karakterkészlet | Beállítja azt a karakterkészletet, amelybe a kimeneti karakterláncokat konvertálja. Alapértelmezés szerint a rendszer aktuális területi beállítása által megadott karakterkészlet.
-r, --redirect-output file-name | Az összes üzenetet a konzol helyett a fájlnév fájlba írja. Bár ez könnyen elvégezhető a kimenet átirányításával, vannak olyan esetek, amikor szükség van erre az opcióra: amikor a terminál újraértelmezi a kimenetet, mielőtt kiírná azt egy fájlba. A --output-charset karakterkészletet tiszteletben tartja.
--flush-on-close | Megmondja a programnak, hogy az írásra megnyitott fájlok bezárásakor a memóriában tárolt összes adatot törölje a tárolóba. Ez arra használható, hogy megakadályozza az adatvesztést áramkimaradás esetén, vagy hogy megkerülje az operációs rendszer vagy az illesztőprogramok bizonyos problémáit. Hátránya, hogy a multiplexelés tovább tart, mivel az mkvmerge a kilépés előtt megvárja, amíg minden adat kiíródik a tárolóba. Az előnyök és hátrányok részletes megvitatásáért lásd az MKVToolNix hibakövetőjének #2469 és #2480 kérdéseit.
--ui-language code | Kényszeríti a nyelv kód fordításainak használatát (pl. 'de_DE' a német fordításokhoz). A 'list' mint kód megadásával a program kiadja a rendelkezésre álló fordítások listáját.
--abort-on-warnings | A program megszakítására utasítja a programot az első figyelmeztetés megjelenése után. A program kilépési kódja 1 lesz.
--determinisztikus mag | Lehetővé teszi a byte-azonos fájlok létrehozását, ha az mkvmerge(1) azonos verzióját ugyanazokkal a forrásfájlokkal, ugyanazokkal az opciókkal és ugyanazzal a maggal használjuk. Vegye figyelembe, hogy a "date" szegmensinformációs mező ebben az üzemmódban nem íródik ki.

A mag lehet tetszőleges karakterlánc, és nem kell, hogy szám legyen.

A byte-azonos fájlok eredménye csak a következő feltételek mellett garantált:

1. A libEBML és libMatroska azonos verzióival épített mkvmerge(1) változatát használja.

2. A felhasznált forrásfájlok byte-azonosak.

3. Ugyanazokat a parancssori opciókat ugyanabban a sorrendben használjuk (a --output ... kivételével).

Az mkvmerge(1) más verzióinak vagy más parancssori opcióknak a használata ugyanolyan byte-azonos fájlt eredményezhet, de ez nem garantált.

--debug topic | A hibakeresés bekapcsolása egy adott funkcióhoz. Ez az opció csak fejlesztők számára hasznos.
--engage feature | Kapcsolja be a kísérleti funkciókat. Az elérhető funkciók listája a mkvmerge --engage list paranccsal kérhető le. Ezek a funkciók nem használhatók normál helyzetekben.
--gui-mode | Bekapcsolja a GUI módot. Ebben az üzemmódban speciálisan formázott sorokat adhat ki, amelyekkel a vezérlő GUI-nak elmondhatja, hogy mi történik. Ezek az üzenetek a '#GUI#message' formátumot követik. Az üzenetet kulcs/érték párok követhetik, mint a '#GUI#üzenet#key1=value1#key2=value2...'. Sem az üzenetek, sem a kulcsok nem kerülnek lefordításra, és mindig angol nyelven kerülnek kiadásra.
@options-file.json | További parancssori argumentumokat olvas be a options-file fájlból. További információkért lásd a opciós fájlok című részt. Ha a @ jelet akarod használni egy olyan opció argumentumának első karaktereként, mint például a '--title', akkor egy második @ jellel kell megkerülnöd. Példa:
    $ mkvmerge -o midnight-s01e01.mkv --title @@midnight midnight-s01e01.mp4
---képességek | A beállított és kilépő opcionális funkciókról szóló információkat listázza. Az első kimeneti sor a verzióinformáció lesz. Minden következő sor pontosan egy szót tartalmaz, amelynek jelenléte azt jelzi, hogy a funkciót befordították. Ezek a jellemzők a következők:

- 'FLAC' -- reading raw FLAC files and handling FLAC tracks in other containers, e.g. Ogg(tm) or Matroska(tm).

-h, --help | Használati információk megjelenítése és kilépés.
-V, --version | Verzióinformációk megjelenítése és kilépés.

# 3. Használat

A felhasználó minden egyes fájlhoz kiválaszthatja, hogy az mkvmerge(1) milyen sávokat vegyen fel. Ezek mindegyike a -o opcióval megadott fájlba kerül. Az ismert (és támogatott) forrásformátumok listáját a -l opcióval kaphatjuk meg.

Important:

A parancssori opciók sorrendje fontos. Kérjük, olvassa el a "Opciók sorrendje" részt, ha még nem ismeri a programot.

# 4. Opciós sorrend

Az opciók beírásának sorrendje néhány opció esetében fontos. Az opciók két kategóriába sorolhatók:

1. Olyan beállítások, amelyek a program egészére hatnak, és nem kötődnek semmilyen bemeneti fájlhoz. Ezek közé tartozik többek között a --command-line-charset, --output vagy --title. Ezek bárhol megjelenhetnek a parancssorban.

2. Olyan beállítások, amelyek egyetlen bemeneti fájlra vagy egy bemeneti fájl egyetlen sávjára vonatkoznak. Ezek az opciók mind a következő bemeneti fájlra vonatkoznak a parancssorban. Az ugyanarra a bemeneti fájlra (vagy ugyanannak a bemeneti fájlnak a sávjaira) vonatkozó összes opciót tetszőleges sorrendben írhatja ki, amíg mind a bemeneti fájl neve előtt szerepelnek. Példák egy bemeneti fájlra vonatkozó beállításokra: --no-chapters vagy --chapter-charset. Példák az egyetlen pályára vonatkozó beállításokra: --default-duration vagy --language.

Az opciókat balról jobbra haladva dolgozzuk fel. Ha egy opció többször is megjelenik ugyanazon a hatókörön belül, akkor az utolsó előfordulás kerül felhasználásra. Ezért a cím a következő példában "Valami más" lesz:

    $ mkvmerge -o output.mkv --title 'Ez meg az' input.avi --title 'Valami más'

A következő példa azt mutatja, hogy a --language opció kétszeri használata rendben van, mivel különböző hatókörökben használatosak. Annak ellenére, hogy ugyanarra a track ID-re vonatkoznak, különböző bemeneti fájlokra vonatkoznak, ezért különböző hatókörrel rendelkeznek:

    $ mkvmerge -o output.mkv --language 0:fre français.ogg --language 0:deu deutsch.ogg

# 5. Példák

Tegyük fel, hogy van egy MyMovie.avi nevű fájlod, a hangsáv pedig egy külön fájlban, például 'MyMovie.wav'. Először a hangot szeretnénk OggVorbis(tm) -ra kódolni:

    $ oggenc -q4 -oMyMovie.ogg MyMovie.wav

Néhány perc múlva már össze is kapcsolhatja a videót és a hangot:

    $ mkvmerge -o MyMovie-with-sound.mkv MyMovie.avi MyMovie.ogg

Ha a AVI már tartalmaz egy hangsávot, akkor az is másolásra kerül (ha az mkvmerge(1) támogatja az audio formátumot). Ennek elkerülése érdekében egyszerűen csináld a

    $ mkvmerge -o MyMovie-with-sound.mkv -A MyMovie.avi MyMovie.ogg

Néhány perc gondolkodás után egy másik hangsávot, például a rendezői kommentárokat vagy egy másik nyelvet másolhatsz a 'MyMovie-add-audio.wav' címre. Kódold újra, és illeszd össze a másik fájlhoz:

    $ oggenc -q4 -oMyMovie-add-audio.ogg MyMovie-add-audio.wav
    $ mkvmerge -o MM-complete.mkv MyMovie-with-sound.mkv MyMovie-add-audio.ogg

Ugyanez az eredmény érhető el a

    $ mkvmerge -o MM-complete.mkv -A MyMovie.avi MyMovie.ogg MyMovie-add-audio.ogg

Now fire up mplayer(tm) and enjoy. If you have multiple audio tracks (or even video tracks) then you can tell mplayer(tm) which track to play with the '-vid' and '-aid' options. These are 0-based and do not distinguish between video and audio.

Ha egy hangsáv szinkronizálására van szüksége, azt könnyen megteheti. Először is derítse ki, hogy a Vorbis sáv milyen sávazonosítóval rendelkezik a következővel

    $ mkvmerge --identify outofsync.ogg

Most már használhatja ezt az azonosítót a következő parancssorban:

    $ mkvmerge -o goodsync.mkv -A source.avi -y 12345:200 outofsync.ogg

Ez 200 ms csendet adna a hangsáv elejére a 12345 azonosítóval, amely a 'outofsync.ogg' fájlból származik.

Néhány film helyesen szinkronizálva indul, de lassan eltűnik a szinkronból. Az ilyen típusú filmeknél megadhat egy késleltetési tényezőt, amely az összes időbélyegre vonatkozik - nem adunk hozzá vagy veszünk el adatokat. Ha tehát ezt a tényezőt túl nagyra vagy túl kicsire állítod be, rossz eredményt kapsz. Egy példa: egy általam átkódolt epizód 0,2 másodperccel volt szinkronban a film végén, amely 77340 képkocka hosszú volt. 29,97fps mellett 0,2 másodperc kb. 6 képkockának felel meg. Tehát

    $ mkvmerge -o goodsync.mkv -y 23456:0,77346/77340 outofsync.mkv

Az eredmény rendben volt.

A szinkronizálási beállítások ugyanígy használhatók a feliratokhoz is.

For text subtitles you can either use some Windows software (like SubRipper(tm)) or the subrip(tm) package found in transcode(1)'s sources in the 'contrib/subrip' directory. The general process is:

1. nyers feliratfolyam kivonása a forrásból:

       $ tccat -i /path/to/copied/dvd/ -T 1 -L | tcextract -x ps1 -t vob -a 0x20 | subtitle2pgm -o mymovie

2. a kapott PGM-képeket gocr segítségével szöveggé alakítja:

       $ pgm2txt mymovie

3. a keletkező szövegfájlok helyesírás-ellenőrzése:

       $ ispell -d american *txt

4. a szöveges fájlokat SRT-fájlokká konvertálja:

       $ srttool -s -w -i mymovie.srtx -o mymovie.srt

Az így kapott fájl használható a mkvmerge(1) másik bemeneti fájljaként:

    $ mkvmerge -o mymovie.mkv mymovie.avi mymovie.srt

Ha egy adott pálya nyelvét szeretné megadni, akkor ez könnyen megtehető. Először keresse meg a nyelv ISO 639-2 kódját. mkvmerge(1) fel tudja sorolni az összes ilyen kódot:

    $ mkvmerge --list-languages

Keresse meg a listán a kívánt nyelveket. Tegyük fel, hogy két hangsávot helyezett el egy Matroska(tm) fájlba, és be akarja állítani a nyelvi kódjaikat, és a sáv azonosítójuk 2 és 3. Ezt a következővel lehet megtenni

    $ mkvmerge -o with-lang-codes.mkv --language 2:ger --language 3:dut without-lang-codes.mkv

Mint látható, a --nyelv kapcsolót többször is használhatja.

Talán azt is szeretnéd, hogy a játékos a holland nyelvet használja alapértelmezett nyelvként. Ön is rendelkezik extra feliratokkal, például angol és francia nyelven, és szeretné, ha a lejátszó alapértelmezés szerint a francia feliratokat jelenítené meg. Ezt a következővel teheti meg

    $ 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

Ha nem látja az mkvinfo(1) kimenetén a megadott nyelvet vagy alapértelmezett sávjelzőket, akkor olvassa el a alapértelmezett értékek című részt.

Egy bemeneti fájl tömörítésének kikapcsolása.

    $ mkvmerge -o no-compression.mkv --compression -1:none MyMovie.avi --compression -1:none mymovie.srt

# 6. Pálya azonosítók

## 6.1. Rendszeres pálya azonosítók

A mkvmerge(1) egyes opcióihez szükség van egy sávazonosítóra, hogy megadja, melyik sávra kell alkalmazni őket. Ezeket a sávazonosítókat az olvasók az aktuális bemeneti fájl demuxolásakor nyomtatják ki, vagy ha az mkvmerge(1) a --identify opcióval kerül meghívásra. Egy példa az ilyen kimenetre:

    $ mkvmerge -i v.mkv
    Fájl 'v.mkv': tároló: Matroska
    Sáv ID 0: videó (V_MS/VFW/FOURCC, DIV3)
    Sáv ID 1: hang (A_MPEG/L3)

Ne keverje össze a kimeneti MKV-fájlban elhelyezett sávokhoz rendelt sávazonosítókat a bemeneti fájlok sávazonosítóival. Csak a bemeneti fájl sávazonosítói kerülnek felhasználásra az ezeket az értékeket igénylő opciókhoz.

Vegye figyelembe azt is, hogy minden egyes bemeneti fájlnak saját sávazonosítói vannak. Ezért a 'file1.ext' fájl 'mkvmerge --identify' által jelentett track ID-je nem változik, függetlenül attól, hogy hány másik bemeneti fájl van, vagy hogy a 'file1.ext' milyen pozícióban van.

A pálya azonosítók kiosztása a következőképpen történik:

- AVI fájlok: A videó sáv azonosítója 0. A hangsávok 1-től kezdődően növekvő sorrendben kapnak azonosítót.

- AAC, AC-3, MP3, SRT és WAV fájlok: A fájlban lévő egyetlen 'track' a 0 azonosítót kapja.

- A legtöbb más fájl: A sávazonosítók a sávok sorrendjében vannak hozzárendelve a fájlban, 0-tól kezdve.

Azok az opciók használják a track ID-ket, amelyek leírása tartalmazza a 'TID' szót. A következő opciók is használják a track ID-ket: --audio-sávok, --videósávok, -felirat-sávok, --gomb-sávok és -sáv-címkék.

## 6.2. Speciális pálya azonosítók

Számos olyan azonosító van, amely különleges jelentéssel bír, és nem fordul elő az azonosító kimeneten.

A '-1' speciális sávazonosító egy joker, és a megadott kapcsolót minden olyan sávra alkalmazza, amelyet a bemeneti fájlból olvas be.

A '-2' speciális sávazonosító a forrásfájlban lévő fejezetekre utal. Jelenleg csak a --sync opció használja ezt a speciális azonosítót. A --sync -2:... alternatívájaként a --chapter-sync ... opció használható.

# 7. Nyelvi kezelés

Matroska(tm) két különböző típusú nyelvi elemet támogat: a régi, elavult "Language" elemet, amely ISO 639-2 alpha 3 kódokat tartalmaz, és az új "LanguageIETF" címkéket, amelyek az IETF BCP 47 nyelvi címkéket tartalmazzák. Az mkvmerge(1) minden olyan opciója, amely elfogadja a nyelvet, elfogadja a BCP 47 nyelvi címkéket. Az mkvmerge(1) az elavult "Language" elem értékét, ahol csak lehetséges, a BCP 47 nyelvi címkékből származtatja.

A JSON módban egy fájl azonosításakor a meglévő "LanguageIETF" track fejlécelemek a language_ietf track tulajdonságként kerülnek kimenetre.

A fájl írásakor az mkvmerge(1) mindig kiírja a "LanguageIETF", "ChapLanguageIETF" és "TagLanguageIETF" elemeket (az utóbbi kettőt csak akkor, ha fejezeteket vagy címkéket írunk). Ezeken az elemeken kívül a megfelelő régi elemek is kiírásra kerülnek; ezek a BCP 47 nyelvi címkék ISO 639-2 kódrészére lesznek beállítva. Például, ha a pálya nyelve sr-Cyrl-RS, akkor a "LanguageIETF" elem sr-Cyrl-RS lesz, a régi "Language" elem pedig srp lesz.

A meglévő fájlok (Matroska fájlok, XML fejezetek vagy tag fájlok stb.) beolvasásakor, amelyek már tartalmaznak "...LanguageIETF" elemeket, a meglévő elemek megmaradnak. Ellenkező esetben "...LanguageIETF" elemek kerülnek hozzáadásra a parancssori beállítások és más meglévő, elavult "...Language" elemek alapján.

Az új elemek létrehozása teljesen letiltható a parancssori --disable-language-ietf opcióval, amely mindhárom új elemre hat.

A kiterjesztett nyelvi alcímkékre alkalmazott normalizálási módszert a --normalize-language-ietf paraméterrel választhatja ki.

# 8. Szövegfájlok és karakterkészlet-átalakítások

Note:

Ez a szakasz az MKVToolNix összes programjára vonatkozik, még akkor is, ha csak az mkvmerge(1) szerepel benne.

## 8.1. Bevezetés

A Matroska(tm) fájlban minden szöveg UTF-8 kódolású. Ez azt jelenti, hogy az mkvmerge(1) -nek minden beolvasott szövegfájlt, valamint a parancssorban megadott minden szöveget egy karakterkészletből UTF-8-ra kell konvertálnia. Cserébe ez azt is jelenti, hogy az mkvmerge(1) kimenetét UTF-8-ból vissza kell konvertálni az adott karakterkészletbe, például ha nem angol fordítást használunk a --ui-language vagy egy Matroska(tm) fájlból származó szöveg esetében.

mkvmerge(1) ezt a konverziót automatikusan elvégzi a bájtsorrend-jelölő (rövid: BOM) vagy a rendszer aktuális nyelvjárása alapján. Az, hogy a karakterkészletet hogyan következtetjük ki a nyelvi beállításból, attól függ, hogy az mkvmerge(1) milyen operációs rendszeren fut.

## 8.2. Bájtsorrend-jelölők (BOM)

A BOM-mal kezdődő szövegfájlok már az UTF egyik ábrázolásában vannak kódolva. mkvmerge(1) a következő öt módot támogatja: UTF-8, UTF-16 Little és Big Endian, UTF-32 Little és Big Endian. A BOM-ot tartalmazó szövegfájlok automatikusan UTF-8-ra konvertálódnak. Minden olyan paramétert, amely egyébként beállítaná az ilyen fájl karakterkészletét (pl. --sub-charset), némán figyelmen kívül hagy.

## 8.3. Linux és Unix-szerű rendszerek, beleértve a macOS-t is

Unix-szerű rendszereken az mkvmerge(1) a setlocale(3) rendszerhívást használja, amely viszont a LANG, LC_ALL és LC_CYPE környezeti változókat használja. Az eredményül kapott karakterkészlet gyakran az UTF-8 vagy az ISO-8859-* család valamelyike, és minden szöveges fájlművelethez, valamint a parancssorban és a konzolra történő kimenethez használt karakterláncok kódolásához használatos.

## 8.4. Windows

A Windows rendszerben a szövegfájlok konvertálásához használt alapértelmezett karakterkészletet a GetACP() rendszerhívás meghívásával lehet meghatározni.

A parancssor beolvasása a GetCommandLineW() függvénnyel történik, amely már egy Unicode karakterláncot ad vissza. Ezért a --command-line-charset opciót Windowson figyelmen kívül hagyjuk.

A konzolra történő kimenet három forgatókönyvből áll:

1. Ha a kimenet átirányítása a --redirect-output opcióval történik, akkor az alapértelmezett karakterkészlet UTF-8. Ez a --output-charset segítségével módosítható.

2. Ha a kimenet átirányítása magával a cmd.exe paranccsal történik, pl. a mkvinfo file.mkv > info.txt paranccsal, akkor a karakterkészlet mindig UTF-8, és nem módosítható.

3. Ellenkező esetben (amikor közvetlenül a konzolra írunk) a Windows függvényt WriteConsoleW() használjuk, és a --output-charset opciót figyelmen kívül hagyjuk. A konzolnak minden olyan Unicode karaktert ki kell tudnia adni, amelyhez a megfelelő nyelvi támogatás telepítve van (pl. a kínai karakterek esetleg nem jelennek meg az angol nyelvű Windows verziókon).

## 8.5. Parancssori opciók

A következő opciókkal lehet megadni a karakterkészleteket:

- --sub-charset szöveges feliratfájlok és olyan tárolóformátumokban tárolt szöveges felirat-sávok esetében, amelyek karakterkészlete nem határozható meg egyértelműen (pl. Ogg fájlok),

- --chapter-charset a fejezetek szöveges fájljaihoz, valamint az olyan tárolóformátumokban tárolt fejezetekhez és fájlcímekhez, amelyek karakterkészlete nem határozható meg egyértelműen (pl. Ogg fájlok a fejezetinformációkhoz, szám- és fájlcímekhez stb.; MP4 fájlok a fejezetinformációkhoz),

- --command-line-charset a parancssorban lévő összes karakterláncra,

- --output-charset minden, a konzolra vagy egy fájlba írt karakterláncra, ha a kimenet átirányításra került a --redirect-output opcióval. Nem Windows rendszereken a kimeneti karakterkészlet alapértelmezett értéke a rendszer aktuális karakterkészlete. Windows rendszereken UTF-8 az alapértelmezés mind az --redirect-output, mind maga a cmd.exe parancs, pl. mkvinfo file.mkv > info.txt átirányításakor.

# 9. Opciós fájlok

Az opciós fájl egy olyan fájl, amelyből az mkvmerge(1) további parancssori argumentumokat olvashat be. Ez arra használható, hogy külső programok futtatásakor megkerüljük a shell vagy az operációs rendszer bizonyos korlátait, például a parancssor korlátozott hosszát.

Az opciós fájl JSON-formátumú adatokat tartalmaz. Tartalmának egy érvényes JSON tömbnek kell lennie, amely kizárólag JSON karakterláncokból áll. A fájl kódolásának UTF-8-nak kell lennie. A fájl nem kezdődhet bájtsorrend-jelöléssel (BOM), de ha van ilyen, akkor azt a rendszer kihagyja.

A JSON-on belüli speciális karakterek kikerülésére vonatkozó szabályok a hivatalos JSON specifikációban, a RFC 7159-ben találhatók.

Magát az opciós fájl nevét parancssori argumentumként kell megadni, a '@' karakterrel előtaggal.

A parancssor 'mkvmerge -o "my file.mkv" -A "a film.avi" sound.ogg' átalakítható a következő JSON opciós fájlba, amelynek neve pl. 'options.json':

    [
     "-o",
     "c:\\Matroska\\my file.mkv",
     "--title",
     "#65",
     "-A",
     "a movie.avi",
     "sound.ogg"
    ]

A megfelelő parancs ez esetben a következő lenne: 'mkvmerge @options.json'.

# 10. Fájlok összekapcsolása

Matroska(tm) támogatja a fájlok összekapcsolását, ami egyszerűen azt jelenti, hogy egy adott fájl az aktuális fájl elődje vagy utódja. Pontosabban, nem is a fájlokat linkeli, hanem az Matroska(tm) szegmenseket. Mivel a legtöbb fájl valószínűleg csak egy Matroska(tm) szegmenst tartalmaz, a következő magyarázatokban a 'fájlkapcsolás' kifejezést használjuk, bár a 'szegmenskapcsolás' kifejezés helyesebb lenne.

Minden egyes szegmenst egy 128 bites egyedi szegmens UID azonosító azonosít. Ezt az UID-t az mkvmerge(1) automatikusan generálja. Az összekapcsolás elsősorban úgy történik, hogy az előző/következő fájl szegmens UID-it (röviden: SID) beillesztjük a szegmens fejléc információiba. mkvinfo(1) kiírja ezeket a SID-ket, ha megtalálja őket.

Ha egy fájl több kisebbre van osztva, és összekapcsolást használunk, akkor az időbélyegek nem 0-ról indulnak újra, hanem ott folytatódnak, ahol az utolsó fájl abbahagyta. Így az abszolút idő akkor is megmarad, ha az előző fájlok nem állnak rendelkezésre (pl. streaming esetén). Ha nem használunk linkelést, akkor az időbélyegeknek minden egyes fájl esetében 0-ról kell kezdődniük. Alapértelmezés szerint az mkvmerge(1) nem használja a fájlok összekapcsolását. Ha ezt szeretné, akkor a --link opcióval bekapcsolhatja. Ez az opció csak akkor hasznos, ha az osztás is be van kapcsolva.

Függetlenül attól, hogy a felosztás aktív-e vagy sem, a felhasználó megmondhatja az mkvmerge(1) parancsnak, hogy az előállított fájlokat meghatározott SID-khez kösse. Ezt a --link-to-previous és --link-to-next opciókkal lehet elérni. Ezek az opciók egy SID szegmenst fogadnak el abban a formátumban, amelyet az mkvinfo(1) kiad: 0x00 és 0xff közötti 16 hexadecimális számot, amelyek mindegyikének előtagja '0x', pl. '0x41 0xda 0x73 0x66 0xd9 0xcf 0xb2 0x1e 0xae 0x78 0xeb 0xb4 0x5e 0xca 0xb3 0x93'. Alternatívaként egy rövidebb forma is használható: 16 hexadecimális szám 0x00 és 0xff között, a '0x' előtagok és a szóközök nélkül, pl. '41da7366d9cfb21eae78ebb45ecab393'.

Ha a megosztást használja, akkor az első fájl a SID opcióval megadott --link-to-previous, az utolsó fájl pedig a SID opcióval megadott --link-to-next azonosítóhoz kapcsolódik. Ha a szétválasztást nem használjuk, akkor az egyik kimeneti fájl mind a két SID-hez kapcsolódik.

# 11. Alapértelmezett értékek

A Matroska(tm) specifikáció szerint néhány elemnek alapértelmezett értéke van. Általában egy elemet nem írunk a fájlba, ha az értéke megegyezik az alapértelmezett értékkel, hogy helyet takarítsunk meg. Azok az elemek, amelyeket a felhasználó esetleg hiányolhat az mkvinfo(1) kimenetéből, a nyelv és a alapértelmezett sávjelző elemek. A language alapértelmezett értéke az angol ('eng'), a default track flag alapértelmezett értéke pedig true. Ezért ha a --language 0:eng-t használta egy trackhez, akkor az nem fog megjelenni az mkvinfo(1) kimenetén.

# 12. Mellékletek

Maybe you also want to keep some photos along with your Matroska(tm) file, or you're using SSA subtitles and need a special TrueType(tm) font that's really rare. In these cases you can attach those files to the Matroska(tm) file. They will not be just appended to the file but embedded in it. A player can then show those files (the 'photos' case) or use them to render the subtitles (the 'TrueType(tm) fonts' case).

Here's an example how to attach a photo and a TrueType(tm) font to the output file:

    $ mkvmerge -o output.mkv -A video.avi sound.ogg \\
     --attachment-description "Én és a zenekar a színpad mögött egy kis összejövetelen" \\
     --attachment-mime-type image/jpeg \\
     --attach-file me_and_the_band.jpg \\
     --attachment-description "Az igazán ritka és hihetetlenül jól kinéző betűtípus" \\
     --attachment-mime-type application/octet-stream \\
     --attach-file really_cool_font.ttf

Ha egy mellékleteket tartalmazó Matroska(tm) fájlt használunk bemeneti fájlként, akkor az mkvmerge(1) átmásolja a mellékleteket az új fájlba. A --attachments és --no-attachments opciókkal módosítható, hogy mely mellékleteket másolja és melyeket nem.

# 13. Fejezetek

A Matroska(tm) fejezetrendszer sokkal erősebb, mint a OGM fájlok által használt régi ismert rendszer. A teljes specifikáció megtalálható a a Matroska weboldalon.

mkvmerge(1) kétféle fejezetfájlt támogat bemenetként. Az első formátum, az úgynevezett 'egyszerű fejezetformátum' ugyanaz a formátum, mint amit a OGM eszközök elvárnak. A második formátum egy XML. alapú fejezetformátum, amely támogatja a Matroska(tm) összes fejezetfunkcióját.

Eltekintve a dedikált fejezet fájlokat mkvmerge(1) is olvasni fejezetek más fájlformátumok (pl. MP4, Ogg, Blu-ray vagy DVD).

## 13.1. Az egyszerű fejezet formátum

Ez a formátum olyan sorpárokból áll, amelyek 'CHAPTERxx=' és 'CHAPTERxxNAME=' kezdetűek. Az első tartalmazza a kezdő időbélyeget, míg a második a címet. Íme egy példa:

    CHAPTER01=00:00:00.000
    CHAPTER01NAME=Előszó
    CHAPTER02=00:02:30.000
    CHAPTER02NAME=A baba felkészül a ringatásra
    CHAPTER03=00:02:42.300
    CHAPTER03NAME=A baba ringatja a házat

mkvmerge(1) minden pár vagy sor egy Matroska(tm) ChapterAtom. Nem állít be semmilyen ChapterTrackNumber-t, ami azt jelenti, hogy minden fejezet a fájl összes sávjára vonatkozik.

Mivel ez egy szöveges fájl, a karakterkészlet átalakítására lehet, hogy szükség lesz. Lásd a szövegfájlok és karakterkészletek című szakaszt, ahol elmagyarázzuk, hogyan konvertál az mkvmerge(1) a karakterkészletek között.

## 13.2. Az XML. alapú fejezet formátum

Az XML. alapú fejezetformátum a következő példában látható:

    <?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>Egy rövid fejezet</ChapterString>
     <ChapterLanguage>eng</ChapterLanguage>
     </ChapterDisplay>
     <ChapterAtom>
     <ChapterTimeStart>00:00:46.000</ChapterTimeStart>
     <ChapterTimeEnd>00:01:10.000</ChapterTimeEnd>
     <ChapterDisplay>
     <ChapterString>A rövid fejezet egy része</ChapterString>
     <ChapterLanguage>eng</ChapterLanguage>
     </ChapterDisplay>
     </ChapterAtom>
     </ChapterAtom>
     </EditionEntry>
    </Chapters>

Ezzel a formátummal három olyan dolog lehetséges, ami az egyszerű fejezetformátummal nem:

1. Beállítható a fejezet végének időbélyege,

2. a fejezetek egymásba ágyazhatók,

3. a nyelv és az ország beállítható.

Az mkvtoolnix disztribúció tartalmaz néhány mintafájlt a doc alkönyvtárban, amelyek alapul szolgálhatnak.

Az alábbiakban felsoroljuk a támogatott XML-címkéket, adattípusaikat és adott esetben az értékeik érvényes tartományát:

    Chapters (master)
     EditionEntry (master)
     EditionUID (előjel nélküli egész szám, érvényes tartomány: 1 <= érték)
     EditionFlagHidden (előjel nélküli egész szám, érvényes tartomány: 0 <= érték <= 1)
     EditionFlagDefault (előjel nélküli egész szám, érvényes tartomány: 0 <= érték <= 1)
     EditionFlagOrdered (előjel nélküli egész szám, érvényes tartomány:
     ChapterAtom (master)
     ChapterAtom (master)
     ChapterUID (előjel nélküli egész szám, érvényes tartomány: 1 <= érték)
     ChapterTimeStart (előjel nélküli egész szám)
     ChapterTimeEnd (előjel nélküli egész szám)
     ChapterFlagHidden (előjel nélküli egész szám, érvényes tartomány: 0 <= érték <= 1)
     ChapterFlagEnabled (előjel nélküli egész szám, érvényes tartomány:  1 <= érték)
     ChapterDisplay (master)
     ChapterString (UTF-8 string)
     ChapterLanguage (UTF-8 string)
     ChapterCountry (UTF-8 string)
     ChapterProcess (master)
     ChapterProcessCodecID (előjel nélküli egész)
     ChapterProcessPrivate (bináris)
     ChapterProcessCommand (master)
     ChapterProcessTime (előjel nélküli egész)
     ChapterProcessData (bináris)

## 13.3. Fejezetek olvasása Blu-ray lemezekről

mkvmerge(1) képes fejezeteket olvasni a titkosítatlan Blu-ray lemezekről. Ehhez használhatja az egyik MPLS lejátszási lista elérési útvonalát a --fejezetek paraméterrel.

Példa: --chapters /srv/blurays/BigBuckBunny/BDMV/PLAYLIST/00001.mpls

## 13.4. Fejezetek olvasása DVD-ről

When MKVToolNix is compiled with the libdvdread(tm) library, mkvmerge(1) can read chapters from DVDs. For that you can use the path to one of the folders or files on the DVD with the --chapters parameter. As DVDs can contain more than one title and each title has its own set of chapters, you can append a colon and the desired title number to the end of the file name argument. The title number defaults to 1.

Példa: --fejezetek /srv/dvds/BigBuckBunny/VIDEO_TS:2

## 13.5. Általános megjegyzések

A fájlok felosztásakor a mkvmerge(1) helyesen állítja be a fejezeteket is. Ez azt jelenti, hogy minden fájl csak a rá vonatkozó fejezetbejegyzéseket tartalmazza, és hogy az időbélyegek eltolódnak, hogy megfeleljenek az egyes kimeneti fájlok új időbélyegeinek.

Az mkvmerge(1) képes fejezeteket másolni a Matroska(tm) forrásfájlokból, hacsak ezt nem tiltja le a --no-chapters opció. Az összes forrásból származó fejezetek (Matroska(tm) fájlok, Ogg fájlok, MP4 fájlok, fejezet szöveges fájlok) általában nem kerülnek összevonásra, hanem külön ChapterEditions -ben végzik. Csak akkor, ha a fejezeteket több Matroska(tm) vagy XML. fájlból olvassa be, amelyeknek ugyanaz a kiadás UID-je, a fejezetek egyetlen ChapterEdition-be lesznek összevonva. Ha ilyen összevonásra van szükség más helyzetekben is, akkor a felhasználónak először ki kell vonnia a fejezeteket az összes forrásból a mkvextract(1) segítségével, majd kézzel össze kell vonnia az XML. fájlokat, és utána össze kell őket kevernie.

# 14. Címkék

## 14.1. Bevezetés

A Matroska(tm) címke rendszere hasonló más konténerekéhez: KEY=VALUE párok halmaza. Az Matroska(tm)-ban azonban ezek a címkék egymásba is ágyazhatók, és mind a KEY, mind a VALUE saját elemek. A example-tags-2.xml példafájl mutatja be ennek a rendszernek a használatát.

## 14.2. A címkék alkalmazási köre

Matroska(tm) címkék nem vonatkoznak automatikusan a teljes fájlra. Lehetnek, de a fájl különböző részeire is vonatkozhatnak: egy vagy több zeneszámra, egy vagy több fejezetre, vagy akár a kettő kombinációjára is. A Matroska specifikáció további részleteket tartalmaz erről a tényről.

Egy fontos tény, hogy a címkék a Targets Matroska(tm) tag elemmel kapcsolódnak a számokhoz vagy fejezetekhez, és hogy az ehhez a kapcsolódáshoz használt UID-k nem a számok azonosítói, amelyeket az mkvmerge(1) mindenhol használ. Ehelyett a használt számok azok az UID-k, amelyeket az mkvmerge(1) automatikusan kiszámít (ha a track nem Matroska(tm) fájlformátumból származik), vagy amelyeket a forrásfájlból másolnak, ha a track forrásfájlja egy Matroska(tm) fájl. Ezért nehéz megmondani, hogy melyik UID-t kell használni a tag fájlban, mielőtt a fájlt átadnánk az mkvmerge(1) -nek.

Az mkvmerge(1) két opciót ismer, amelyekkel címkéket adhat hozzá a Matroska(tm) fájlokhoz: A --global-tags és a --tags opciókat. A különbség az, hogy az előbbi opció, --global-tags a címkéket a teljes fájlra vonatkoztatja, eltávolítva a fent említett Targets elemek bármelyikét. Az utóbbi opció, --tags, automatikusan beilleszti az UID-t, amelyet az mkvmerge(1) generál a --tags opció TID részével megadott címkéhez.

## 14.3. Példa

Tegyük fel, hogy címkéket akarsz hozzáadni egy AVI-ről beolvasott videósávhoz. mkvmerge --identify file.avi megmondja, hogy a videósáv azonosítója (ne keverjük össze ezt az azonosítót az UID-vel!) 0. Tehát létrehozzuk a címkefájlt, kihagyjuk az összes Targets elemet és meghívjuk az mkvmerge(1) -t:

    $ mkvmerge -o file.mkv --tags 0:tags.xml file.avi

## 14.4. Címke fájlformátum

mkvmerge(1) támogatja az XML. alapú tag fájlformátumot. A formátum nagyon szorosan a Matroska specifikáció mintájára készült. Az MKVToolNix bináris és forráskódú disztribúciói egyaránt tartalmaznak egy example-tags-2.xml nevű mintafájlt, amely egyszerűen felsorolja az összes ismert taget, és amely alapul szolgálhat a valós tagfájlokhoz.

Az alapok a következők:

- A legkülső elemnek <Tags> kell lennie.

- Egy logikai címke egy pár <Címke> XML. címkén belül található.

- A közvetlenül a címkék tartalma előtt és után lévő szóközöket figyelmen kívül hagyjuk.

## 14.5. Adattípusok

Az új Matroska(tm) címkézési rendszer csak két adattípust ismer, egy UTF-8 karakterláncot és egy bináris típust. Az elsőt a tag nevéhez és a <String> elemhez használjuk, míg a bináris típust a <Binary> elemhez.

Mivel a bináris adatok önmagukban nem férnek bele egy XML. fájlba, az mkvmerge(1) két másik módszert is támogat a bináris adatok tárolására. Ha egy XML. tag tartalma '@'-val kezdődik, akkor a következő szöveget fájlnévként kezeli. A megfelelő fájl tartalma bemásolódik a Matroska(tm) elembe.

Ellenkező esetben az adatok várhatóan Base64 kódolásúak lesznek. Ez egy olyan kódolás, amely a bináris adatokat ASCII karakterek korlátozott halmazává alakítja át, és például e-mail programokban használatos. mkvextract(1) a bináris elemek Base64 kódolt adatait adja ki.

A deprecated tagging rendszer ismer még néhány adattípust, amelyek a hivatalos Matroska(tm) tag specifikációkban találhatók. Mivel az mkvmerge(1) már nem támogatja ezt a rendszert, ezeket a típusokat itt nem írjuk le.

## 14.6. Ismert címkék az XML fájlformátumhoz

Az alábbiakban felsoroljuk a támogatott XML-címkéket, adattípusaikat és adott esetben az értékeik érvényes tartományát:

    Címkék (master)
     Címke (master)
     Célpontok (master)
     TargetTypeValue (előjel nélküli egész szám)
     TargetType (UTF-8 string)
     TrackUID (előjel nélküli egész szám)
     EditionUID (előjel nélküli egész szám)
     ChapterUID (előjel nélküli egész szám)
     AttachmentUID (előjel nélküli egész szám)
     Simple (master)
     Simple (master)
     Name (UTF-8 string)
     TagLanguage (UTF-8 string)
     DefaultLanguage (előjel nélküli egész szám)
     String (UTF-8 string)
     Binary (bináris)

# 15. Információs szegmens

A szegmensinformációs XML-fájl segítségével lehetőség van bizonyos értékek beállítására a "szegmensinformáció" fejléc mezőben egy Matroska(tm) fájlban. Ezek az értékek mindegyike nem állítható be más parancssori opciókkal.

Más "szegmensinformációk" fejléc mezők beállíthatók a parancssori opciókkal, de nem az XML-fájlon keresztül. Ide tartoznak például a --cím és a --timestamp-scale opciók.

Vannak más elemek is, amelyek sem a parancssori opciókkal, sem az XML-fájlokkal nem állíthatók be. Ezek közé tartoznak a következő elemek: DateUTC (más néven "muxing date"), MuxingApp, WritingApp és Duration. Ezeket mindig maga az mkvmerge(1) állítja be.

Az alábbiakban felsoroljuk a támogatott XML-címkéket, adattípusaikat és adott esetben az értékeik érvényes tartományát:

    Info (master)
     SegmentUID (bináris, érvényes tartomány: hossza bájtban == 16)
     SegmentFilename (UTF-8 string)
     PreviousSegmentUID (bináris, érvényes tartomány: hossza bájtban == 16)
     PreviousSegmentFilename (UTF-8 string)
     NextSegmentUID (bináris, érvényes tartomány: hossza bájtban == 16)
     NextSegmentUID (bináris, érvényes tartomány:
     NextSegmentFilename (UTF-8 string)
     SegmentFamily (bináris, érvényes tartomány: hossza bájtban == 16)
     ChapterTranslate (master)
     ChapterTranslateEditionUID (egész szám előjel nélkül)
     ChapterTranslateCodec (egész szám előjel nélkül)
     ChapterTranslateID (bináris)

# 16. Matroska fájl elrendezés

A Matroska(tm) fájlelrendezés meglehetősen rugalmas. mkvmerge(1) egy fájlt előre meghatározott módon renderel. Az eredményül kapott fájl így néz ki:

[EBML head] [szegmens {meta seek #1} [szegmensinformáció] [pályainformáció] {csatolmányok} {chapters} [cluster 1] {cluster 2} ... {cluster n} {cues} {meta seek #2} {tags}]]

A szögletes zárójelben lévő elemek opcionálisak, és a tartalomtól és a használt opcióktól függnek. Néhány megjegyzés:

- az 1. metakeresés csak kis számú 1. szintű elemet tartalmaz, és csak akkor, ha azok valóban léteznek: mellékletek, fejezetek, kulcsszavak, címkék, 2. metakeresés. A mkvmerge(1) régebbi verziói a klasztereket is ebbe a meta seek elembe tették. Ezért némi pontatlan találgatásra volt szükség ahhoz, hogy elegendő helyet foglaljunk. Ez gyakran nem sikerült. Most már csak a klasztereket tárolja a meta seek #2-ben, és a meta seek #1 a meta seek #2 elemre utal.

- A melléklet, fejezet és címke elemek csak akkor vannak jelen, ha azokat hozzáadták.

A lehető legrövidebb Matroska(tm) fájl így nézne ki:

[EBML-fej] [szegmens [szegmensinformáció] [pályainformáció] [klaszter 1]]]

Ez csak hangfájlok esetében fordulhat elő.

# 17. Külső időbélyegző fájlok

mkvmerge(1) lehetővé teszi a felhasználó számára, hogy maga válassza ki az időbélyegeket egy adott számhoz. Ez felhasználható változó képkockasebességű videofájlok létrehozásához vagy a hangban lévő hézagok beillesztéséhez. A képkocka ebben az esetben az az egység, amelyet az mkvmerge(1) Matroska(tm) blokkonként külön-külön hoz létre. Videó esetében ez pontosan egy képkocka, hang esetében pedig egy csomag az adott hangtípusból. Például AC-3 esetén ez egy csomag, amely 1536 mintát tartalmaz.

A sávok egymáshoz csatolásakor használt időbélyegfájlokat csak a sávok láncolatának első részéhez kell megadni. Ha például két fájlt csatolsz, a v1.avi és a v2.avi fájlt, és időbélyegzőket akarsz használni, akkor a parancssorodnak valahogy így kell kinéznie:

    $ mkvmerge ... --timestamps 0:my_timestamps.txt v1.avi +v2.avi

Négy formátumot ismer fel a mkvmerge(1). Az első sor mindig a verziószámot tartalmazza. Az üres sorokat, a csak szóközöket tartalmazó sorokat és a '#' kezdetű sorokat figyelmen kívül hagyja.

## 17.1. Időbélyegző fájlformátum v1

Ez a formátum a verzió sorral kezdődik. A második sor a másodpercenkénti képkockák alapértelmezett számát adja meg. Minden következő sor három, vesszővel elválasztott számot tartalmaz: a kezdőkocka (0 az első kocka), a végkocka és az ebben a tartományban lévő kockák száma. A FPS egy lebegőpontos szám, a tizedesvessző a '.' pont. A tartományok tartalmazhatnak hézagokat, amelyekre az alapértelmezett FPS értéket használja. Egy példa:

    # időbélyeg formátum v1
    assume 27.930
    800,1000,25
    1500,1700,30

## 17.2. Időbélyegző fájlformátum v2

Ebben a formátumban minden sor tartalmazza a megfelelő képkocka időbélyegét. Ezt az időbélyeget milliszekundumos pontossággal kell megadni. Lehet lebegőpontos szám, de nem feltétlenül kell, hogy az legyen. Legalább annyi időbélyegzős sort kell megadnod, ahány képkocka van a pályán. Az időbélyegeket ebben a fájlban rendezni kell. Példa 25fps esetén:

    # időbélyeg formátum v2
    0
    40
    80

## 17.3. Időbélyegző fájlformátum v3

Ebben a formátumban minden sorban szerepel egy másodpercben megadott időtartam, amelyet a másodpercenkénti képkockák opcionális száma követ. Mindkettő lehet lebegőpontos szám. Ha a másodpercenkénti képkockák száma nincs megadva, akkor az alapértelmezettet kell használni. Hang esetén hagyni kell, hogy a codec maga számolja ki a képkocka időbélyegeket. Ehhez a másodpercenkénti képkockák számaként 0.0 értéket kell használnod. A folyamban hézagokat is létrehozhatsz a 'gap' kulcsszó használatával, amelyet a hézag időtartama követ. Példa egy hangfájlra:

    # időbélyeg formátum v3
    feltételezzük 0.0
    25.325
    7.530,38.236
    ap, 10.050
    2.000,38.236

## 17.4. Időbélyegző fájlformátum v4

Ez a formátum megegyezik a v2 formátummal. Az egyetlen különbség, hogy az időbélyegeket nem kell rendezni. Ezt a formátumot szinte soha nem szabad használni.

# 18. Kilépési kódok

mkvmerge(1) három kilépési kód egyikével lép ki:

- 0 -- Ez a kilépési kód azt jelenti, hogy a muxolás sikeresen befejeződött.

- 1 -- Ebben az esetben az mkvmerge(1) legalább egy figyelmeztetést adott ki, de a muxolás folytatódott. A figyelmeztetés előtt a 'Figyelmeztetés:' szöveg áll. Az érintett problémáktól függően a kapott fájl lehet, hogy rendben van, vagy nem. A felhasználót felszólítjuk, hogy ellenőrizze mind a figyelmeztetést, mind a kapott fájlt.

- 2 -- Ezt a kilépési kódot hiba esetén használjuk. mkvmerge(1) a hibaüzenet kiadása után azonnal megszakad. A hibaüzenetek a hibás parancssori argumentumoktól kezdve az olvasási/írási hibákon át a törött fájlokig terjednek.

# 19. Környezeti változók

mkvmerge(1) az alapértelmezett változókat használja, amelyek meghatározzák a rendszer nyelvjárását (pl. LANG és a LC_* család). További változók:

Option | Description
--- | ---
MKVMERGE_DEBUG, MKVTOOLNIX_DEBUG és annak rövidített formája MTX_DEBUG. | A tartalmat úgy kezeli, mintha a --debug opcióval adta volna át.
MKVMERGE_ENGAGE, MKVTOOLNIX_ENGAGE és annak rövidített formája MTX_ENGAGE. | A tartalmat úgy kezeljük, mintha a --engage opcióval adtuk volna át.

# 20. Lásd még

mkvinfo(1), mkvextract(1), mkvpropedit(1), mkvtoolnix-gui(1)

# 21. WWW

A legfrissebb verzió mindig megtalálható a az MKVToolNix honlapon.