DOKK / manpages / debian 10 / mkvtoolnix / mkvmerge.1.ca
MKVMERGE(1) Ordres dusuari MKVMERGE(1)

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

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

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; vegeu el lloc web del Matroska[1].


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».

-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 pel fitxer de sortida, p. ex., el nom de la pel⋅lícula.

--default-language codi_idioma

Estableix el codi d'idioma per omissió 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 per omissió és «und» per a «undefined» (sense definir).

--segmentinfo nom_fitxer.xml

Llegeix la informació del segment a partir d'un fitxer 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 XML d'informació del segment.

--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.

--chapter-language codi_idioma

Estableix el codi d'idioma ISO639-2 que s'escriurà en cada entrada de capítol. Per omissió é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 per 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 les marques de temps per o/p, per a fixar desfasaments lineals. Si s'omet, p per omissió serà 1. Tant o com p poden ser nombres decimals.

Per omissió: 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 estan suportats 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.


Nota
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 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 pels 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 pels 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 per la marca 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 substituides pel nom del fitxer adjuntat, amb la seva extensió i sense. Recordeu que només s'inseriran el nom base del fitxer i l'extensió, 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 a la marca 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)

--cue-chapter-name-format format

El mkvmerge(1) pot llegir fulls de muntatge (CUE sheets) per a fitxers d'àudio com a entrada pels 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 tal de 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à per omissió 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 següents meta caràcters 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.

--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ó.

--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».

Per omissió, 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.

--no-cues

Li indica al mkvmerge(1) que no crei i escrigui les dades de l'índex, el qual es pot comparar amb l'índex d'un AVI. Els fitxers Matroska 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 estalviar espai o amb finalitat de proves. Vegeu també que l'opció --cues es pot especificar per a cada fitxer d'entrada.

--clusters-in-meta-seek

Li indica al mkvmerge(1) que crei 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.

--disable-lacing

Inhabilita l'enllaçat 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.

--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.

--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.

--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. Pels 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 pels 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.

--split especificació

Divideix el fitxer de sortida després d'una mida o temps especificat. Si us plau, tingueu 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 quatre modes diferents.

1.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 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.

2.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 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.

3.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ó pel 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.

4.Manté les parts específiques pels 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:

1.--split parts:00:01:20-00:02:45,00:05:50-00:10:30

2.--split parts:00:01:20-00:02:45,+00:05:50-00:10:30

3.--split parts:-00:02:45,00:05:50-

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 per omissió s'emprarà el codi de temps final de l'interval anterior. Si no hi ha un interval anterior, llavors per omissió s'emprarà el d'inici del fitxer (vegeu l'exemple 3).

Si s'omet el codi de temps final, llavors per omissió 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 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.


Nota
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.

5.Manté les parts específiques pels 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:

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

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

3.--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 per omissió s'emprarà el número final de l'interval anterior. Si no hi ha un interval anterior, llavors per omissió s'emprarà el d'inici del fitxer (vegeu l'exemple 3).

Si s'omet el número final, llavors per omissió 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 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.


Nota
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ó.


Nota
Els números indicats amb aquest argument són interpretats partint del nombre de blocs Matroska que es generen. Un únic bloc Matroska 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.

6.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ó.


Nota
Els números indicats amb aquest argument són interpretats partint del nombre de blocs Matroska que es generen. Un únic bloc Matroska 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.

7.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.


Nota
El format de fitxer Matroska 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.

--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ó per omissió 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 convenient emprar. Per tant, per omissió 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 mapeig 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 tot.mkv fitxer_1.mkv + fitxer_2.mkv
$ mkvmerge -o tot.mkv '[' fitxer_1.mkv fitxer_2.mkv ']'

=

En general, el mkvmerge(1) cerca els fitxers en el mateix directori com a fitxer d'entrada que tenen el mateix nom base i que només es diferencien en el seu número d'ordre 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.mkv
$ mkvmerge -o complet.mkv =fitxer_1.mkv

( 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:

1.Hi ha d'haver un espai després d'obrir i abans de tancar els signes de parèntesi.

2.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.

3.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.

--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[2]. El tipus MIME és obligatori per a un adjunt.

--attachment-name nom

Estableix el nom per aquest adjunt que s'emmagatzemarà al fitxer de sortida. Si no s'especifica aquesta opció, llavors el nom derivarà 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. Abans que es pugui emprar aquesta opció, s'haurà d'establir el tipus MIME. 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 extreure els fitxers adjunts des d'un fitxer Matroska.

-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). Per omissió: 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.

Per omissió: 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). Per omissió: 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). Per omissió: 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). Per omissió: 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). Per omissió: 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ó per omissió) 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 per omissió é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.

--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 la informació de capítols continguda al fitxer d'origen. 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.

--chapter-language codi_idioma

Estableix el codi d'idioma ISO639-2 que s'escriurà en cada entrada de capítol. Aquesta opció es pot emprar per a fitxers d'origen que continguin capítols, però no la informació sobre els idiomes d'aquests, p. ex., per a fitxers MP4 i OGM.

-y, --sync TID:d[,o[/p]]

Ajusta els codis de temps de la pista amb l'ID TID per 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 les marques de temps per o/p, per a fixar desfasaments lineals. Si s'omet, p per omissió serà 1. Tant o com p poden ser nombres decimals.

Per omissió: 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) crei les entrades de l'índex per a tots els blocs, el qual farà que el fitxer sigui molt més gran.

Per omissió é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 TID[:booleà]

Estableix l'etiqueta «per omissió» a la pista indicada (vegeu la secció sobre els ID de les pistes) si l'argument opcional booleà no està present. Si l'usuari no selecciona explícitament una pista, llavors el reproductor hauria de preferir la pista marcada amb l'etiqueta «per omissió». Només es pot establir una pista de cada tipus (àudio, vídeo, subtítols, botons). Si l'usuari vol que cap pista tingui aquesta etiqueta, llavors s'haurà d'establir el booleà a 0 per a totes les pistes.

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-track TID[:booleà]

Estableix l'etiqueta de «forçada» a la pista indicada (vegeu la secció sobre els ID de les pistes) si l'argument opcional booleà no està present. Un reproductor haurà de mostrar totes les pistes marcades amb aquesta etiqueta establerta a 1.

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.

--blockadd TID:nivell

Només manté BlockAdditions fins al nivell per a la pista indicada. Per omissió ho mantindrà en tots els nivells. Aquesta opció només afectarà certs tipus de còdecs com WAVPACK4.

--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 ISO639-2 com els codis de país ISO639-1. Els codis de país seran convertits a codis d'idioma automàticament. Tots els idiomes inclosos els seus codis ISO639-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) i b) el fitxer AAC conté dades SBR AAC. El motiu per 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, pels 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, llavors 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.

--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. Per omissió, 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ódecs d'àudio contenen camps de capçalera que indiquen al decodificador o al reproductor quin guany aplicar (generalment negatiu) per a la normalització del diàleg. 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 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 pels codis de temps.

--default-duration TID:x

Força la durada per omissió de la pista indicada a un valor específic. També modificarà els codis de temps de la pista perquè coincideixin amb la durada per omissió. L'argument x haurà de tenir el sufix «s», «ms», «us», «ns», «fps», «p» o «i» per especificar la durada per omissió 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 per omissió no és forçada, llavors el mkvmerge intentarà derivar la durada per omissió de la pista des 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 pels 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 derivat del flux de bits.


Nota
Per ara, només s'ha implementat per a pistes de vídeo AVC/h.264.

--nalu-size-length TID:n

Força la longitud de la mida NALU en n bytes. Aquest paràmetre només s'empra si s'empra l'empaquetador de fluxos elementals AVC/h.264. Si s'omet, per omissió emprarà 4 bytes, però hi ha fitxers que contenen fotogrames o talls els quals són tots menors que 65536 bytes. Per a aquests fitxers, podeu emprar aquest paràmetre i disminuir la mida a 2.

--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ó per omissió per 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».

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

-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 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 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.

--colour-matrix 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

--colour-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 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 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).

--colour-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).

--colour-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)

--colour-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 pel vermell/verd/blau com es defineixen per la CIE 1931.

--white-colour-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|paraula_clau

Estableix el mode estèreo per a la pista de vídeo amb l'ID de pista TID. El mode pot ser un número n entre 0 i 14 o una d'aquestes paraules clau:

«mono», «side_by_side_left_first», «top_bottom_right_first», «top_bottom_left_first», «checkerboard_right_first», «checkerboard_left_first», «row_interleaved_right_first», «row_interleaved_left_first», «column_interleaved_right_first», «column_interleaved_left_first», «anaglyph_cyan_red», «side_by_side_right_first», «anaglyph_green_magenta», «both_eyes_laced_left_first», «both_eyes_laced_right_first».

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

--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. Tingueu en compte que no és necessari un joc de caràcters per a llegir els subtítols des de fitxers Matroska 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.

-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 convenient 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 per omissió si no s'empra aquesta opció) i json.

1.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).

2.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-v11.json[3]

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 provar es pot canviar amb aquesta opció. El mínim de 10 MB es troba incorporat i no es pot canviar.

-l, --list-types

Llista els tipus de fitxer d'entrada admesos.

--list-languages

Llista tots els idiomes i el seu codi ISO639-2 que es poden emprar amb l'opció --language.

--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. Per omissió 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. Per omissió 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 a 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.

--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 escriure. Això es pot usar per evitar la pèrdua de dades en interrupcions d'electricitat o per 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 pel 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.

--debug tema

Activa la depuració per a una característica específica. Aquesta opció només és útil pels 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.

--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 o Matroska.

-h, --help

Mostra la informació d'ús i surt.

-V, --version

Mostra la informació sobre la versió i surt.

Ú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».

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 aplicar opcions a un fitxer d'entrada són --no-chapters o --chapter-charset. Exemples per 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

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:

$ 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 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 i gaudiu-ne. Si teniu múltiples pistes d'àudio (o fins i tot pistes de vídeo), llavors li podreu indicar al mplayer 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 200ms 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 és desincronitzen. Per a aquest tipus de pel⋅lícules podeu especificar un factor de desfasament que serà aplicat a totes les marques 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.97fps 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) o el paquet subrip 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 ISO639-2 pel 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 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 per omissió. També teniu subtítols addicionals, p. ex., en anglès i francès, i voleu que el reproductor mostri per omissió el francès. Això es pot fer amb:

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

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

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

Els ID de pista normal

Algunes opcions pel mkvmerge(1) necessiten un ID de pista per 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 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.

Tingueu 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 pel 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.

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 «...».


Nota

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

Tot el text en un fitxer Matroska 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.

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).

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.

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.

Al Windows, el joc de caràcters per omissió 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 per omissió serà UTF-8. Es pot canviar amb --output-charset.

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.

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).

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 pels 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 pels 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 per omissió serà l'actual del sistema. En Windows, per omissió és a UTF-8, tant redirigint amb --redirect-output com amb cmd.exe, p. ex., mkvinfo fitxer.mkv > informació.txt.

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 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 escapar caràcters especials dins del JSON són les mateixes que hi ha a l'especificació oficial del JSON, RFC 7159[4].

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" ]

Hi ha diversos formats de subtítols de text i mapes de bits que poden ser incrustats dins dels Matroska. Els subtítols de text s'han de tornar a codificar a UTF-8 de manera que es mostrin correctament en un reproductor (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). Els subtítols Kate ja estan codificats en UTF-8 i no s'han de tornar a codificar.

De moment s'admeten els següents formats de subtítols:

•Fitxers Subtitle Ripper (SRT)

•Substation Alpha (SSA) / Advanced Substation Alpha scripts (ASS)

•Fitxers amb format de subtítols universal (USF)

•Fluxos OggKate

•Fitxers de subtítols amb mapes de bits VobSub

•Fitxers de subtítols amb mapes de bits PGS, tal com es troben als discs BluRay

Matroska 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. Com la majoria dels fitxers probablement només contenen un segment del Matroska, 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. Per omissió, 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.

L'especificació Matroska 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 per omissió. El valor predeterminat per a l'idioma és anglès («eng»), i per a l'etiqueta de pista per omissió és true (cert). Per tant, si empreu --language 0:eng per a una pista, llavors no es mostrarà a la sortida del mkvinfo(1).

Possiblement també voldreu conservar algunes fotografies juntament amb el vostre fitxer Matroska, o emprar subtítols SSA i necessitareu un tipus de lletra TrueType especial que és realment rar. En aquests casos els podeu adjuntar al fitxer Matroska. 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 dels tipus de lletra «TrueType».

Aquí hi ha un exemple de com adjuntar una fotografia i un tipus de lletra TrueType 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 "Un tipus de lletra veritablement rar 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 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.

El sistema de capítols del Matroska és més poderós del que ho era l'antic sistema emprat pels fitxers OGM. Les especificacions completes es poden trobar a la pàgina web del Matroska[1].

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.

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à cada parell de línies en un ChapterAtom del Matroska. Si no s'estableix cap ChapterTrackNumber, voldrà dir que tots els capítols s'aplicaran a totes les pistes del 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.

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 la marca de temps pel 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 l'interval vàlid pels 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)

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, llevat que s'inhabiliti explícitament amb l'opció --no-chapters. Els capítols de tots els orígens (fitxers Matroska, 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 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 XML manualment i multiplexar-los després.

El sistema d'etiquetes de Matroska és similar al d'altres contenidors: un conjunt de parelles CLAU=VALOR. No obstant això, al Matroska, 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.

Àmbit de les etiquetes

Les etiquetes del Matroska 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[5] 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, a més els UID emprats per 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) o si es copia des del fitxer d'origen, si el fitxer d'origen de la pista és un fitxer Matroska. 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: 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.

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

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[5]. Tant la distribució binària com el codi font de les MKVToolNix, vénen 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 pels 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.

El nou sistema d'etiquetatge del Matroska 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 XML, el mkvmerge(1) admet dos altres mètodes per 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.

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 pels 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. Com que el mkvmerge(1) ja no admet aquest sistema, aquests tipus no es descriuran aquí.

Tot seguit es mostra la llista de les etiquetes XML admeses, els seus tipus de dades, a on corresponen i amb l'interval vàlid pels 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)

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. 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 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 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 l'interval vàlid pels 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)

La disposició d'un fitxer Matroska é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 més curt possible s'assemblaria a això:

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

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

El mkvmerge(1) permet a l'usuari triar els codis de temps per a una pista específica. Es pot emprar per crear fitxers de vídeo amb una taxa de fotogrames variable (VFR) o per incloure discontinuïtats en l'àudio. En aquest cas, un fotograma serà la unitat emprada pel mkvmerge(1) per crear cada bloc del Matroska. 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.

Aquest format comença amb la línia de la versió. La segona línia declara el nombre per omissió 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 pels FPS emprats per omissió. Un exemple:

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

En aquest format cada línia conté un codi de temps pel 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 pel codi de temps
0
40
80

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 per omissió. Per a l'àudio s'hauria de deixar calcular al còdec els codis de temps dels fotogrames. Per 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 pel codi de temps
assume 0.0
25.325
7.530,38.236
gap, 10.050
2.000,38.236

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.

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.

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

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.

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

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

Bunkus, Moritz <moritz@bunkus.org>

Desenvolupador

1.
el lloc web del Matroska
http://www.matroska.org/
2.
la pàgina web de la IANA
http://www.iana.org/assignments/media-types/
3.
mkvmerge-identification-output-schema-v11.json
https://mkvtoolnix.download/doc/mkvmerge-identification-output-schema-v11.json
4.
RFC 7159
https://tools.ietf.org/html/rfc7159
5.
L'especificació del Matroska
http://matroska.org/technical/specs/index.html
6.
la pàgina de les MKVToolNix
https://mkvtoolnix.download/
2019-02-09 MKVToolNix 31.0.0