mkvmerge -- Fusiona fluxos multimèdia dins d'un fitxer Matroska(tm)

# 1. Sinopsis

mkvmerge opcions_globals {-o sortida} opcions_1 {fitxer_1} opcions_2 {fitxer_2} @fitxer_d_opcions.json

# 2. Descripció

Aquest programa pren l'entrada des de diversos fitxers multimèdia d'entrada i uneix els seus fluxos (tots o només els seleccionats) en un fitxer Matroska(tm); vegeu el lloc web del Matroska.

Important:

L'ordre de les opcions a la línia d'ordres és important. Si us plau, si sou novell emprant aquest programa, llegiu la secció «L'ordre de les opcions».

## 2.1. Opcions globals

Option | Description
--- | ---
-v, --verbose | Incrementa la loquacitat.
-q, --quiet | Suprimeix la sortida sobre l'estat.
-o, --output nom_fitxer | Escriu al nom_fitxer. Si s'empra la divisió, llavors aquest paràmetre es tractarà de manera un xic diferent. Per a més detalls, vegeu l'explicació sobre l'opció --split.
-w, --webm | Crea un fitxer compatible amb WebM. També s'activa si l'extensió del nom del fitxer de sortida és «webm». Aquest mode força diverses restriccions. Els únics còdecs permesos són el vídeo VP8, VP9 i les pistes d'àudio Opus, Vorbis. L'element de capçalera DocType es canviarà a «webm». Per a capítols i etiquetes, només es permet un subconjunt d'elements. El «mkvmerge(1)» eliminarà automàticament tots els elements no permesos per l'especificació.
--title títol | Estableix el títol general per al fitxer de sortida, p. ex., el nom de la pel·lícula.
--default-language codi_idioma | Estableix el codi d'idioma predeterminat que s'emprarà per a les pistes on no s'hagi establert l'idioma amb l'opció --language i per a les quals el contenidor d'origen no proporciona un idioma. El codi d'idioma predeterminat és «und» per a «undetermined» (sense determinar).

## 2.2. Informació quant a la manipulació del segment (opcions globals)

Option | Description
--- | ---
--segmentinfo nom_fitxer.xml | Llegeix la informació del segment a partir d'un fitxer en XML. Aquest fitxer pot contenir l'UID de la família del segment, l'UID del segment, l'UID del segment anterior i l'UID del segment següent. Un fitxer i una DTD d'exemple estan inclosos en la distribució de les MKVToolNix. Per a més detalls, vegeu més endavant la secció sobre els fitxers d'informació del segment en XML.
--segment-uid SID1,SID2... | Estableix els UID dels segments a emprar. Aquesta és una llista separada per comes dels UID dels segments de 128 bits en la forma usual de l'UID: nombres hexadecimals, amb el prefix «0x» o sense, amb espais o sense, exactament 32 dígits. Si el SID comença amb el signe =, llavors la resta s'interpretarà com el nom d'un fitxer Matroska, es llegirà i emprarà l'UID del segment. Cada fitxer creat conté un segment, i cada segment té un UID del segment. Si s'especifiquen més UID que segments, llavors els UID que sobrin seran ignorats. Si s'especifiquen menys UID que segments, llavors es crearan de manera aleatòria els UID que faltin.

## 2.3. Manipulació dels capítols i les etiquetes (opcions globals)

Option | Description
--- | ---
--chapter-language codi_idioma | Estableix el codi d'idioma ISO 639-2 que s'escriurà en cada entrada de capítol. De manera predeterminada és «eng». Per a més detalls, vegeu més endavant la secció sobre els capítols. Aquesta opció es pot emprar tant per a senzills fitxers de capítols, com per a fitxers d'origen que continguin capítols sense informació sobre l'idioma, p. ex., fitxers MP4 i OGM. L'idioma establert amb aquesta opció també s'usarà quan es generin els capítols amb l'opció --generate-chapters.
--chapter-charset joc_de_caràcters | Estableix el joc de caràcters que es farà servir per a la conversió a UTF-8 per a senzills fitxers de capítols. Vegeu la secció sobre la conversió per a fitxers de text i jocs de caràcters, per a veure una explicació sobre com realitza el mkvmerge(1) la conversió entre diferents jocs de caràcters. Aquest ajustament també s'aplica als capítols que es copien des de certs tipus de contenidors, p. ex., fitxers Ogg/OGM i MP4. Per a més detalls, vegeu més endavant la secció sobre els capítols.
--chapter-sync d[,o[/p]] | Ajusta els codis de temps dels capítols en el fitxer d'origen en d ms. De manera alternativa, podeu utilitzar l'opció --sync amb l'ID -2 de pista especial (vegeu la secció sobre els ID de pista especial). o/p: ajusta els codis de temps en o/p, per a fixar desfasaments lineals. Si s'omet p, de manera predeterminada serà 1. Tant o com p poden ser nombres decimals. De manera predeterminada: no hi haurà cap correcció de sincronització manual (el qual és el mateix que d = 0 i o/p = 1.0). Aquesta opció es pot emprar múltiples vegades per a un fitxer d'entrada aplicant-la a diverses pistes, seleccionant els diferents ID de les pistes cada vegada.
--generate-chapters mode | El mkvmerge(1) pot crear capítols de forma automàtica. Actualment, s'admeten els dos modes següents: «when-appending» – Aquest mode crearà un capítol al començament i un cada vegada que s'annexi un fitxer. Aquest mode també funciona amb els modes de divisió 'parts:' i 'parts-frames:'. Per a aquests modes, es generarà un capítol per a cada interval de la marca de temps adjunta (aquestes marques del temps d'inici tenen el prefix '+'). Note: El mkvmerge(1) requereix que hi hagi una pista de vídeo o d'àudio present per tal de poder determinar quan s'annexa un fitxer nou. Si es multiplexen una o més pistes de vídeo, s'emprarà la primera. D'altra manera s'emprarà la primera pista d'àudio. «interval: temps-especificat» – Aquest mode crearà un capítol a intervals fixos donats per un temps-especificat. El format segueix la forma HH:MM:SS.nnnnnnnnn o com un número seguit per una de les unitats «s», «ms» o «us». Exemple: --generate-chapters interval:45s Els noms per als capítols nous es controlen mitjançant l'opció --generate-chapters-name-template. L'idioma s'estableix amb --chapter-language, el qual haurà d'anar abans que --generate-chapters.
--generate-chapters-name-template plantilla | Això estableix la plantilla del nom per als noms dels capítols generats per l'opció --generate-chapters. Si no s'empra aquesta opció, llavors s'emprarà el «Chapter <NUM:2>» predeterminat. Hi ha diverses variables que es poden usar a la plantilla que seran substituïdes amb els valors reals quan es generi un capítol. La cadena «<NUM>» serà substituïda pel número de capítol. La cadena «<START>» serà substituïda pel codi de temps d'inici del capítol. Les cadenes «<FILE_NAME>» i «<FILE_NAME_WITH_EXT>», que només funcionen quan es generen capítols per a fitxers adjunts. Seran, respectivament substituïdes pel nom del fitxer adjuntat, amb la seva extensió i sense. Recordeu que només s'inseriran el nom base i l'extensió del fitxer, no el seu directori o components de la unitat. Podeu especificar un nombre mínim de llocs per al número de capítol amb «<NUM:places>», p. ex. «<NUM:3>». El nombre resultant serà emplenat amb zeros a l'esquerra si el nombre de posicions és menor que l'especificat. Podeu controlar el format emprat per al codi de temps d'inici amb <START:format>. Si no s'indica cap, el format predeterminat és «%-H:%M:%S». Els codis de format vàlids són: %h – hores %H – hora de dos dígits farcida amb zeros %m – minuts %M – minuts de dos dígits farcits amb zeros %s – segons %S – segons de dos dígits farcits amb zeros %n – nanosegons amb nou dígits %<1-9>n – nanosegons amb fins a nou dígits (p. ex., tres dígits amb %3n) The string '<TITLE>' is only filled when generating chapters for appended files. It'll be replaced by the appended file's title if one is present.
--cue-chapter-name-format format | El mkvmerge(1) pot llegir fulls de muntatge (CUE sheets) per a fitxers d'àudio com a entrada per als capítols. Els fulls de muntatge normalment contenen les entrades PERFORMER i TITLE per a cada entrada de l'índex. El mkvmerge(1) usa aquestes dues cadenes per a construir el nom del capítol. Amb aquesta opció, es pot establir el format emprat per a aquest nom. Si no s'indica aquesta opció, llavors el mkvmerge(1) emprarà de manera predeterminada el format «%p - %t» (l'artista, seguit per un espai, un guió, un altre espai i el títol). Si s'indica el format, llavors es copiarà tot tal com està excepte els metacaràcters següents que seran substituïts així: %p serà substituït per la cadena PERFORMER a l'entrada, %t serà substituït per la cadena TITLE a l'entrada, %n serà substituït pel número de la pista actual i, %N serà substituït pel número de la pista actual afegint-li un zero a l'esquerra si aquest número és menor que 10.
--chapters nom_fitxer | Llegeix la informació del capítol des del nom_fitxer. Per a més detalls, vegeu més endavant la secció sobre els capítols.
--global-tags nom_fitxer | Llegeix les etiquetes globals des del nom_fitxer. Per a més detalls, vegeu més endavant la secció sobre les etiquetes.

## 2.4. Control general de la sortida (opcions globals avançades)

Option | Description
--- | ---
--track-order FID1:TID1,FID2:TID2... | Aquesta opció canvia l'ordre en el qual es creen les pistes a partir d'un fitxer d'entrada. L'argument és una llista separada per comes de parells d'ID. Cada parell conté primer l'ID del fitxer (FID1), el qual només és el número del fitxer a la línia d'ordres partint de 0. El segon és un ID de pista (TID1) d'aquest fitxer. Si s'ometen alguns ID de les pistes, llavors aquestes pistes seran creades després de les establertes amb aquesta opció. Si no es proporciona aquesta opció, les pistes s'ordenaran primer pel tipus i després per l'ordre del seu fitxer font. Les pistes de vídeo van primer, seguides de les d'àudio i de les pistes de subtítols. Els altres tipus de pistes que s'utilitzen poc sovint van en darrer lloc.
--cluster-length especificació | Limita el nombre de blocs de dades o la durada de les dades en cada clúster. El paràmetre especificació pot ser un número n sense una unitat o un número d amb el sufix «ms». Si no s'empra cap unitat, llavors el mkvmerge(1) tindrà com a màxim n blocs d'informació a cada clúster. El nombre màxim de blocs és 65535. Si el número d té el sufix «ms», llavors el mkvmerge(1) posarà com a màxim d mil·lisegons d'informació de dades en cada clúster. El valor mínim per a d és «100ms», i el màxim és «32000ms». De manera predeterminada, el mkvmerge(1) posarà com a màxim 65535 blocs de dades i 5000ms d'informació de dades a cada clúster. Els programes que intenten trobar un cert fotograma només poden cercar directament a un clúster i posteriorment llegir tot el clúster. Per tant, el fet de crear clústers molt grans podria comportar una cerca lenta i poc precisa.
--clusters-in-meta-seek | Li indica al mkvmerge(1) que creï un element meta de cerca al final del fitxer que contindrà tots els clústers. Vegeu també la secció sobre la disposició en els fitxers Matroska.
--timestamp-scale factor | Força el factor d'escala dels codis de temps amb factor. Els valors admesos estan compresos en l'interval 1000..10000000 o el valor especial -1. Normalment, el mkvmerge(1) emprarà el valor 1000000, el qual vol dir que els codis de temps i durades tindran una precisió d'1 ms. Per als fitxers que no continguin una pista de vídeo, però sí almenys una d'àudio, el mkvmerge(1) triarà automàticament un factor d'escala per als codis de temps, de manera tots els codis de temps i durades tindran una precisió d'una mostra d'àudio. Això causarà una major sobrecàrrega, però permetrà que la cerca i extracció siguin més precises. Si s'usa el valor especial -1, llavors el mkvmerge(1) emprarà la precisió de la mostra, encara que hi hagi una pista de vídeo.
--enable-durations | Escriu les durades per a tots els blocs. Això incrementarà la mida del fitxer, i al moment no oferirà cap valor addicional als reproductors.
--no-cues | Li indica al mkvmerge(1) que no creï i escrigui les dades de l'índex, el qual es pot comparar amb l'índex d'un AVI. Els fitxers Matroska(tm) es poden reproduir sense les dades de l'índex, però la cerca probablement serà poc precisa i lenta. Empreu això només si realment esteu desesperat per a estalviar espai o amb finalitat de proves. Vegeu també que l'opció --cues es pot especificar per a cada fitxer d'entrada.
--no-date | De manera predeterminada, el mkvmerge(1) establirà el camp d'informació del segment «data» a la data i hora de quan s'ha iniciat la multiplexació. Amb aquesta opció, aquest camp no s'escriurà mai.
--date timestamp | Sets the DateUTC field written to the segment information. The timestamp must be ISO 8601-like: YYYY-mm-ddTHH:MM:SSZ for UTC or with an offset ±HH:MM (a space instead of T is also accepted), e.g. 2017-03-28T17:28:00Z or 2017-03-28 17:28:00+02:00. If used together with --no-date, --no-date takes precedence and no date will be written.
--disable-lacing | Inhabilita el lligam per a les pistes. Això incrementarà la mida del fitxer, especialment si hi ha moltes pistes d'àudio. Aquesta opció no ha estat dissenyada per a un ús freqüent.
--disable-track-statistics-tags | Normalment, el mkvmerge(1) escriu algunes etiquetes amb estadístiques per a cada pista. Si aquestes etiquetes ja estan presents, llavors se sobreescriuran. Les etiquetes són BPS, DURATION, NUMBER_OF_BYTES i NUMBER_OF_FRAMES. El fet d'habilitar aquesta opció impedeix que el mkvmerge(1) escrigui i editi les etiquetes existents que tinguin els mateixos noms.
--disable-language-ietf | Normalment, el mkvmerge(1) escriurà els elements nous d'idioma BCP 47 de la IETF a més dels elements heretats d'idioma en les capçaleres de les pistes. Si s'utilitza aquesta opció, només s'escriuran els elements heretats.
--normalize-language-ietf mode | Permet normalitzar totes les etiquetes d'idioma BCP 47 de la IETF a la seva forma canònica amb el mode «canonical», a la seva forma d'idioma estès amb el mode «extLang» o la desactiva amb el mode «off». Per defecte, s'aplicarà la normalització a la forma canònica. En la forma canònica, totes les subetiquetes per a les quals existeixen els valors preferits se substitueixen per aquells valors preferits. Això es converteix, p. ex. «zh-yue-jyutping» a «yue-jyutping» o «fr-FX» a «fr-FR». Per a la forma de les subetiquetes d'idioma estès, primer es construeix la forma canònica. Després, tots els idiomes principals per als quals existeix una subetiqueta d'idioma estès se substitueixen per aquesta subetiqueta i el seu prefix d'idioma estès. Això converteix, p. ex. «yue-jyutping» torna a «zh-yue-jyutping», però no té cap efecte sobre «fr-FR», ja que «fr» no és una subetiqueta d'idioma estès.
--stop-after-video-ends | Deixa de processar una vegada finalitzi la pista de víde principal, descartant els paquets restants d'altres pistes.

## 2.5. Divisió, vinculació, annexat i concatenació dels fitxers (més opcions globals)

Option | Description
--- | ---
--split especificació | Divideix el fitxer de sortida després d'una mida o temps especificat. Si us plau, cal tenir en compte que aquestes pistes només es poden dividir just abans d'un fotograma clau. Per tant, el punt de divisió podria ser un xic diferent de l'especificat per l'usuari. Fins ara, el mkvmerge(1) admet els modes següents: Divisió per la mida. Sintaxi: --split [size:]d[k|m|g] Exemples: --split size:700m o --split 150000000 El paràmetre d pot acabar amb «k», «m» o «g» per a indicar que la mida és en KB, MB o GB respectivament. D'altra manera, s'assumirà que la mida és en bytes. Una vegada el fitxer de sortida actual abasti la mida límit, començarà la creació d'un altre fitxer. El prefix «size:» es pot ometre per motius de compatibilitat. Divisió després d'una durada. Sintaxi: --split [duration:]HH:MM:SS.nnnnnnnnn|ds Exemples: --split duration:00:60:00.000 o --split 3600s El paràmetre pot tenir la forma HH:MM:SS.nnnnnnnnn per a especificar la durada amb una precisió de nanosegons, o pot ser un número d seguit per la lletra «s» per a una durada en segons. HH és el número de les hores, MM és el dels minuts, SS és el dels segons i nnnnnnnnn és el dels nanosegons. Tant el número de les hores com el dels nanosegons es poden ometre. Hi ha fins a nou dígits després del punt decimal. Una vegada el fitxer de sortida actual abasti la durada límit, començarà la creació d'un altre fitxer. El prefix «duration:» es pot ometre per motius de compatibilitat. Divisió després d'uns codis de temps específics. Sintaxi: --split timestamps: A[,B[,C...]] Exemple: --split timestamps:00:45:00.000,01:20:00.250,6300s Els paràmetres A, B, C, etc. poden tenir el mateix format que l'emprat per a la durada (vegeu més amunt). La llista dels codis de temps està separada per comes. Una vegada el flux d'entrada abasti el punt de divisió per al codi de temps actual, es crearà un fitxer nou. Llavors s'emparà el següent punt de divisió especificat a la llista. El prefix «timestamps:» no es pot ometre. Manté les parts específiques per als intervals de codis de temps especificats mentre que les altres seran descartades. Sintaxi: --split parts: inici_1-final_1[,[+]inici_2-final_2[,[+]inici_3-final_3...]] Exemples: --split parts:00:01:20-00:02:45,00:05:50-00:10:30 --split parts:00:01:20-00:02:45,+00:05:50-00:10:30 --split parts:-00:02:45,00:05:50- El mode parts li indica al mkvmerge(1) que mantingui certs intervals de codis de temps mentre es descarten altres. Els intervals a mantenir s'han de llistar després de la paraula clau parts: i s'han de separar amb comes. Un interval, en si mateix, consisteix d'un inici i un final, en el mateix format i altres variacions que accepta --split (p. ex., tant 00:01:20 com 80s es refereixen al mateix codi de temps). Si s'omet un codi de temps d'inici, llavors de manera predeterminada s'emprarà el codi de temps final de l'interval anterior. Si no hi ha un interval anterior, llavors de manera predeterminada s'emprarà el d'inici del fitxer (vegeu l'exemple 3). Si s'omet el codi de temps final, llavors de manera predeterminada es prendrà el valor final dels fitxers d'origen. El qual bàsicament li indicarà al mkvmerge(1) que mantingui la resta (vegeu l'exemple 3). Normalment, cada interval serà escrit a un fitxer nou. Això es pot canviar de manera que els intervals consecutius s'escriguin en el mateix fitxer. Per a fer-ho, l'usuari haurà d'assignar el prefix + al codi de temps d'inici. Això li indicarà al mkvmerge(1) que no creï un fitxer nou i en comptes d'això, que annexi l'interval després de l'últim interval escrit al fitxer. Els codis de temps seran ajustats de manera que no hi hagi discontinuïtats en el fitxer de sortida, fins i tot si n'hi havia una entre dos intervals al fitxer d'entrada. En l'exemple 1, el mkvmerge(1) crearà dos fitxers. El primer abastarà el contingut a partir de 00:01:20 fins a 00:02:45. El segon abastarà el contingut a partir de 00:05:50 fins a 00:10:30. En l'exemple 2, el mkvmerge(1) crearà un únic fitxer. Aquest abastarà ambdós, el contingut a partir de 00:01:20 fins a 00:02:45 i el contingut a partir de 00:05:50 fins a 00:10:30. En l'exemple 3, el mkvmerge(1) crearà dos fitxers. El primer abastarà el contingut des del començament dels fitxers d'origen fins a 00:02:45. El segon abastarà el contingut a partir de 00:05:50 fins al final dels fitxers d'origen. Note: Recordeu que el mkvmerge(1) només pren decisions sobre la divisió a les posicions dels fotogrames clau. Això és aplicable tant a l'inici com al final de cada interval. De manera que si un codi de temps final es troba entre dos fotogrames clau, el mkvmerge(1) continuarà amb la sortida dels fotogrames fins al final, però excloent el següent fotograma clau. Manté les parts específiques per als intervals del número de fotograma/camp especificats mentre que les altres seran descartades. Sintaxi: --split parts-frames: inici_1-final_1[,[+]inici_2-final_2[,[+]inici_3-final_3...]] Exemples: --split parts-frames:137-258,548-1211 --split parts-frames:733-912,+1592-2730 --split parts-frames:-430,2512- El mode parts-frames li indica al mkvmerge(1) que mantingui certs intervals numèrics de fotogrames/camps, mentre es descarten altres. Els intervals a mantenir s'han d'especificar després de la paraula clau parts-frames: i separar-los amb comes. Un interval consisteix en un número de fotograma/camp d'inici i final. La numeració comença per l'1. Si s'omet un número d'inici, llavors de manera predeterminada s'emprarà el número final de l'interval anterior. Si no hi ha un interval anterior, llavors de manera predeterminada s'emprarà el d'inici del fitxer (vegeu l'exemple 3). Si s'omet el número final, llavors de manera predeterminada es prendrà el valor final dels fitxers d'origen. El qual bàsicament li indicarà al mkvmerge(1) que mantingui la resta (vegeu l'exemple 3). Normalment, cada interval serà escrit a un fitxer nou. Això es pot canviar de manera que els intervals consecutius s'escriguin en el mateix fitxer. Per a fer-ho, l'usuari haurà d'assignar el prefix + al número d'inici. Això li indicarà al mkvmerge(1) que no creï un fitxer nou i en comptes d'això, que annexi l'interval després de l'últim interval escrit al fitxer. Els codis de temps seran ajustats de manera que no hi hagi discontinuïtats en el fitxer de sortida, fins i tot si n'hi havia una entre dos intervals al fitxer d'entrada. Note: Recordeu que el mkvmerge(1) només pren decisions sobre la divisió a les posicions dels fotogrames clau. Això és aplicable tant a l'inici com al final de cada interval. De manera que si un número de fotograma/camp final es troba entre dos fotogrames clau, el mkvmerge(1) continuarà amb la sortida dels fotogrames fins al final, però excloent el següent fotograma clau. En l'exemple 1, el mkvmerge(1) crearà dos fitxers. El primer abastarà el contingut a partir del primer fotograma clau o després del 137, però sense incloure el primer fotograma clau o després del 258. El segon abastarà el contingut a partir del 548 fins al 1211. En l'exemple 2, el mkvmerge(1) crearà un únic fitxer. Aquest abastarà ambdós, el contingut a partir del 733 fins al 912 i el contingut a partir del 1592 fins al 2730. En l'exemple 3, el mkvmerge(1) crearà dos fitxers. El primer abastarà el contingut des del començament dels fitxers d'origen fins al 430. El segon abastarà el contingut a partir del 2512 fins al final dels fitxers d'origen. Aquest mode només considerarà la primera pista de vídeo que es genera. Si no hi ha cap pista de vídeo a la sortida, no es produirà cap divisió. Note: Els números indicats amb aquest argument són interpretats partint del nombre de blocs Matroska(tm) que es generen. Un únic bloc Matroska(tm) conté tot un fotograma (per a contingut progressiu) o només un camp (per a contingut entrellaçat). El mkvmerge(1) no fa distincions entre els dos i només compta el nombre de blocs. Per exemple: Si es vol dividir després del 25è fotograma amb material entrellaçat, llavors s'haurà d'emprar 50 (dos camps per a tot un fotograma) com a punt de tall. Divisió després d'uns fotogrames/camps específics. Sintaxi: --split frames: A[,B[,C...]] Exemple: --split frames:120,237,891 Els paràmetres A, B, C, etc. hauran de ser tots sencers positius. La numeració comença per l'1. La llista de números de fotograma/camp estarà separada per comes. Una vegada el flux d'entrada hagi abastat el número de fotograma/camp del punt de tall actual, es crearà un fitxer nou. Després s'emprarà el següent punt de tall indicat a la llista. El prefix «frames:» no es pot ometre. Aquest mode només considerarà la primera pista de vídeo que es genera. Si no hi ha cap pista de vídeo a la sortida, no es produirà cap divisió. Note: Els números indicats amb aquest argument són interpretats partint del nombre de blocs Matroska(tm) que es generen. Un únic bloc Matroska(tm) conté tot un fotograma (per a contingut progressiu) o només un camp (per a contingut entrellaçat). El mkvmerge(1) no fa distincions entre els dos i només compta el nombre de blocs. Per exemple: Si es vol dividir després del 25è fotograma amb material entrellaçat, llavors s'haurà d'emprar 50 (dos camps per a tot un fotograma) com a punt de tall. Dividir abans de capítols específics. Sintaxi: --split chapters:all o --split chapters: A[,B[,C...]] Exemple: --split chapters:5,8 Els paràmetres A, B, C, etc. hauran de ser tots sencers positius. La numeració comença per l'1. La llista de capítols estarà separada per comes. La divisió succeirà just abans del primer fotograma clau on el codi de temps sigui igual o major que el codi de temps d'inici per als capítols dels números llistats. Un capítol que comença al 0 s mai es tindrà en compte per a la divisió i serà omès silenciosament. La paraula clau «all» es pot emprar en lloc d'una llista manual de tots els números de capítols. El prefix «chapters:» no es pot ometre. Note: El format de fitxer Matroska(tm) admet estructures de capítols arbitràries i aniuades profundament, anomenades «entrades de l'edició» (edition entries) i «àtoms del capítol» (chapter atoms). No obstant això, aquest mode només tindrà en compte el nivell més alt dels capítols al llarg de totes les entrades de l'edició. En aquest mode de divisió, el nom del fitxer de sortida serà tractat de manera diferent que amb el funcionament normal. Pot contenir un printf com l'expressió «%d», incloent-hi una amplada de camp opcional, p. ex., «%02d». Si es fa després del número del fitxer actual, serà formatat adequadament i inserit en aquest punt del nom del fitxer. Si no hi ha aquest patró, llavors s'assumirà «-%03d» com a patró just abans de l'extensió del fitxer: «-o sortida.mkv» resultaria en «sortida-001.mkv» i així en endavant. Si no hi ha extensió, llavors s'annexarà «-%03d» al nom. Un altre possible patró és «%c», el qual serà substituït pel nom del primer capítol en el fitxer. Recordeu que quan es troba present «%c», el patró «-%03d» no s'afegirà automàticament.
--link | Els fitxers es vinculen a altres quan es divideix el fitxer de sortida. Per a més detalls, vegeu la següent secció sobre vincular els fitxers.
--link-to-previous UID_segment | Vincula el primer fitxer de sortida al segment amb l'UID del segment indicat mitjançant el paràmetre UID_segment. Per a més detalls, vegeu la següent secció sobre vincular els fitxers. Si el SID comença amb el signe =, llavors la resta s'interpretarà com el nom d'un fitxer Matroska, es llegirà i emprarà l'UID del segment.
--link-to-next UID_segment | Vincula l'últim fitxer de sortida al segment amb l'UID del segment indicat mitjançant el paràmetre UID_segment. Per a més detalls, vegeu la següent secció sobre vincular els fitxers. Si el SID comença amb el signe =, llavors la resta s'interpretarà com el nom d'un fitxer Matroska, es llegirà i emprarà l'UID del segment.
--append-mode mode | Determina com es calcularan els codis de temps en annexar els fitxers. El paràmetre mode pot tenir dos valors: «file» (fitxer) que és l'opció predeterminada i «track» (pista). Quan el mkvmerge annexa una pista (anomenada «pista2_1» d'ara endavant) des d'un segon fitxer (anomenat «fitxer_2») a una pista (anomenada «pista1_1») des del primer fitxer (anomenat «fitxer_1») llavors compensarà una quantitat en tots els codis de temps per a la «pista2_1». En el mode «file» aquesta quantitat serà el codi de temps més gran trobat en el «fitxer_1», fins i tot si aquest codi de temps provingués d'una pista diferent de «pista1_1». En el mode «track», la compensació serà el codi de temps més gran de la «pista1_1». Malauradament, el mkvmerge(1) no pot detectar quin mode és més oportú emprar. Per tant, de manera predeterminada emprarà el mode «file». Aquest mode, en general funciona millor per a fitxers que es creen de manera independent els uns dels altres; p. ex., quan s'annexen fitxers AVI o MP4. El mode «track» podria funcionar millor per a orígens que essencialment només formen part d'un fitxer gran, p. ex., per a fitxers VOB i EVO. Les pistes de subtítols sempre seran tractades com si estigués actiu el mode «file», fins i tot si el que està actiu és el mode «track».
--append-to SFID1:STID1:DFID1:DTID1[...] | Aquesta opció controla quina pista és annexada a una altra. Cada especificació conté quatre ID: un identificador de fitxer (SFID1), un identificador de pista (STID1), un segon identificador de fitxer (DFID1) i un segon identificador de pista (DTID1). El primer parell, l'«ID del fitxer d'origen» i l'«ID de la pista de l'origen», identifiquen la pista que s'ha d'annexar. El segon parell, l'«ID del fitxer de destinació» i l'«ID de la pista de destinació», identifiquen la pista a la qual s'ha d'annexar la primera. Si s'omet aquesta opció, llavors s'emprarà un mapatge estàndard. Aquest, annexarà cada pista del fitxer actual a una pista del fitxer anterior amb el mateix ID de pista. Això permet annexar amb facilitat dos fitxers que havien estat dividits a partir d'una pel·lícula, si tenen el mateix nombre de pistes i ID de les pistes, amb l'ordre: mkvmerge -o sortida.mkv part1.mkv +part2.mkv.
+ | Un únic signe «+» causarà que s'annexi el fitxer següent en comptes d'afegir-lo. El signe «+» també es pot posar davant del nom de fitxer següent. Per tant, les dues ordres següents són equivalents:
    $ mkvmerge -o complet.mkv fitxer_1.mkv + fitxer_2.mkv
    $ mkvmerge -o complet.mkv fitxer_1.mkv +fitxer_2.mkv
[ fitxer_1 fitxer_2 ] | Si hi ha entre claudàtors múltiples noms de fitxer, llabors el segon fitxer i tots els següents seran annexats al primer fitxer. Aquesta és una sintaxi alternativa a l'ús del caràcter «+» entre els noms de fitxer. Per tant, les dues ordres següents són equivalents:
    $ mkvmerge -o complet.mkv fitxer_1.mkv + fitxer_2.mkv
    $ mkvmerge -o complet.mkv '[' fitxer_1.mkv fitxer_2.mkv ']'
= | Per a certs tipus de fitxers (els fluxos de programes MPEG = VOB) el mkvmerge(1) normalment cercarà els fitxers en el mateix directori que un fitxer d'entrada que tingui el mateix nom base i només difereixen en el seu número d'execució (p. ex., «VTS_01_1.VOB», «VTS_01_2.VOB», «VTS_01_3.VOB», etc.) i els tractarà tots com si estiguessin concatenats (units) en un únic gran fitxer. Aquesta opció, un únic «=», fa que el mkvmerge no cerqui aquests fitxers addicionals. El signe «=» també es pot posar davant del nom de fitxer següent. Per tant, les dues ordres següents són equivalents:
    $ mkvmerge -o complet.mkv = fitxer_1.vob
    $ mkvmerge -o complet.mkv =fitxer_1.vob
( fitxer_1 fitxer_2 ) | Si hi ha entre parèntesis múltiples noms de fitxer, llavors aquests seran tractats com si estiguessin concatenats (units) en un únic gran fitxer, el qual consistirà en el contingut de cadascun dels fitxers, l'un darrere l'altre. Per exemple, això es pot emprar amb fitxers VOB procedents d'un DVD o fluxos de transport MPEG. No es pot emprar si cada fitxer conté el seu propi conjunt de capçaleres, el qual sol ser el cas amb fitxers com AVI o MP4. Posar el nom del fitxer entre parèntesis, també evitarà que el mkvmerge(1) cerqui fitxers addicionals amb el mateix nom base tal com s'ha descrit en l'opció =. Per tant, aquestes dues línies d'ordres són equivalents:
    $ mkvmerge -o sortida.mkv = fitxer.mkv
    $ mkvmerge -o sortida.mkv '(' fitxer.mkv ')'
Hi ha diverses coses que s'han de tenir en compte: Hi ha d'haver un espai després d'obrir i abans de tancar els signes de parèntesi. Cada paràmetre entre parèntesis s'interpretarà com un nom de fitxer. Per tant, totes les opcions que s'hagin d'aplicar a aquest fitxer, per lògica s'hauran d'introduir abans del signe d'obertura del parèntesi. Alguns intèrprets d'ordres tracten els parèntesis com a caràcters especials. Per tant, s'hauran d'escapar o posar entre cometes senzilles tal com es mostra en l'exemple anterior.

## 2.6. Implementació per a adjunts (més opcions globals)

Option | Description
--- | ---
--attachment-description descripció | Descripció en text pla del següent adjunt. S'aplicarà a la següent opció --attach-file o --attach-file-once.
--attachment-mime-type tipus_MIME | El tipus MIME del següent adjunt. S'aplicarà a la següent opció --attach-file o --attach-file-once. Es pot trobar una llista oficial de tipus MIME reconeguts a, p. ex., la pàgina web de la IANA. El tipus MIME és obligatori per a un adjunt. Si no s'indica cap tipus MIME per a un adjunt, el seu tipus es detectarà automàticament.
--attachment-name nom | Estableix el nom per a aquest adjunt que s'emmagatzemarà al fitxer de sortida. Si no s'especifica aquesta opció, llavors el nom s'obtindrà a partir del nom del fitxer de l'adjunt especificat amb l'opció --attach-file o --attach-file-once.
--attach-file nom_fitxer, --attach-file-once nom_fitxer | Crea un fitxer adjunt dins del fitxer Matroska(tm). La diferència entre les dues formes és que durant la divisió, els fitxers adjunts amb --attach-file seran adjuntats a tots els fitxers de sortida mentre que amb --attach-file-once només s'adjuntaran al primer fitxer creat. Si no s'empra la divisió, llavors les dues opcions faran el mateix. Es pot emprar el mkvextract(1) per a extreure els fitxers adjunts des d'un fitxer Matroska(tm).
--enable-legacy-font-mime-types | Permet l'ús de tipus MIME heretats per a determinats tipus d'adjunts de lletra tipogràfica. Per exemple, s'usarà «application/x-truetype-font» per a les lletres TrueType en lloc de «fonts/ttf». Això afectarà dos adjunts nous si el seu tipus MIME es detecta automàticament i els adjunts existents del tipus MIME emmagatzemat seran reassignats a l'heretat. Els tipus MIME afectats són «font/sfnt», «font/ttf» i «font/collection» els quals seran tots assignats a «application/x-truetype-fonts» i «font/otf» el qual serà assignat a «application/vnd.ms-opentype».

## 2.7. Opcions que es poden emprar per a cada fitxer d'entrada

Option | Description
--- | ---
-a, --audio-tracks [!]n,m... | Copia les pistes d'àudio n, m, etc. Els números són els ID de les pistes que es poden obtenir amb l'opció --identify. No són simplement els números de la pista (vegeu la secció sobre els ID de les pistes). De manera predeterminada: copiarà totes les pistes d'àudio. En comptes dels ID de les pistes, també podeu especificar els codis d'idioma ISO 639-2. Això només funcionarà per a fitxers d'origen que proveeixen etiquetes d'idioma per a les seves pistes. De manera predeterminada: copiarà totes les pistes d'aquest tipus. Si els ID estan prefixats amb el signe !, llavors s'indicarà el contrari: copiarà totes les pistes d'aquest tipus excepte les llistades després del signe !.
-d, --video-tracks [!]n,m... | Copia les pistes de vídeo n, m, etc. Els números són els ID de les pistes que es poden obtenir amb l'opció --identify. No són simplement els números de la pista (vegeu la secció sobre els ID de les pistes). De manera predeterminada: copiarà totes les pistes de vídeo. En comptes dels ID de les pistes, també podeu especificar els codis d'idioma ISO 639-2. Això només funcionarà per a fitxers d'origen que proveeixen etiquetes d'idioma per a les seves pistes. Si els ID estan prefixats amb el signe !, llavors s'indicarà el contrari: copiarà totes les pistes d'aquest tipus excepte les llistades després del signe !.
-s, --subtitle-tracks [!]n,m... | Copia les pistes de subtítols n, m, etc. Els números són els ID de les pistes que es poden obtenir amb l'opció --identify. No són simplement els números de la pista (vegeu la secció sobre els ID de les pistes). De manera predeterminada: copiarà totes les pistes de subtítols. En comptes dels ID de les pistes, també podeu especificar els codis d'idioma ISO 639-2. Això només funcionarà per a fitxers d'origen que proveeixen etiquetes d'idioma per a les seves pistes. Si els ID estan prefixats amb el signe !, llavors s'indicarà el contrari: copiarà totes les pistes d'aquest tipus excepte les llistades després del signe !.
-b, --button-tracks [!]n,m... | Copia les pistes de botons n, m, etc. Els números són els ID de les pistes que es poden obtenir amb l'opció --identify. No són simplement els números de la pista (vegeu la secció sobre els ID de les pistes). De manera predeterminada: copiarà totes les pistes de botons. En comptes dels ID de les pistes, també podeu especificar els codis d'idioma ISO 639-2. Això només funcionarà per a fitxers d'origen que proveeixen etiquetes d'idioma per a les seves pistes. Si els ID estan prefixats amb el signe !, llavors s'indicarà el contrari: copiarà totes les pistes d'aquest tipus excepte les llistades després del signe !.
--track-tags [!]n,m... | Copia les etiquetes per a les pistes n, m, etc. Els números són els ID de les pistes que es poden obtenir amb l'opció --identify. No són simplement els números de la pista (vegeu la secció sobre els ID de les pistes). De manera predeterminada: copiarà les etiquetes per a totes les pistes. Si els ID estan prefixats amb el signe !, llavors s'indicarà el contrari: copia-ho tot, excepte els ID llistats després del signe !.
-m, --attachments [!]n[:all|first],m[:all|first]... | Copia els adjunts amb els ID n, m, etc. a tots (all) o només al primer fitxer generat (first). Cada ID pot estar seguit per «:all» (la qual és l'opció predeterminada) o «:first». Si està activada la divisió, llavors aquells adjunts on els ID s'han especificat amb «:all» seran copiats a tots els fitxers de sortida resultants, mentre que els altres només seran copiats dins del primer fitxer de sortida. Si la divisió no està activada, llavors les dues variants produiran el mateix efecte. El comportament predeterminat és copiar tots els adjunts a tots els fitxers de sortida. Si els ID estan prefixats amb el signe !, llavors s'indicarà el contrari: copia-ho tot, excepte els ID llistats després del signe !.
-A, --no-audio | No copiar cap pista d'àudio des d'aquest fitxer.
-D, --no-video | No copiar cap pista de vídeo des d'aquest fitxer.
-S, --no-subtitles | No copiar cap pista de subtítols des d'aquest fitxer.
-B, --no-buttons | No copiar cap pista de botó des d'aquest fitxer.
-T, --no-track-tags | No copiar cap etiqueta específica de pista des d'aquest fitxer.
--no-chapters | No copiar cap capítol des d'aquest fitxer.
-M, --no-attachments | No copiar cap adjunt des d'aquest fitxer.
--no-global-tags | No copiar cap etiqueta global des d'aquest fitxer.
--regenerate-track-uids | Quan utilitzeu aquesta opció per a un fitxer font Matroska, el mkvmerge(1) crearà ID nous de pista únics i aleatoris en lloc de mantenir els existents al fitxer. Els UID de seguiment existents en capítols i les etiquetes llegides des del mateix fitxer es reassignaran als valors recentment generats. Aquest comportament s'habilita automàticament per als fitxers Matroska creats pel programari MakeMKV. El motiu és que el MakeMKV utilitza números consecutius (1, 2, 3...) com a UID en lloc de generar-ne aleatoris.
-y, --sync TID:d[,o[/p]] | Ajusta els codis de temps de la pista amb l'ID TID en d ms. Els ID de les pistes són els mateixos que es mostren amb l'opció --identify (vegeu la secció sobre els ID de les pistes). o/p: ajusta els codis de temps en o/p, per a fixar desfasaments lineals. Si s'omet p, de manera predeterminada serà 1. Tant o com p poden ser nombres decimals. De manera predeterminada: no hi haurà cap correcció de sincronització manual (el qual és el mateix que d = 0 i o/p = 1.0). Aquesta opció es pot emprar múltiples vegades per a un fitxer d'entrada aplicant-la a diverses pistes, seleccionant els diferents ID de les pistes cada vegada.
--cues TID:none|iframes|all | Controla quines entrades dels índexs de les pistes (cue) es crearan per a una pista indicada (vegeu la secció sobre els ID de les pistes). «none» inhibeix la creació de les entrades de l'índex. Amb «iframes» només s'inseriran al full de muntatge els blocs sense referències anteriors o posteriors (= fotogrames I en les pistes de vídeo). «all» fa que el mkvmerge(1) creï les entrades de l'índex per a tots els blocs, el qual farà que el fitxer sigui molt més gran. De manera predeterminada és «iframes» per a les pistes de vídeo i subtítols, i «none» per a les pistes d'àudio. Vegeu també l'opció --no-cues, la qual inhibeix la creació de les entrades de l'índex malgrat emprar les opcions --cues. Aquesta opció es pot emprar múltiples vegades per a un fitxer d'entrada aplicant-la a diverses pistes, seleccionant els diferents ID de les pistes cada vegada.
--default-track-flag TID[:booleà] | Estableix l'etiqueta de «Pista predeterminada» a la pista indicada (vegeu la secció sobre els ID de les pistes) si l'argument opcional booleà s'ha establert a 1 o si no està present. Aquesta etiqueta es pot establir si el contenidor d'origen no proporciona aquesta informació i l'usuari no l'especifica a través d'aquesta opció. Si l'usuari no selecciona explícitament una pista durant la reproducció, el reproductor seleccionarà una de les pistes que tingui establerta l'etiqueta «Pista predeterminada», tenint en compte les preferències de l'usuari així com el seu idioma preferit. Aquesta opció es pot emprar múltiples vegades per a un fitxer d'entrada aplicant-la a diverses pistes, seleccionant els diferents ID de les pistes cada vegada.
--track-enabled-flag TID[:booleà] | Estableix l'etiqueta «Pista habilitada» en la pista indicada (vegeu la secció Els ID de les pstes) al valor donat booleà (0 o 1; de manera predeterminada serà 1 si no s'especifica). Si no s'especifica cap opció per i el contenidor d'origen tampoc proporciona aquesta informació, les pistes estaran activades de manera predeterminada. Només es tindran en compte per a reproduir les pistes on s'estableixi l'etiqueta «Pista habilitada». Aquesta opció es pot emprar múltiples vegades per a un fitxer d'entrada aplicant-la a diverses pistes, seleccionant els diferents ID de les pistes cada vegada.
--forced-display-flag TID[:booleà] | Estableix l'etiqueta de «Força mostrar» a la pista indicada (vegeu la secció sobre els ID de les pistes) si l'argument opcional booleà està establert a 1 o si no està present. Useu-ho per a les pistes que continguin text en pantalla o algun diàleg en un idioma estranger. Aquesta opció es pot emprar múltiples vegades per a un fitxer d'entrada aplicant-la a diverses pistes, seleccionant els diferents ID de les pistes cada vegada.
--hearing-impaired-flag TID[:booleà] | Estableix l'etiqueta de «Discapacitat auditiva» a la pista indicada (vegeu la secció sobre els ID de les pistes) si l'argument opcional booleà s'ha establert a 1 o si no està present. Aquesta etiqueta es pot establir si la pista és adequada per a usuaris amb discapacitat auditiva. Aquesta opció es pot emprar múltiples vegades per a un fitxer d'entrada aplicant-la a diverses pistes, seleccionant els diferents ID de les pistes cada vegada.
--visual-impaired-flag TID[:booleà] | Estableix l'etiqueta de «Discapacitat visual» a la pista indicada (vegeu la secció sobre els ID de les pistes) si l'argument opcional booleà s'ha establert a 1 o si no està present. Aquesta etiqueta es pot establir si la pista és adequada per a usuaris amb discapacitat visual. Aquesta opció es pot emprar múltiples vegades per a un fitxer d'entrada aplicant-la a diverses pistes, seleccionant els diferents ID de les pistes cada vegada.
--text-descriptions-flag TID[:booleà] | Estableix l'etiqueta de «Descripcions de text» a la pista indicada (vegeu la secció sobre els ID de les pistes) si l'argument opcional booleà s'ha establert a 1 o si no està present. Aquesta etiqueta es pot establir si la pista conté alguna descripció textual per al contingut del vídeo adequada per a la seva reproducció a través d'un sistema de conversió de text a veu per a un usuari amb discapacitat visual. Aquesta opció es pot emprar múltiples vegades per a un fitxer d'entrada aplicant-la a diverses pistes, seleccionant els diferents ID de les pistes cada vegada.
--original-flag TID[:booleà] | Estableix l'etiqueta d'«Idioma original» a la pista indicada (vegeu la secció sobre els ID de les pistes) si l'argument opcional booleà s'ha establert a 1 o si no està present. Aquesta etiqueta es pot establir si la pista està en l'idioma original del contingut (no una traducció). Aquesta opció es pot emprar múltiples vegades per a un fitxer d'entrada aplicant-la a diverses pistes, seleccionant els diferents ID de les pistes cada vegada.
--commentary-flag TID[:booleà] | Estableix l'etiqueta de «Comentari» a la pista indicada (vegeu la secció sobre els ID de les pistes) si l'argument opcional booleà s'ha establert a 1 o si no està present. Aquesta etiqueta es pot establir si la pista conté algun comentari. Aquesta opció es pot emprar múltiples vegades per a un fitxer d'entrada aplicant-la a diverses pistes, seleccionant els diferents ID de les pistes cada vegada.
--track-name TID:nom | Estableix el nom de la pista al nom indicat (vegeu la secció sobre els ID de les pistes).
--language TID:idioma | Estableix l'idioma de la pista indicada (vegeu la secció sobre els ID de les pistes). Estan permesos tant els codis d'idioma ISO 639-2 com els codis de país ISO 639-1. Els codis de país seran convertits a codis d'idioma automàticament. Tots els idiomes inclosos els seus codis ISO 639-2 es poden llistar amb l'opció --list-languages. Aquesta opció es pot emprar múltiples vegades per a un fitxer d'entrada aplicant-la a diverses pistes, seleccionant els diferents ID de les pistes cada vegada.
-t, --tags TID:nom_fitxer | Llegeix les etiquetes per a la pista amb el número TID des del nom_fitxer. Per a més detalls, vegeu més endavant la secció sobre les etiquetes.
--aac-is-sbr TID[:0|1] | Li indica al mkvmerge(1) que la pista amb l'ID TID és SBR AAC (AAC en SBR) (també coneguda com a HE-AAC o AAC+). Aquestes opcions són necessàries si: a) el fitxer d'origen és un fitxer AAC (no per a un fitxer Matroska(tm)) i b) el fitxer AAC conté dades SBR AAC. El motiu per a aquesta opció, és que és tècnicament impossible distingir les dades AAC de les dades SBR AAC sense descodificar tot un fotograma AAC. Com hi ha diverses qüestions de patents amb els descodificadors per a AAC, el mkvmerge(1) mai contindrà aquesta etapa de la descodificació. De manera que, per als fitxers SBR AAC aquesta opció és obligatòria. Si s'omet aquesta opció, el fitxer generat podria no reproduir-se correctament, o ni tan sols fer-ho. Si el fitxer d'origen és un fitxer Matroska(tm), llavors n'hi hauria d'haver prou amb el CodecID per a detectar el SBR AAC. No obstant això, si el CodecID és erroni, llavors es pot emprar aquesta opció per a corregir-lo. Si el mkvmerge detecta erròniament que un fitxer AAC està en SBR, llavors podeu afegir «:0» a l'ID de la pista.
--audio-emphasis TID:n|symbolic-name | Estableix l'èmfasi per a la pista d’àudio amb l’ID de la pista TID. El mode pot ser un número n (certs valors entre 0 i 16) o un nom simbòlic. Tots els números vàlids i els noms simbòlics es poden llistar amb l'opció --list-audio-emphasis.
--reduce-to-core TID | Alguns còdecs d'àudio tenen un nucli amb pèrdues i extensions opcionals que implementen una descodificació sense pèrdues. Aquesta opció li indica al mkvmerge(1) que només copiï el nucli i no les extensions. De manera predeterminada, el mkvmerge(1) copiarà el nucli i les extensions. Actualment, aquesta opció només afecta a les pistes DTS. No obstant això, les pistes TrueHD que contenen un nucli AC-3 incrustat es presenten com a dues pistes independents de manera que l'usuari pugui seleccionar quina pista vol copiar. Per a les DTS això no funcionarà, ja que les extensions HD no es poden descodificar en si mateixes -a diferència de les dades TrueHD-.
--remove-dialog-normalization-gain TID | Alguns códec'àudio contenen camps de capçalera que indiquen al decodificador o al reproductor quin guany aplicar (generalment negatiu) per al diàleg de normalització. Aquesta opció indica al mkvmerge(1) que elimini o minimitzi aquest guany modificant els camps de capçalera corresponents. En l'actualitat només es veuen afectades per a aquesta opció les pistes AC-3, DTS i TrueHD.
--timestamps TID:nom_fitxer | Llegeix els codis de temps que s'empraran per a l'ID específic de la pista des del nom_fitxer. Aquests codis de temps substitueixen de manera forçosa els codis de temps que normalment calcula el mkvmerge(1). Llegiu la secció sobre els fitxers externs per als codis de temps.
--default-duration TID:x | Força la durada predeterminada de la pista indicada a un valor específic. També modificarà els codis de temps de la pista perquè coincideixin amb la durada predeterminada. L'argument x haurà de tenir el sufix «s», «ms», «us», «ns», «fps», «p» o «i» per a especificar la durada predeterminada en segons, mil·lisegons, microsegons, nanosegons, «fotogrames per segon», «fotogrames progressius per segon» o «fotogrames entrellaçats per segon», respectivament. El número x en si mateix pot ser un nombre decimal o una fracció. Si la durada predeterminada no és forçada, llavors el mkvmerge intentarà obtenir la durada predeterminada de la pista a partir del contenidor i/o flux de bits codificat per a certs tipus de pista, p. ex., AVC/H.264 o MPEG-2. Aquesta opció també es pot emprar per a canviar els FPS de les pistes de vídeo sense haver d'emprar un fitxer extern per als codis de temps.
--fix-bitstream-timing-information TID[:0|1] | Normalment, el mkvmerge(1) no canvia la informació del temps (taxa de fotogrames/camps) emmagatzemada al flux de bits del vídeo. Amb aquesta opció, dita informació s'ajustarà per a coincidir amb la informació del temps al contenidor. La informació del temps al contenidor pot provenir de diverses fonts: des de la línia d'ordres (vegeu l'opció --default-duration), el contenidor de l'origen o obtingut a partir del flux de bits. Note: Per ara, només s'ha implementat per a pistes de vídeo AVC/H.264.
--compression TID:n | Selecciona el mètode de compressió a emprar per a la pista. Recordeu que el reproductor també haurà d'admetre aquest mètode. Els valors vàlids són «none», «zlib» i «mpeg4_p2»/«mpeg4p2». El mètode de compressió «mpeg4_p2»/«mpeg4p2» és un mètode especial anomenat «eliminador de la capçalera» que només està disponible per a les pistes de vídeo MPEG4 part 2. La compressió predeterminada per a alguns tipus de subtítols és «zlib». Aquest mètode de compressió també és el més implementat per gairebé totes, si no totes, les aplicacions de reproducció. No es pot assegurar la implementació per a altres mètodes de compressió que no sigui «none».

## 2.8. Opcions que només s'apliquen a les pistes de vídeo

Option | Description
--- | ---
-f, --fourcc TID:FourCC | Força el FourCC al valor especificat. Només funciona per a les pistes de vídeo en el mode compatibilitat amb MS.
--display-dimensions TID:amplada_x_alçada | Els fitxers Matroska(tm) contenen dos valors que estableixen les propietats de visualització que emprarà un reproductor per a escalar la imatge durant la reproducció a: amplada i alçada de visualització. Aquests valors es poden establir amb aquesta opció, p. ex., «1:640x480». Una altra manera d'especificar els valors és emprar l'opció --aspect-ratio o --aspect-ratio-factor (vegeu a continuació). Aquestes opcions són mútuament excloents.
--aspect-ratio TID:relació|amplada/alçada | Els fitxers Matroska(tm) contenen dos valors que estableixen les propietats de visualització que emprarà un reproductor per a escalar la imatge durant la reproducció a: amplada i alçada de visualització. Amb aquesta opció, el mkvmerge(1) calcularà automàticament l'amplada i alçada de reproducció partint de l'amplada i alçada original de la imatge i la relació d'aspecte indicada amb aquesta opció. La relació es pot indicar com un nombre decimal per a la relació o com una fracció per a l'«amplada/alçada», p. ex., «16/9». Una altra manera d'especificar els valors és emprar l'opció --aspect-ratio-factor o --display-dimensions (vegeu anteriorment i a continuació). Aquestes opcions són mútuament excloents.
--aspect-ratio-factor TID:factor|n/d | Una altra manera d'establir la relació d'aspecte és especificar un factor. La relació d'aspecte original es multiplica primer amb aquest factor i després s'empra com la relació d'aspecte definitiva. Una altra manera d'especificar els valors és emprar l'opció --aspect-ratio o --display-dimensions (vegeu anteriorment). Aquestes opcions són mútuament excloents.
--cropping TID:esquerra,a_dalt,dreta,a_baix | Estableix els valors indicats els paràmetres del retall dels píxels d'una pista de vídeo.
--color-matrix-coefficients TID:n | Estableix els coeficients de la matriu del vídeo emprats per a derivar els valors de luminància i de crominància dels colors primaris vermell, verd i blau. El paràmetre n és un nombre enter que va des del 0 al 10. Els valors vàlids i els seus significats són els següents: 0: GBR, 1: BT709, 2: sense especificar, 3: reservat, 4: FCC, 5: BT470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: YCOCG, 9: BT2020 luminància no constant, 10: BT2020 luminància constant
--color-bits-per-channel TID:n | Estableix el nombre de bits codificats per a un canal de color. Un valor de 0 indica que el nombre de bits no està especificat.
--chroma-subsample TID:horit,vert | La quantitat de píxels per a eliminar en els canals Cr i Cb per a cada píxel no eliminat horitzontalment i verticalment. Exemple: Per al vídeo amb submostreig cromàtic 4:2:0, el paràmetre s'haurà d'establir a TID:1,1.
--cb-subsample TID:horit,vert | La quantitat de píxels per a eliminar al canal Cb per a cada píxel no eliminat horitzontalment i verticalment. Aquest és additiu amb --chroma-subsample. Exemple: Per al vídeo amb submostreig cromàtic 4:2:1, el paràmetre --chroma-subsample s'haurà d'establir a TID:1,0 i el submostreig Cb s'haurà d'establir a TID:1,0.
--chroma-siting TID:horit,vert | Estableix com està situada la crominància, horitzontalment/verticalment.(0: sense especificar, 1: a dalt juxtaposats, 2: meitat).
--color-range TID:n | Estableix la retallada dels intervals de colors (0: sense especificar, 1: interval de difusió, 2: tot l'interval (sense retallat), 3: definit pels coeficients de la matriu/característiques de la transferència).
--color-transfer-characteristics TID:n | Les característiques de la transferència del vídeo. Els valors vàlids i els seus significats són els següents: 0: reservat, 1: ITU-R BT.709, 2: sense especificar, 3: reservat, 4: interval de corba 2.2, 5: interval de corba 2.8, 6: SMPTE 170M, 7: SMPTE 240M, 8: lineal, 9: registre, 10: registre sqrt, 11: IEC 61966-2-4, 12: gamma de colors estesa ITU-R BT.1361, 13: IEC 61966-2-1, 14: ITU-R BT.2020 de 10 bits, 15: ITU-R BT.2020 de 12 bits, 16: SMPTE ST 2084, 17: SMPTE ST 428-1; 18: ARIB STD-B67 (HLG)
--color-primaries TID:n | Estableix els colors primaris del vídeo. Els valors vàlids i els seus significats són els següents: 0: reservat, 1: ITU-R BT.709, 2: sense especificar, 3: reservat, 4: ITU-R BT.470M, 5: ITU-R BT.470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: FILM, 9: ITU-R BT.2020, 10: SMPTE ST 428-1, 22: JEDEC P22 llumins
--max-content-light TID:n | Estableix la brillantor màxima d'un únic píxel (el nivell màxim de llum que conté) en candeles per metre quadrat (cd/m²). El valor de n haurà de ser un nombre enter no negatiu.
--max-frame-light TID:n | Estableix la brillantor màxima de tot un marc (el nivell màxim de llum mitjà del marc) en candeles per metre quadrat (cd/m²). El valor de n haurà de ser un nombre enter no negatiu.
--chromaticity-coordinates TID:vermell-x,vermell-y,verd-x,verd-y,blau-x,blau-y | Estableix les coordenades de la cromaticitat per al vermell/verd/blau com es defineixen per la CIE 1931.
--white-color-coordinates TID:x,y | Estableix les coordenades cromàtiques del color blanc com es defineixen per la CIE 1931.
--max-luminance TID:decimal | Estableix la luminància màxima en candeles per metre quadrat (cd/m²). El valor haurà de ser inferior que 9999.99.
--min-luminance TID:decimal | Estableix la luminància mínima en candeles per metre quadrat (cd/m²). El valor haurà de ser inferior que 999.9999.
--projection-type TID:mètode | Estableix el mètode de projecció del vídeo que s'utilitzarà. Els valors vàlids són 0 (projecció rectangular), 1 (projecció equirectangular), 2 (projecció mapa del cub) i 3 (projecció de malla).
--projection-private TID:dades | Estableix les dades privades que només s'aplicaran a una projecció específica. Les dades s'han de proporcionar com a nombres hexadecimals amb el prefix «0x» o sense, amb espais o sense.
--projection-pose-yaw TID:decimal | Especifica un gir de l'encaix a la projecció.
--projection-pose-pitch TID:decimal | Especifica un gir de la presentació a la projecció.
--projection-pose-roll TID:decimal | Especifica un gir del rotllo a la projecció.
--field-order TID:n | Estableix l'ordre del camp de vídeo amb l'ID de pista TID. L'ordre haurà de ser un dels següents números: 0: progressiu; 1: entrellaçat del primer camp superior mostrat i del primer camp superior emmagatzemat; 2: ordre del camp sense determinar; 6: entrellaçat del primer camp inferior mostrat i del primer camp inferior emmagatzemat; 9: entrellaçat del primer camp inferior mostrat i del primer camp superior emmagatzemat; 14: entrellaçat del primer camp superior mostrat i del primer camp inferior emmagatzemat
--stereo-mode TID:n|symbolic-name | Estableix el mode estèreo per a la pista d’àudio amb l’ID de la pista TID. El mode pot ser un número n entre 0 i 14 o un nom simbòlic. Tots els números vàlids i els noms simbòlics es poden llistar amb l'opció --list-stereo-modes.

## 2.9. Opcions que només s'apliquen a les pistes de subtítols de text

Option | Description
--- | ---
--sub-charset TID:joc_de_caràcters | Estableix el joc de caràcters per a la conversió a UTF-8 dels subtítols per a un ID indicat de pista. Si no s'especifica el joc de caràcters, aquest derivarà dels ajustaments per a la configuració regional. Cal tenir en compte que no és necessari un joc de caràcters per a llegir els subtítols des de fitxers Matroska(tm) o des de fluxos Kate, ja que aquests sempre s'emmagatzemen en UTF-8. Vegeu la secció sobre la conversió per a fitxers de text i jocs de caràcters, per a una explicació sobre com realitza el mkvmerge(1) la conversió entre els jocs de caràcters. Aquesta opció es pot emprar múltiples vegades per a un fitxer d'entrada aplicant-la a diverses pistes, seleccionant els diferents ID de les pistes cada vegada.

## 2.10. Altres opcions

Option | Description
--- | ---
-i, --identify nom_fitxer | Li permet al mkvmerge(1) sondejar el fitxer i informar del seu tipus, les pistes que conté i els ID de les pistes. Si s'empra aquesta opció, llavors l'única opció permesa serà el nom_fitxer. El format emprat a la sortida es pot canviar amb l'opció --identification-format.
-J nom_fitxer | Aquest és un àlies pràctic per a «--identification-format json --identify nom_fitxer».
-F, --identification-format format | Determina el format de la sortida emprat per l'opció --identify. S'admeten els següents formats: text (el valor predeterminat si no s'empra aquesta opció) i json. El format text és curt i llegible. Consisteix en una línia per a cada element trobat (contenidor, pistes, adjunts, etc.). Aquest format no està destinat a ser analitzat. La sortida serà traduïda a l'idioma que empra el mkvmerge(1) (vegeu també l'opció --ui-language). La sortida del format json és una representació JSON llegible per la màquina. Aquest format segueix l'esquema JSON descrit en el següent fitxer: mkvmerge-identification-output-schema-v20.json Totes les versions de l'esquema JSON estan disponibles tant en línia com en els fitxers del codi font alliberat.
--probe-range-percentage percentage | Tipus de fitxers com fluxos de programa i de transport MPEG (.vob, .m2ts) requereixen analitzar una certa quantitat de dades per tal de detectar totes les pistes contingudes al fitxer. Aquesta quantitat és el 0,3% de la mida del fitxer d'origen o de 10 MB, el que sigui més gran. Si les pistes són conegudes per estar presents, però no s'han trobat, llavors el percentatge per a provar es pot canviar amb aquesta opció. El mínim de 10 MB es troba incorporat i no es pot canviar.
--list-audio-emphasis | Llista tots els números vàlids i els seus noms simbòlics corresponents per a l'opció --audio-emphasis.
--list-languages | Llista tots els idiomes i el seu codi ISO 639-2 que es poden emprar amb l'opció --language.
--list-stereo-modes | Llista tots els números vàlids i els seus noms simbòlics corresponents per a l'opció --stereo-mode.
-l, --list-types | Llista els tipus de fitxer d'entrada admesos.
--priority prioritat | Estableix la prioritat del procés amb què s'executa el mkvmerge(1). Els valors vàlids són «lowest» (Molt baixa), «lower» (Baixa), «normal» (Normal), «higher» (Alta) i «highest» (Molt alta). Si no s'indica res, llavors s'emprarà «normal». En sistemes com Unix, el mkvmerge(1) emprarà la funció nice(2). Per tant, només el superusuari podrà emprar «higher» i «highest». Al Windows, tots els valors són usables per part de tots els usuaris. La selecció de «lowest», farà que el mkvmerge(1) seleccioni una prioritat d'E/S ociosa, a més de la prioritat de procés més baixa possible.
--command-line-charset joc_de_caràcters | Estableix el joc de caràcters al qual convertir les cadenes indicades des de la línia d'ordres. De manera predeterminada serà el joc de caràcters donat per la configuració regional actual del sistema. Aquest ajustament s'aplicarà als arguments de les següents opcions: --title, --track-name i --attachment-description.
--output-charset joc_de_caràcters | Estableix el joc de caràcters al qual convertir les cadenes de la sortida. De manera predeterminada serà el joc de caràcters donat per la configuració regional actual del sistema.
-r, --redirect-output nom_fitxer | Escriu tots els missatges al nom_fitxer en lloc de la consola. Si bé això es pot fer fàcilment amb la redirecció de la sortida, hi ha casos en què cal aquesta opció: quan el terminal torna a interpretar la sortida abans d'escriure-la a un fitxer. Es respectarà el joc de caràcters establert amb --output-charset.
--no-bom | Normally text files that are created & encoded in one of the UTF variants will start with a byte order marker (BOM). Using this option disables writing that byte order marker.
--flush-on-close | Li indica al programa que buidi totes les dades emmagatzemades a la memòria cau de l'emmagatzematge en tancar els fitxers oberts per a escriure. Això es pot usar per a evitar la pèrdua de dades en interrupcions d'electricitat o per a evitar certs problemes en el sistema operatiu o els controladors. L'inconvenient és que la multiplexació trigarà més, ja que el «mkvmerge» esperarà fins que totes les dades s'hagin escrit a l'emmagatzematge abans de sortir. Vegeu els problemes número 2469 i 2480 en el seguiment d'errors del MKVToolNix per a un debat en profunditat sobre els pros i els contres.
--ui-language codi | Força l'ús de les traduccions per al codi d'idioma (p. ex., «de_DE» per a les traduccions en alemany). Introduint «list» com a codi, es farà que el programa ofereixi a la sortida una llista de les traduccions disponibles.
--abort-on-warnings | Indica al programa que interrompi després d'emetre el primer avís. El codi de sortida del programa serà 1.
--deterministic llavor | Permet la creació de fitxers amb bytes idèntics si s'usa la mateixa versió mkvmerge(1) amb els mateixos fitxers d'origen, les mateixes opcions i la mateixa llavor. Recordeu que en aquest mode el camp d'informació del segment «data» no serà escrit. La llavor podrà ser una cadena arbitrària i no haurà de ser un número. El resultat de fitxers amb bytes idèntics només està garantit en les següents condicions: Si s'utilitza la mateixa versió del mkvmerge(1) construïda amb les mateixes versions de la libEBML i la libMatroska. Si s'utilitzen fitxers d'origen amb bytes idèntics. Si s'utilitzen les mateixes opcions de la línia d'ordres en el mateix ordre (amb la notable excepció de --output «…»). L'ús d'altres versions del mkvmerge(1) o altres opcions de la línia d'ordres pot donar com a resultat el mateix fitxer amb bytes idèntics, però no es garanteix que ho faci.
--debug tema | Activa la depuració per a una característica específica. Aquesta opció només és útil per als desenvolupadors.
--engage característica | Activa les característiques experimentals. Es pot sol·licitar una llista de les característiques disponibles amb mkvmerge --engage list. Aquestes característiques no estan destinades a ser emprades en situacions normals.
--gui-mode | Activa el mode IGU. En aquest mode, les línies surten amb un format especial que pot explicar-vos el que està succeint per tal de controlar la IGU. Aquests missatges segueixen el format «#IGU#missatge». El missatge pot estar seguit per parells clau/valor com «#IGU#missatge#clau1=valor1#clau2=valor2…». Ni els missatges ni les claus seran traduïdes, sempre sortiran en anglès.
@fitxer_d_opcions.json | Llegeix els arguments addicionals per a la línia d'ordres des del fitxer fitxer_d_opcions. Per a més informació, vegeu la secció sobre els fitxers d'opcions. Si voleu utilitzar el signe @ com a primer caràcter de l'argument d'una opció com ara «--title», haureu d'escapar-lo amb un segon signe @. Exemple:
    $ mkvmerge -o midnight-s01e01.mkv --title @@midnight midnight-s01e01.mp4
--capabilities | Mostra informació sobre les característiques addicionals que s'han compilat i surt. La primera línia de la sortida serà la informació de la versió. La resta de les línies contenen exactament una paraula, la presència d'aquesta indica que aquesta característica ha estat compilada. Aquestes característiques són: «FLAC» -- llegeix fitxers FLAC en RAW i manipula les pistes FLAC en altres contenidors, p. ex., Ogg(tm) o Matroska(tm).
-h, --help | Mostra la informació d'ús i surt.
-V, --version | Mostra la informació sobre la versió i surt.

# 3. Ús

Per a cada fitxer, l'usuari pot seleccionar quines pistes haurà de prendre el mkvmerge(1). Totes s'emmagatzemaran en un fitxer especificat amb -o. Amb l'opció -l s'obtindrà una llista dels formats coneguts (i implementats).

Important:

L'ordre de les opcions a la línia d'ordres és important. Si us plau, si sou novell emprant aquest programa, llegiu la secció «L'ordre de les opcions».

# 4. L'ordre de les opcions

L'ordre en el qual s'especifiquen les opcions és important per a algunes opcions. Les opcions es divideixen en dues categories:

1. Les opcions que afecten tot el programa i no estan vinculades a cap fitxer d'entrada. Aquestes inclouen, però no es limiten a --command-line-charset, --output o --title. Aquestes poden aparèixer en qualsevol part de la línia d'ordres.

2. Les opcions que afecten un sol fitxer d'entrada o una sola pista en un fitxer d'entrada. Aquestes opcions s'apliquen al següent fitxer a la línia d'ordres. Totes les opcions que s'apliquen al mateix fitxer d'entrada (o les pistes del mateix fitxer d'entrada) es poden escriure en qualsevol ordre, sempre que totes apareguin abans del nom del fitxer d'entrada. Exemples per a aplicar opcions a un fitxer d'entrada són --no-chapters o --chapter-charset. Exemples per a aplicar opcions a una única pista són --default-duration o --language.

Les opcions es processen d'esquerra a dreta. Si una opció apareix múltiples vegades en el mateix àmbit, s'emprarà l'última ocurrència. Per tant, en el següent exemple el títol s'establirà a «Qualsevulla»:

    $ mkvmerge -o sortida.mkv --title 'Això i allò' entrada.avi --title 'Qualsevulla'

El següent exemple mostra com emprar dues vegades l'opció --language, és correcte perquè són emprades en àmbits diferents. Tot i que apliquen al mateix ID de pista, aquestes s'apliquen a fitxers d'entrada diferents i, per tant, tenen àmbits diferents:

    $ mkvmerge -o sortida.mkv --language 0:fre francès.ogg --language 0:deu holandès.ogg

# 5. Exemples

Suposem que teniu un fitxer anomenat meva_peli.avi i la pista d'àudio en un altre fitxer, p. ex., «meva_peli.wav». El primer que voleu és codificar l'àudio a OggVorbis(tm):

    $ oggenc -q4 -o meva_peli.ogg meva_peli.wav

Després d'uns minuts ja podreu unir l'àudio i el vídeo:

    $ mkvmerge -o meva_peli-amb-so.mkv meva_peli.avi meva_peli.ogg

Si el vostre AVI ja conté una pista d'àudio, llavors també serà copiada (si el mkvmerge(1) admet aquest format d'àudio). Per a evitar-ho, simplement feu el següent:

    $ mkvmerge -o meva_peli-amb-so.mkv -A meva_peli.avi meva_peli.ogg

Després d'alguns minuts considerant-ho decidiu afegir una altra pista d'àudio, p. ex., els comentaris del director o un altre idioma a «meva_peli-afegeix-àudio.wav». Es codifica una altra vegada i s'afegeix a l'altre fitxer:

    $ oggenc -q4 -o meva_peli-afegeix-àudio.ogg meva_peli-afegeix-àudio.wav
    $ mkvmerge -o MM-completa.mkv meva_peli-amb-so.mkv meva_peli-afegeix-àudio.ogg

Es pot aconseguir el mateix resultat amb:

    $ mkvmerge -o MM-complet.mkv -A meva_peli.avi meva_peli.ogg meva_peli-afegeix_àudio.ogg

Ara obriu el mplayer(tm) i gaudiu-ne. Si teniu múltiples pistes d'àudio (o fins i tot pistes de vídeo), llavors li podreu indicar al mplayer(tm) quina pista ha de reproduir amb les opcions «-vid» i «-aid». Aquestes es basen en el 0 i no distingeixen entre el vídeo i l'àudio.

Si necessiteu una pista d'àudio sincronitzada, ho podeu fer amb facilitat. El primer és esbrinar quin ID de pista té la pista Vorbis, amb:

    $ mkvmerge --identify sense_sincronitzar.ogg

Ara podeu emprar aquest ID a la línia d'ordres següent:

    $ mkvmerge -o ben_sincronitzat.mkv -A origen.avi -y 12345:200 sense_sincronitzar.ogg

Això afegiria 200 ms de silenci al començament de la pista d'àudio amb l'ID 12345 obtingut des de «sense_sincronitzar.ogg».

Algunes pel·lícules comencen sincronitzades correctament, però a poc a poc es dessincronitzen. Per a aquest tipus de pel·lícules podeu especificar un factor de desfasament que serà aplicat a tots els codis de temps -no s'afegirà o suprimirà cap dada-. Si apliqueu un factor massa gran o petit el resultat serà incorrecte. Un exemple seria un episodi codificat que té 0,2 segons de desincronització al final de la pel·lícula, la longitud és de 77340 fotogrames. A 29,97 fps 0,2 segons corresponen aproximadament 6 fotogrames. De manera que podeu fer:

    $ mkvmerge -o ben_sincronitzat.mkv -y 23456:0,77346/77340 sense_sincronitzar.mkv

El resultat ha estat bo.

Les opcions de sincronització també es poden emprar per a subtítols de la mateixa manera.

Per a subtítols de text podeu emprar algun programari per a Windows (com SubRipper(tm)) o el paquet subrip(tm) que es pot trobar en el codi font del transcode(1) al directori «contrib/subrip». El procés general és:

1. Extreure un flux de subtítols en RAW des de l'origen:

       $ tccat -i /camí/on/copiar/dvd/ -T 1 -L | tcextract -x ps1 -t vob -a 0x20 | subtitle2pgm -o meva_peli

2. Convertir les imatges PGM resultants a text amb el «gocr»:

       $ pgm2txt meva_peli

3. Revisar l'ortografia dels fitxers de text resultants:

       $ ispell -d american *txt

4. Convertir els fitxers de text en un fitxer SRT:

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

El fitxer resultant el pot emprar el mkvmerge(1) com un altre fitxer d'entrada:

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

Si voleu especificar l'idioma per a una pista concreta, això és realment fàcil. Primer cerqueu el codi ISO 639-2 per al vostre idioma. El mkvmerge(1) pot llistar tots aquests codis:

    $ mkvmerge --list-languages

Cerqueu a la llista els idiomes que necessiteu. Suposem que teniu dues pistes d'àudio en un fitxer Matroska(tm) i voleu establir els seus codis d'idioma, i que els seus ID de les pistes són 2 i 3. Això es pot fer amb:

    $ mkvmerge -o amb_codis_d_idioma.mkv --language 2:ger --language 3:dut sense_codis_d_idioma.mkv

Com es pot veure, podeu emprar l'opció --language múltiples vegades.

Podria ser que vulgueu que el reproductor empri l'holandès com a idioma predeterminat. També teniu subtítols addicionals, p. ex., en anglès i francès, i voleu que el reproductor mostri de manera predeterminada el francès. Això es pot fer amb:

    $ mkvmerge -o amb_codis_d_idioma.mkv --language 2:ger --language 3:dut --default-track-flag 3 sense_codis_d_idioma.mkv --language 0:eng anglès.srt --default-track-flag 0 --language 0:fre francès.srt

Si no veieu al mkvinfo(1) les etiquetes d'idioma o de pista predeterminada que heu especificat, llavors llegiu la secció sobre els valors predeterminats.

Desactiva la compressió per a un fitxer d'entrada.

    $ mkvmerge -o sense_compressió.mkv --compression -1:none meva_peli.avi --compression -1:none meva_peli.srt

# 6. Els ID de les pistes

## 6.1. Els ID de pista normal

Algunes opcions per al mkvmerge(1) necessiten un ID de pista per a especificar a quina pista s'han d'aplicar. Aquests ID de pista són mostrats pels lectors quan demultiplexen el fitxer d'entrada actual, o si el mkvmerge(1) és invocat amb l'opció --identify. Un exemple per a això:

    $ mkvmerge -i v.mkv
    Fitxer «v.mkv»: contenidor: Matroska
    ID de la pista 0: video (V_MS/VFW/FOURCC, DIV3)
    ID de la pista 1: audio (A_MPEG/L3)

No s'han de confondre els ID de les pistes que s'assignen a les pistes que s'escriuen al fitxer MKV de sortida amb els ID de les pistes dels fitxers d'entrada. Només els ID de les pistes del fitxer d'entrada són emprats per a les opcions que necessiten aquests valors.

Cal tenir també en compte que cada fitxer d'entrada té el seu propi conjunt d'ID de les pistes. Per tant, els ID de les pistes per al fitxer «fitxer_1.ext» tal com havia informat l'ordre «mkvmerge --identify» no canviaran, no importa quants fitxers d'entrada hi hagi o en quina posició es faci servir «fitxer_1.ext».

Els ID de les pistes són assignats així:

- Fitxers AVI: La pista de vídeo té l'ID 0. Les pistes d'àudio obtenen els seus ID en ordre ascendent començant des de l'1.

- Fitxers AAC, AC-3, MP3, SRT i WAV: A l'única «pista» en aquest fitxer se li assigna l'ID 0.

- La majoria de fitxers: Els ID de les pistes són assignats en l'ordre en el qual es troben les pistes, començant des del número 0.

Les opcions que empren els ID de les pistes són aquelles en què la descripció conté un «TID». Les següents opcions també empren els ID de les pistes: --audio-tracks, --video-tracks, --subtitle-tracks, --button-tracks i --track-tags.

## 6.2. Els ID de pista normal

Hi ha diversos ID que tenen un significat especial i que no apareixen a la sortida d'identificació.

L'ID de pista especial «-1» és un comodí i aplica l'opció indicada a totes les pistes que es llegeixen des d'un fitxer d'entrada.

L'ID «-2» de pista especial fa referència als capítols en un fitxer d'origen. Actualment, només l'opció --sync utilitza aquest ID especial. Com a alternativa a --sync -2:«...», es pot utilitzar l'opció --chapter-sync «...».

# 7. Gestió de l'idioma

El Matroska(tm) admet dos tipus diferents d'elements d'idioma: l'antic element «Language» obsolet que conté els codis ISO 639-2 alfa 3 i les etiquetes noves «LanguageIETF» que contenen les etiquetes d'idioma BCP 477 de la IETF. Totes les opcions del mkvmerge(1) que admeten un idioma accepten una etiqueta BCP 47. Sempre que sigui possible, el mkvmerge(1) obtindrà el valor per a l'element «Language» obsolet a partir de les etiquetes d'idioma BCP 47.

Quan s'identifiqui un fitxer en mode JSON, els elements de capçalera de pista «LanguageIETF» existents es mostraran com la propietat de pista language_ietf.

Quan s'escrigui un fitxer, el mkvmerge(1) sempre escriurà els elements «LanguageIETF», «ChapLanguageIETF» i «TagLanguageIETF» (els dos últims només si s'escriuen capítols o etiquetes respectivament). A més d'aquests elements, s'escriuran els elements antics corresponents. S'establiran a la part del codi ISO 639-2 de l'etiqueta d'idioma BCP 47. Per exemple, quan l'idioma de la pista s'estableix a sr-Cyrl-RS, «LanguageIETF» s'establirà a sr-Cyrl-RS i l'element antic «Language» s'establirà a srp.

Quan es llegeixin fitxers (fitxers Matroska, capítols XML o fitxers d'etiquetes, etc.) que ja contenen elements «...LanguageIETF», es conservaran els elements existents. En cas contrari, els elements «...LanguageIETF» s'afegiran en funció de les opcions a la línia d'ordres, així com els altres elements «...Language» obsolets existents.

La creació d'elements nous es pot desactivar completament amb l'opció de la línia d'ordres -disable-language-ietf, la qual opera sobre els tres elements nous.

Podeu triar el mètode de normalització aplicat a les subetiquetes d'idioma estès amb el paràmetre --normalize-language-ietf.

# 8. Conversió per a fitxers de text i jocs de caràcters

Note:

Aquesta secció s'aplica a tots els programes de les MKVToolNix, encara que només s'esmenti el mkvmerge(1).

## 8.1. Introducció

Tot el text en un fitxer Matroska(tm) està codificat en UTF-8. Això implica que el mkvmerge(1) converteixi cada fitxer de text que llegeix, així com cada text indicat a la línia d'ordres, des d'un joc de caràcters a UTF-8. Per contra, això també vol dir que la sortida del mkvmerge(1) s'ha de convertir des d'UTF-8 a un joc de caràcters, p. ex., si s'empra una traducció no anglesa amb --ui-language o per a text que prové d'un fitxer Matroska(tm).

El mkvmerge(1) realitzarà automàticament aquesta conversió en funció de la presència d'un marcador d'ordre de byte (abreujat: BOM) o de la configuració regional del sistema. Com el joc de caràcters es dedueix de la configuració regional, dependrà del sistema operatiu on s'executi el mkvmerge(1).

## 8.2. Marcadors d'ordre de byte (BOM -byte order markers-)

Els fitxers de text que comencen amb un BOM, ja estan codificats en una representació d'UTF. El mkvmerge(1) admet els cinc modes següents: UTF-8, UTF-16 Little i Big Endian, UTF-32 Little i Big Endian. Els fitxers de text amb un BOM seran automàticament convertits a UTF-8. Qualsevol dels paràmetres que d'una altra manera, estableixen el joc de caràcters d'un fitxer com aquest (p. ex., --sub-charset) seran ignorats silenciosament.

## 8.3. Sistemes Linux i Unix, inclòs el macOS

En sistemes com Unix, el mkvmerge(1) empra la crida del sistema setlocale(3) que al seu torn empra les variables d'entorn LANG, LC_ALL and LC_CYPE. El joc de caràcters resultant sovint serà un UTF-8 o de la família ISO-8859- *, i s'emparà per a totes les operacions sobre fitxers de text i per a codificar les cadenes a la línia d'ordres i per a la sortida de la consola.

## 8.4. Windows

Al Windows, el joc de caràcters predeterminat emprat per a la conversió de fitxers de text es determina per la crida del sistema GetACP().

La lectura de la línia d'ordres es realitza amb la funció GetCommandLineW() que ja retorna una cadena de text Unicode. Per tant, a Windows s'ignorarà l'opció --command-line-charset.

La sortida a la consola consta de tres escenaris:

1. Si la sortida es redirigeix amb l'opció --redirect-output, llavors el joc de caràcters predeterminat serà UTF-8. Es pot canviar amb --output-charset.

2. Si es redirigeix la sortida amb cmd.exe, p. ex., amb mkvinfo fitxer.mkv > informació.txt, llavors el joc de caràcters sempre serà UTF-8 i no es pot canviar.

3. D'altra manera, (quan s'escriu directament a la consola) s'emprarà la funció de Windows WriteConsoleW() i l'opció --output-charset serà ignorada. La consola hauria de ser capaç de generar tots els caràcters Unicode per a l'idioma corresponent que està instal·lat (p. ex., els caràcters xinesos podrien no ser mostrats en versions en anglès de Windows).

## 8.5. Opcions de la línia d'ordres

Les següents opcions permeten especificar els jocs de caràcters:

- --sub-charset per a fitxers i pistes de subtítols de text emmagatzemades en formats de contenidor per als quals el joc de caràcters no es pot determinar sense ambigüitat. (p. ex., fitxers Ogg),

- --chapter-charset per a fitxers de text amb capítols i títols per a capítols i fitxers emmagatzemats en formats de contenidor per als quals el joc de caràcters no es pot determinar sense ambigüitat. (p. ex., fitxers Ogg per a informació de capítols, pistes i títols dels fitxers, etc. fitxers MP4 per a informació dels capítols),

- --command-line-charset per a totes les cadenes a la línia d'ordres,

- --output-charset per a totes les cadenes escrites a la consola o a un fitxer si la sortida ha estat redirigida amb l'opció --redirect-output. En els sistemes que no siguin Windows, el joc de caràcters predeterminat serà l'actual del sistema. En Windows, de manera predeterminada és a UTF-8, tant redirigint amb --redirect-output com amb cmd.exe, p. ex., mkvinfo fitxer.mkv > informació.txt.

# 9. Fitxers d'opcions

Un fitxer d'opcions és un fitxer des d'on el mkvmerge(1) pot llegir arguments addicionals de la línia d'ordres. Això es pot emprar per a eludir certes limitacions de l'intèrpret d'ordres (shell) o del sistema operatiu, com una longitud limitada de la línia d'ordres quan s'executen programes externs.

Un fitxer d'opcions amb dades en el format JSON. El seu contingut haurà de ser una matriu JSON vàlida que consisteixi únicament de cadenes JSON. La codificació del fitxer haurà de ser en UTF-8. El fitxer no podrà començar amb un marcador d'ordre de bytes (BOM), però si hi és, serà omès.

Les regles per a escapar caràcters especials dins del JSON són les mateixes que hi ha a l'especificació oficial del JSON, RFC 7159.

L'opció del nom de fitxer s'ha d'especificar com a argument de la línia d'ordres prefixada amb un caràcter «@».

La línia d'ordres «mkvmerge -o "meu_fitxer.mkv" -A "una_peli.avi" so.ogg» es pot convertir en el següent fitxer d'opcions JSON anomenat, p. ex., «opcions.json»:

    [
      "-o",
      "c:\\Matroska\\fitxer_meu.mkv",
      "--title",
      "#65",
      "-A",
      "una_peli.avi",
      "so.ogg"
    ]

Llavors, l'ordre corresponent seria «mkvmerge @opcions.json».

# 10. Vincular els fitxers

Matroska(tm) admet la vinculació dels fitxers, el qual simplement vol dir que un fitxer en específic és el predecessor o successor del fitxer actual. Per a ser precisos, els fitxers no estan realment vinculats sinó els segments Matroska(tm). Com la majoria dels fitxers probablement només contenen un segment del Matroska(tm), les següents explicacions empren el terme «vinculació de fitxers» encara que en realitat seria més correcte «vinculació de segments».

Cada segment s'identifica amb un únic UID del segment de 128 bits de longitud. Aquest UID és automàticament generat pel mkvmerge(1). La vinculació es realitza principalment inserint els UID dels segments (abreujat: SID) del fitxer anterior/següent a la informació de la capçalera del segment. El mkvinfo(1) mostrarà aquests SID si els troba.

Si es divideix un fitxer en diversos fitxers més petits i després s'empra la vinculació, llavors els codis de temps no començaran des de 0, sinó que continuaran des d'on va quedar l'últim fitxer. D'aquesta manera, es mantindrà el temps absolut fins i tot si els fitxers anteriors no estan disponibles (p. ex., quan es transmeten). Si no s'empra la vinculació, llavors els codis de temps de cada fitxer començaran des de 0. De manera predeterminada, el mkvmerge(1) no emprarà la vinculació de fitxers. Si voleu, la podeu activar amb l'opció --link. Aquesta opció només és útil si la divisió també està activa.

Independentment de si la divisió està activa o no, l'usuari li pot indicar al mkvmerge(1) que vinculi els fitxers generats a alguns SID específics. Això s'aconsegueix amb les opcions --link-to-previous i --link-to-next. Aquestes opcions accepten un SID del segment en el format que surt del mkvinfo(1): 16 números hexadecimals entre 0x00 i 0xFF prefixats cadascun amb «0x», p. ex., «0x41 0xda 0x73 0x66 0xd9 0xcf 0xb2 0x1e 0xae 0x78 0xeb 0xb4 0x5e 0xca 0xb3 0x93». De manera alternativa, es pot emprar una forma curta: 16 nombres hexadecimals entre 0x00 i 0xFF sense el prefix «0x» i sense espais, p. ex., «41da7366d9cfb21eae78ebb45ecab393».

Si s'empra la divisió, llavors el primer fitxer serà vinculat al SID indicat amb --link-to-previous i l'últim fitxer serà vinculat al SID indicat amb --link-to-next. Si no s'empra la divisió, llavors el fitxer serà vinculat a ambdós SID.

# 11. Valors predeterminats

L'especificació Matroska(tm) defineix que alguns elements tenen un valor predeterminat. En general, si el valor és igual que el predeterminat, llavors no serà escrit en el fitxer per tal d'estalviar espai. Els elements que l'usuari podria trobar a faltar a la sortida del mkvinfo(1) són els elements idioma i etiqueta de pista predeterminada. El valor predeterminat per a l'idioma és anglès («eng»), i per a l'etiqueta de pista predeterminada és true (cert). Per tant, si empreu --language 0:eng per a una pista, llavors no es mostrarà a la sortida del mkvinfo(1).

# 12. Adjunts

Possiblement, també voldreu conservar algunes fotografies juntament amb el vostre fitxer Matroska(tm), o emprar subtítols SSA i necessitareu una lletra TrueType(tm) especial que és realment rar. En aquests casos els podeu adjuntar al fitxer Matroska(tm). No seran simplement annexats, sinó que seran incrustats. Un reproductor els podrà mostrar (en el cas de les «fotografies») o emprar-los per a renderitzar els subtítols (en el cas de la lletra «TrueType(tm)».

Aquí hi ha un exemple de com adjuntar una fotografia i una lletra TrueType(tm) al fitxer de sortida:

    $ mkvmerge -o sortida.mkv -A vídeo.avi so.ogg \
      --attachment-description "Jo i la banda darrere de l'escenari en una petita reunió" \
      --attachment-mime-type image/jpeg \
      --attach-file jo_i_la_banda.jpg \
      --attachment-description "Una lletra veritablement rara i amb un aspecte increïblement bo" \
      --attachment-mime-type application/octet-stream \
      --attach-file tipus_de_lletra_molt_fresc.ttf

Si s'empra un fitxer Matroska(tm) que conté adjunts com a fitxer d'entrada, llavors el mkvmerge(1) copiarà tots els adjunts dins del fitxer nou. La selecció de quins fitxers es copiaran, es pot canviar amb les opcions --attachments i --no-attachments.

# 13. Capítols

El sistema de capítols del Matroska(tm) és més poderós del que ho era l'antic sistema emprat per als fitxers OGM. Les especificacions completes es poden trobar a la pàgina web del Matroska.

El mkvmerge(1) admet dos tipus de fitxers de capítols com a entrada. El primer format, anomenat «format de capítols senzill», és el mateix format que s'espera en les eines OGM. El segon format es basa en el format de capítols en XML, el qual implementa totes les funcionalitats de capítols del Matroska(tm).

A part dels fitxers de capítols dedicats, el mkvmerge(1) també pot llegir capítols des d'altres formats de fitxer (p. ex., MP4, Ogg, Blu-ray o DVD).

## 13.1. El format de capítols senzill

Aquest format consisteix en un parell de línies que comencen amb «CHAPTERxx=» i «CHAPTERxxNAME=», respectivament. La primera conté el codi de temps d'inici mentre que el segon conté el títol. Heus aquí un exemple:

    CHAPTER01=00:00:00.000
    CHAPTER01NAME=Introducció
    CHAPTER02=00:02:30.000
    CHAPTER02NAME=El nen prepara un rock
    CHAPTER03=00:02:42.300
    CHAPTER03NAME=El nen fa trontollar la casa

El mkvmerge(1) transformarà totes les parelles o línies en un i Matroska(tm) ChapterAtom. No estableix cap ChapterTrackNumber, el qual significa que tots els capítols s'apliquen a totes les pistes en el fitxer.

Com es tracta d'un fitxer de text, podria ser necessari realitzar una conversió del joc de caràcters. Vegeu la secció sobre la conversió per a fitxers de text i jocs de caràcters, per a veure una explicació sobre com realitza el mkvmerge(1) la conversió entre diferents jocs de caràcters.

## 13.2. El format de capítols basat en XML

El format de capítols basat en XML s'assembla a aquest exemple:

    <?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>Un capítol curt</ChapterString>
            <ChapterLanguage>cat</ChapterLanguage>
          </ChapterDisplay>
          <ChapterAtom>
            <ChapterTimeStart>00:00:46.000</ChapterTimeStart>
            <ChapterTimeEnd>00:01:10.000</ChapterTimeEnd>
            <ChapterDisplay>
              <ChapterString>Una part d'aquest capítol curt</ChapterString>
              <ChapterLanguage>cat</ChapterLanguage>
            </ChapterDisplay>
          </ChapterAtom>
        </ChapterAtom>
      </EditionEntry>
    </Chapters>

Amb aquest format es poden realitzar tres coses que no es poden amb el format de capítol senzill:

1. Es pot establir el codi de temps per al final del capítol,

2. els capítols es poden aniuar,

3. es poden establir l'idioma i el país.

La distribució de les mkvtoolnix conté alguns fitxers d'exemple en el subdirectori doc que es poden emprar com a base.

Tot seguit es mostra la llista de les etiquetes XML admeses, els seus tipus de dades, a on corresponen i amb un interval vàlid per als seus valors:

    Chapters (domina)
      EditionEntry (domina)
        EditionUID (enter sense signe, interval vàlid: 1 <= valor)
        EditionFlagHidden (enter sense signe, interval vàlid: 0 <= valor <= 1)
        EditionFlagDefault (enter sense signe, interval vàlid: 0 <= valor <= 1)
        EditionFlagOrdered (enter sense signe, interval vàlid: 0 <= valor <= 1)
        ChapterAtom (domina)
          ChapterAtom (domina)
          ChapterUID (enter sense signe, interval vàlid: 1 <= valor)
          ChapterTimeStart (enter sense signe)
          ChapterTimeEnd (enter sense signe)
          ChapterFlagHidden (enter sense signe, interval vàlid: 0 <= valor <= 1)
          ChapterFlagEnabled (enter sense signe, interval vàlid: 0 <= valor <= 1)
          ChapterSegmentUID (binari, interval vàlid: 1 <= longitud en bytes)
          ChapterSegmentEditionUID (enter sense signe, interval vàlid: 1 <= valor)
          ChapterPhysicalEquiv (enter sense signe)
          ChapterTrack (domina)
            ChapterTrackNumber (enter sense signe, interval vàlid: 1 <= valor)
          ChapterDisplay (domina)
            ChapterString (cadena en UTF-8)
            ChapterLanguage (cadena en UTF-8)
            ChapterCountry (cadena en UTF-8)
          ChapterProcess (domina)
            ChapterProcessCodecID (enter sense signe)
            ChapterProcessPrivate (binari)
            ChapterProcessCommand (domina)
              ChapterProcessTime (enter sense signe)
              ChapterProcessData (binari)

## 13.3. Lectura de capítols des de Blu-ray

El mkvmerge(1) pot llegir capítols des de Blu-ray sense encriptar. Per a això, podreu utilitzar el camí a una de les llistes de reproducció MPLS amb el paràmetre --chapters.

Exemple: --chapters /srv/blurays/BigBuckBunny/BDMV/PLAYLIST/00001.mpls

## 13.4. Lectura de capítols des de DVD

Quan el MKVToolNix es compila amb la biblioteca libdvdread(tm), el mkvmerge(1) podrà llegir els capítols des dels DVD. Per a això, podreu utilitzarar el camí a una de les carpetes o fitxers en el DVD amb el paràmetre --chapters. Com els DVD poden contenir més d'un títol i cada títol té el seu propi conjunt de capítols, podreu afegir dos punts i el número de títol desitjat al final de l'argument amb el nom de fitxer. El número de títol predeterminat és 1.

Exemple: --chapters /srv/dvds/BigBuckBunny/VIDEO_TS:2

## 13.5. Notes generals

Quan es divideixen els fitxers, el mkvmerge(1) també ajustarà correctament els capítols. Això vol dir que cada fitxer només inclourà les entrades dels capítols que se li apliquin, i que es compensaran els codis de temps per a que coincideixin amb el nou codi de temps de cada fitxer de sortida.

El mkvmerge(1) és capaç de copiar els capítols des de fitxers d'origen Matroska(tm), llevat que s'inhabiliti explícitament amb l'opció --no-chapters. Els capítols de tots els orígens (fitxers Matroska(tm), fitxers Ogg, fitxers MP4, fitxers de text amb capítols) en general no es fusionen i acaben en ChapterEditions separats. Només si els capítols són llegits des de diversos fitxers Matroska(tm) o XML, aquests compartiran els mateixos UID d'edició, llavors els capítols seran fusionats en un únic ChapterEdition. Si es desitja una fusió com aquesta en altres situacions, l'usuari primer haurà d'extreure els capítols de tots els orígens amb el mkvextract(1), fusionar els fitxers en XML manualment i multiplexar-los després.

# 14. Etiquetes

## 14.1. Introducció

El sistema d'etiquetes de Matroska(tm) és similar al d'altres contenidors: un conjunt de parelles CLAU=VALOR. No obstant això, al Matroska(tm), aquestes etiquetes també es poden aniuar, i tant la CLAU com el VALOR són elements propis. El fitxer d'exemple example-tags-2.xml mostra com emprar aquest sistema.

## 14.2. Àmbit de les etiquetes

Les etiquetes del Matroska(tm) no s'apliquen automàticament a tot el fitxer. És possible fer-ho, però també aplicar-les a diferents parts del fitxer: a una o més pistes, a un o més capítols, o fins i tot en una combinació d'ambdues. L'especificació del Matroska proporciona més detalls sobre això.

Una cosa important és que les etiquetes estan vinculades a pistes o capítols amb l'element d'etiquetes Targets del Matroska(tm), a més els UID emprats per a vincular no seran els ID de les pistes que emprarà el mkvmerge(1) arreu. En canvi, els números emprats seran els UID que calcularà automàticament el mkvmerge(1) (si la pista es pren d'un altre format de fitxer que no sigui Matroska(tm)) o si es copia des del fitxer d'origen, si el fitxer d'origen de la pista és un fitxer Matroska(tm). Per tant, és complicat saber quins UID s'han emprat al fitxer d'etiquetes abans que el fitxer fos proporcionat al mkvmerge(1).

El mkvmerge(1) té dues opcions amb les quals es poden afegir etiquetes als fitxers Matroska(tm): Les opcions --global-tags i --tags. La diferència és que la primera opció, --global-tags, farà que les etiquetes s'apliquin a tot el fitxer eliminant qualsevol d'aquests elements Targets esmentats anteriorment. L'última opció, --tags, insereix automàticament l'UID que genera el mkvmerge(1) per a l'etiqueta especificada amb la part TID de l'opció --tags.

## 14.3. Exemple

Diguem que voleu afegir etiquetes a una pista de vídeo llegida des d'un fitxer AVI. mkvmerge --identify fitxer.avi informa que l'ID de la pista de vídeo (no confondre aquest ID amb l'UID!) és 0. De manera que creareu el fitxer d'etiquetes, deixant de banda tots els elements Targets i cridareu el mkvmerge(1):

    $ mkvmerge -o fitxer.mkv --tags 0:etiquetes.xml fitxer.avi

## 14.4. Format del fitxer d'etiquetes

El mkvmerge(1) admet un format de fitxer d'etiquetes basat en XML. El format és molt similar al model de l'especificació del Matroska. Tant la distribució binària com el codi font de les MKVToolNix, venen acompanyades d'un fitxer d'exemple anomenat example-tags-2.xml, el qual simplement llista totes les etiquetes conegudes i es pot emprar com a base per als fitxers d'etiquetes.

Els fonaments són:

- L'element més extern haurà de ser <Tags>.

- Una etiqueta lògica estarà continguda dins d'un parell d'etiquetes <Tag> en XML.

- Els espais en blanc, directament abans i després del contingut de l'etiqueta, seran ignorats.

## 14.5. Tipus de dades

El nou sistema d'etiquetatge del Matroska(tm) només reconeix dos tipus de dades, una cadena en UTF-8 i un tipus binari. La primera s'empra per al nom de l'etiqueta i l'element <String>, mentre que el tipus binari s'empra per a l'element <Binary>.

Com a dada binària, en si mateixa, no té sentit dins d'un fitxer en XML, el mkvmerge(1) admet dos altres mètodes per a emmagatzemar dades binàries. Si el contingut d'una etiqueta XML comença amb un signe «@», llavors el text que segueix serà tractat com un nom de fitxer. El contingut del fitxer corresponent es copiarà dins de l'element del Matroska(tm).

Altrament, les dades s'esperen codificades en Base64. Aquesta és una codificació que transforma les dades binàries en un conjunt limitat de caràcters ASCII i s'empra, p. ex., en programes de correu electrònic. El mkvextract(1) generarà dades codificades en Base64 per als elements binaris.

L'obsolet sistema d'etiquetatge coneix més tipus de dades que es poden trobar a les especificacions oficials per a etiquetes del Matroska(tm). Com que el mkvmerge(1) ja no admet aquest sistema, aquests tipus no es descriuran aquí.

## 14.6. Etiquetes conegudes per al format de fitxer en XML

Tot seguit es mostra la llista de les etiquetes XML admeses, els seus tipus de dades, a on corresponen i amb un interval vàlid per als seus valors:

    Tags (domina)
      Tag (domina)
        Targets (domina)
          TargetTypeValue (enter sense signe)
          TargetType (cadena en UTF-8)
          TrackUID (enter sense signe)
          EditionUID (enter sense signe)
          ChapterUID (enter sense signe)
          AttachmentUID (enter sense signe)
        Simple (domina)
          Simple (domina)
          Name (cadena en UTF-8)
          TagLanguage (cadena en UTF-8)
          DefaultLanguage (enter sense signe)
          String (cadena en UTF-8)
          Binary (binari)

# 15. Informació del segment

Amb un fitxer en XML amb informació dels segments és possible establir certs valors en el camp de la capçalera «segment information» d'un fitxer Matroska(tm). Tots aquests valors no es poden establir a través d'altres opcions de la línia d'ordres.

Es poden establir altres camps de la capçalera «segment information» a través de les opcions de la línia d'ordres, però no mitjançant el fitxer en XML. Això inclou, p. ex., les opcions --title i --timestamp-scale.

Hi ha altres elements que no es poden establir a través de la línia d'ordres ni mitjançant els fitxers en XML. Això inclou els següents elements: DateUTC (també conegut com la «muxing date»), MuxingApp, WritingApp i Duration. Sempre les estableix el mkvmerge(1) mateix.

Tot seguit es mostra la llista de les etiquetes XML admeses, els seus tipus de dades, a on corresponen i amb un interval vàlid per als seus valors:

    Info (domina)
      SegmentUID (binari, interval vàlid: longitud en bytes == 16)
      SegmentFilename (cadena en UTF-8)
      PreviousSegmentUID (binari, interval vàlid: longitud en bytes == 16)
      PreviousSegmentFilename (cadena en UTF-8)
      NextSegmentUID (binari, interval vàlid: longitud en bytes == 16)
      NextSegmentFilename (cadena en UTF-8)
      SegmentFamily (binari, interval vàlid: longitud en bytes == 16)
      ChapterTranslate (domina)
        ChapterTranslateEditionUID (enter sense signe)
        ChapterTranslateCodec (enter sense signe)
        ChapterTranslateID (binari)

# 16. Disposició dels fitxers Matroska

La disposició d'un fitxer Matroska(tm) és força flexible. El mkvmerge(1) crearà un fitxer d'una manera predefinida. El fitxer resultant tindrà una aparença com aquesta:

[EBML head] [segment {meta seek #1} [segment information] [track information] {attachments} {chapters} [cluster 1] {cluster 2} «...» {cluster n} {cues} {meta seek #2} {tags}]

Els elements que estan entre claudàtors són opcionals, i depenen del contingut i opcions emprades. Uns quants apunts:

- La meta de cerca núm. 1 (meta seek #1) només inclou un petit nombre d'elements de nivell 1, i només si en realitat existeixen: adjunts, capítols, índexs, etiquetes, meta de cerca núm. 2. Les versions antigues del mkvmerge(1) també col·loquen els clústers dins d'aquests elements meta de cerca. Per tant, en alguns casos imprecisos era necessari reservar prou espai. Això fallava sovint. Ara només els clústers són emmagatzemats a la meta de cerca núm. 2, i la meta de cerca núm. 1 es refereix a l'element meta de cerca núm. 2.

- Els elements adjunts, capítols i etiquetes només estan presents si s'han afegit.

El fitxer Matroska(tm) més curt possible s'assemblaria a això:

[EBML head] [segment [segment information] [track information] [cluster 1]]

Aquest podria ser el cas per als fitxers amb només àudio.

# 17. Fitxers externs per als codis de temps

El mkvmerge(1) permet a l'usuari triar els codis de temps per a una pista específica. Es pot emprar per a crear fitxers de vídeo amb una taxa de fotogrames variable (VFR) o per a incloure discontinuïtats en l'àudio. En aquest cas, un fotograma serà la unitat emprada pel mkvmerge(1) per a crear cada bloc del Matroska(tm). Per al vídeo és exactament un fotograma, per a l'àudio això és un paquet d'un tipus d'àudio específic. P. ex., per a AC-3 això seria un paquet que conté 1536 mostres.

Els fitxers de codis de temps que s'empren quan s'annexen les pistes a les altres, només s'han d'especificar a la primera part en una cadena de pistes. Per exemple, si annexeu dos fitxers, v1.avi i v2.avi, i voleu emprar codis de temps, llavors la vostra línia d'ordres serà quelcom a això:

    $ mkvmerge «...» --timestamps 0:codis_de_temps.txt v1.avi +v2.avi

Hi ha quatre formats que són reconeguts pel mkvmerge(1). La primera línia sempre conté el número de la versió. Les línies buides, les línies que només contenen espais en blanc i les que comencen amb un caràcter «#» seran ignorades.

## 17.1. Format v1 per al fitxer del codi de temps

Aquest format comença amb la línia de la versió. La segona línia declara el nombre predeterminat de fotogrames per segon. Totes les línies següents contenen tres números separats per comes: el fotograma d'inici (0 és el primer fotograma), el fotograma final i el nombre de fotogrames en aquest interval. Els FPS (fotogrames per segon) són un nombre decimal amb un signe de punt «.» com a punt decimal. Els intervals poden contenir discontinuïtats per als FPS emprats de manera predeterminada. Un exemple:

    # Format v1 per al codi de temps
    assume 27.930
    800,1000,25
    1500,1700,30

## 17.2. Format v2 per al fitxer del codi de temps

En aquest format cada línia conté un codi de temps per al fotograma corresponent. Aquest codi de temps s'ha d'especificar amb una precisió de mil·lisegons. Pot ser o no un nombre decimal. S'han d'especificar com a mínim tantes línies de codis de temps com fotogrames hi ha a la pista. Els codis de temps en aquest fitxer han d'estar ordenats. Un exemple per a 25 fps:

    # Format v2 per al codi de temps
    0
    40
    80

## 17.3. Format v3 per al fitxer del codi de temps

En aquest format cada línia conté una durada en segons seguida per un nombre opcional de fotogrames per segon. Ambdós camps poden ser nombres decimals. Si no s'especifica el nombre de fotogrames per segon, s'emprarà el valor predeterminat. Per a l'àudio s'hauria de deixar calcular al còdec els codis de temps dels fotogrames. Per a això, haureu d'emprar 0.0 com el nombre de fotogrames per segon. També podeu crear discontinuïtats en el flux emprant la paraula clau «gap» seguida per la durada de la discontinuïtat. Un exemple per a un fitxer d'àudio:

    # Format v3 per al codi de temps
    assume 0.0
    25.325
    7.530,38.236
    gap, 10.050
    2.000,38.236

## 17.4. Format v4 per al fitxer del codi de temps

Aquest format és idèntic al format v2. L'única diferència és que els codis de temps no s'han d'ordenar. Aquest format no s'hauria d'emprar gairebé mai.

# 18. Codis de sortida

El mkvmerge(1) sortirà amb un d'aquests tres codis de sortida:

- 0 -- Aquest codi de sortida significa que el multiplexat s'ha realitzat correctament.

- 1 -- En aquest cas, el mkvmerge(1) ha generat una sortida amb almenys un avís, però el multiplexat ha continuat. Un avís és prefixat amb el text «Avís:». Depenent de les qüestions involucrades, el fitxer resultant serà o no correcte. L'usuari serà instat a revisar tant els avisos com el fitxer.

- 2 -- Aquest codi de sortida s'empra després de produir-se un error. El mkvmerge(1) interromprà el procés just després de mostrar el missatge d'error. L'interval dels missatges d'error va des d'arguments incorrectes a la línia d'ordres fins a errors de lectura/escriptura en fitxers malmesos.

# 19. Variables d'entorn

El mkvmerge(1) empra les variables predeterminades que es determinen a la configuració regional del sistema (p. ex., LANG i la família LC_*). Variables addicionals:

Option | Description
--- | ---
MKVMERGE_DEBUG, MKVTOOLNIX_DEBUG i la seva forma abreujada MTX_DEBUG | El contingut es tractarà com si s'hagués passat l'opció --debug.
MKVMERGE_ENGAGE, MKVTOOLNIX_ENGAGE i la seva forma abreujada MTX_ENGAGE | El contingut es tractarà com si s'hagués passat l'opció --engage.

# 20. Vegeu també

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

# 21. WWW

Sempre trobareu l'última versió a la pàgina de les MKVToolNix.