Provided by: mkvtoolnix_8.8.0-1_amd64
NOM
mkvmerge - Fusiona fluxos multimèdia dins d'un fitxer Matroska(TM)
SINOPSIS
mkvmerge [opcions_globals] {-o sortida} [opcions_1] {fitxer_1} [[opcions_2] {fitxer_2}] [@fitxer_opcions]
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(TM)[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». Opcions globals -v, --verbose Incrementa la loquacitat. -q, --quiet Suprimeix la sortida sobre l'estat. -o, --output nom_fitxer Escriu al fitxer nom_fitxer. Si s'usa 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 conforme amb WebM. També s'habilita si el nom de l'extensió del fitxer de sortida és «webm». Aquest mode obliga a complir certes restriccions. Els únics còdecs permesos són VP8, VP9 per a vídeo i Opus, Vorbis per a pistes d'àudio. No estan permeses ni els capítols ni les etiquetes. L'element de capçalera DocType serà canviat a «webm». --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 serà usat per a les pistes on no s'hagi establert l'idioma amb l'opció --language i per a les quals el contenidor font no proporciona un idioma. El codi d'idioma per omissió és «und» per a «undefined» (sense definir). Informació quant a la manipulació del segment (opcions globals) --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 usar. Aquesta és una llista separada per comes dels UID dels segments de 128 bits en la forma usual de l'UID: nombres hexadecimals, amb o sense el «0x» com a prefix, amb o sense espais, 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. Manipulació dels capítols i les etiquetes (opcions globals) --chapter-language codi_idioma Estableix el codi d'idioma ISO639-2 que s'escriurà en cada entrada de capítol. Per omissió s'estableix a «eng». Per a més detalls, vegeu més endavant la secció sobre els capítols. Aquesta opció es pot usar tant per a simples 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. --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 simples 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. --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) usarà 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ó dels capítol des del fitxer 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 fitxer nom_fitxer. Per a més detalls, vegeu més endavant la secció sobre les etiquetes. Control general de la sortida (opcions globals avançades) --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 crear clústers molt grans podria comportar una cerca lenta i poc precisa. --no-cues Li diu 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(TM) es poden reproduir sense les dades de l'índex, però la cerca probablement serà poc precisa i lenta. Useu 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 diu 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 disposició dels fitxers Matroska(TM). --disable-lacing Deshabilita 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. L'habilitar aquesta opció impedeix que el mkvmerge(1) escrigui i editi les etiquetes existents que tinguin els mateixos noms. --timecode-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) usarà el valor 1000000, el qual vol dir que els codis de temps i durades tindran una precisió d'1ms. Pels fitxers que no continguin una pista de vídeo però sí almenys una d'àudio, llavors el mkvmerge(1) agafarà un factor d'escala de codis de temps pel que 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. Divisió, vinculació, annexat i concatenació dels fitxers (més opcions globals) --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. A causa de l'ús de memòria intermèdia i després d'arribar al punt de divisió especificat, el mkvmerge(1) realitzarà la divisió just abans que s'hagi abastat el següent 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 vagada 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 vagada 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: --splittimecodes:A[,B[,C...]] Exemple: --split timecodes:00:45:00.000,01:20:00.250,6300s Els paràmetres A, B, C, etc. poden tenir el mateix format que l'usat per a la durada (vegeu més amunt). La llista dels codis de temps està separada per comes. Una vagada el flux d'entrada abasti el punt de divisió pel codi de temps actual, es crearà un fitxer nou. Llavors s'usarà el següent punt de divisió especificat a la llista. El prefix «timecodes:» no es pot ometre. 4. Manté les parts especifiques pels intervals de codis de temps especificats mentre que les altres seran descartades. Sintaxi: --splitparts: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'entrada. 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 00:02:45. El segon abastarà el contingut a partir de 00:05:50 fins 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 00:02:45 i el contingut a partir de 00:05:50 fins 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 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 especificades pels intervals del número de fotograma/camp especificats mentre que les altres seran descartades. Sintaxi: --splitparts-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'entrada. 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 fins, 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 en base al 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'usar 50 (dos camps per a tot un fotograma) com a punt de tall. 6. Divisió després d'uns fotogrames/camps específics. Sintaxi: --splitframes: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'usarà 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 en base al 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'usar 50 (dos camps per a tot un fotograma) com a punt de tall. 7. Dividir abans de capítols específics. Sintaxi: --splitchapters:all o --splitchapters: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 als 0s mai es tindrà en compte per a la divisió i serà omès silenciosament. La paraula clau all es pot usar 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(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, aquest mode només té 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 un amplada de camp opcional, p. ex., «%02d». Si es fa després el 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'afegirà «-%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ó 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ó, 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ó, 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» que és l'opció per omissió i «track». Quan el mkvmerge annexa una pista (anomenada «pista2_1» d'ara en 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 major codi de temps 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 major codi de temps de la «pista1_1». Malauradament, el mkvmerge(1) no pot detectar quin mode és més convenient usar. Per tant, per omissió usa 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 fonts que essencialment només són parts 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 (FID), un identificador de pista (TID), un segon identificador de fitxer i un segon identificador de pista. 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'usarà 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 = 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 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 fitxers, llavors aquests seran tractats com si estiguessin 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é evita 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 simples tal com es mostra en l'exemple anterior. Implementació per a adjunts (més opcions globals) --attachment-description descripció Descripció en text pla del següent adjunt. S'aplica a la següent opció --attach-file o --attach-file-once. --attachment-mime-type tipus_MIME El tipus MIME del següent adjunt. S'aplica a la següent opció --attach-file o --attach-file-once. Es pot trobar una llista oficial de tipus MIME reconeguts a 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(TM). Abans que es pugui usar 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'usa la divisió, llavors les dues opcions faran el mateix. El mkvextract(1) es pot emprar per extreure els fitxers adjunts des d'un fitxer Matroska(TM). Opcions que es poden usar per a cada fitxer d'entrada -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ó Els ID de les pistes). Per omissió: copia 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 funciona per a fitxers d'origen que proveeixen etiquetes d'idioma per a les seves pistes. Per omissió: copia totes les pistes d'aquest tipus. Si els ID estan prefixats amb el signe !, llavors s'indicarà el contrari: copia 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ó Els ID de les pistes). Per omissió: copia 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 funciona 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: copia 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ó Els ID de les pistes). Per omissió: copia 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 funciona 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: copia 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ó Els ID de les pistes). Per omissió: copia 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 funciona 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: copia 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ó Els ID de les pistes). Per omissió: copia 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 demés 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 copia cap pista d'àudio des d'aquest fitxer. -D, --no-video No copia cap pista de vídeo des d'aquest fitxer. -S, --no-subtitles No copia cap pista de subtítols des d'aquest fitxer. -B, --no-buttons No copia cap pista de botó des d'aquest fitxer. -T, --no-track-tags No copia cap etiqueta específica de pista des d'aquest fitxer. --no-chapters No copia cap capítol des d'aquest fitxer. -M, --no-attachments No copia cap adjunt des d'aquest fitxer. --no-global-tags No copia 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ó 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 ha cap correcció de sincronització manual (el qual és el mateix que d = 0 i o/p = 1.0). Aquesta opció es pot utilitzar 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ó 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 «none» per a totes les altres. 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 utilitzar 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ó 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'ha d'establir el booleà a 0 per a totes les pistes. Aquesta opció es pot utilitzar 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ó 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 utilitzar 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 manté en tots els nivells. Aquesta opció només afecta certs tipus de còdecs com WAVPACK4. --track-name TID:nom Estableix el nom de la pista al nom indicat (vegeu la secció Els ID de les pistes). --language TID:idioma Estableix l'idioma de la pista indicada (vegeu la secció 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 utilitzar 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 fitxer 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 HE-AAC o AAC+). Aquestes opcions són necessàries si: a) el fitxer d'entrada és un fitxer AAC (no per a un fitxer Matroska(TM)) i b) el fitxer AAC conté dades SBR AAC. La raó 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'entrada és un fitxer Matroska(TM), 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 només afecta aquesta opció 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-. Si el mkvmerge detecta erròniament que un fitxer AAC està en SBR, llavors podeu afegir «:0» a l'ID de la pista. --timecodes TID:nom_fitxer Llegeix els codis de temps que s'empraran per a l'ID de la pista indicada des de 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 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é modifica 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'usar 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 la secció --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'utilitza si s'utilitza 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 utilitzar 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 haurà d'implementar aquest mètode. Els valors vàlids són «none» (sense), «zlib», «lzo»/«lxo1x», «bz2»/«bzlib» i «mpeg4_p2»/«mpeg4p2». Els valors «lzo»/«lxo1x» i «bz2»/«bzlib» només estaran disponibles si el mkvmerge(1) ha estat compilat amb la implementació per a les biblioteques de compressió liblzo(TM) i bzlib(TM), respectivament. 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 algunes pistes 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» (sense). 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(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ó en base a 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 relació o com una fracció «amplada/alçada», p. ex., «16/9». Una altra manera d'especificar els valors és usar 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 usar 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 als valors indicats els paràmetres del retall dels píxels d'una pista de vídeo. --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 de pista indicat. 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(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 el mkvmerge(1) realitza la conversió entre els jocs de caràcters. Aquesta opció es pot utilitzar múltiples vegades per a un fitxer d'entrada aplicant-la a diverses pistes seleccionant els diferents ID de les pistes cada vegada. Altres opcions -i, --identify nom_fitxer Li permetrà al mkvmerge(1) sondejar el fitxer i informar el seu tipus, les pistes que conté i els ID de les pistes. Si s'usa 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. -I, --identify-verbose nom_fitxer Aquesta opció és obsoleta. Empreu --identification-format verbose-text --identify ... en el seu lloc. -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'utilitza aquesta opció), verbose-text i json. 1. El format text és curt i llegible. Consisteix en una línia per cada element trobat (contenidors, 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é --ui-language). 2. El format verbose-text estén el format text amb propietats addicionals per a cada element. La informació addicional estarà embolcallada entre claudàtors. Consisteix de parells clau/valor separats per espais, on les claus i els valors estaran separats per un signe de dos punts. Cada valor és escapat d'acord amb les regles descrites a la secció sobre escapar caràcters especials en el text. Aquest format no està destinat a ser analitzat. La sortida serà traduïda a l'idioma que empra el mkvmerge(1) (vegeu també --ui-language). 3. El format json sortirà en una representació JSON de lectura mecànica. Aquest format segueix l'esquema JSON descrit al fitxer mkvmerge-identification-output-schema.json[3]. -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 utilitzar amb l'opció --language. --priority prioritat Estableix la prioritat del procés amb que 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à utilitzar «higher» i «highest». Al Windows, tots els valors són utilitzables per part de tots els usuaris. La selecció de «lowest» (Molt baixa) 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 donades des de la línia d'ordres. Per omissió serà el joc de caràcters donat per la configuració regional actual del sistema. Aquesta 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 establert a la configuració regional actual del sistema. -r, --redirect-output nom_fitxer Escriu tots els missatges al fitxer 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 interpretar la sortida abans d'escriure-la a un fitxer. Es respectarà el joc de caràcters establert amb --output-charset. --ui-language codi Força l'ús de les traduccions pel codi d'idioma (p. ex., «de_DE» per a les traduccions en alemany). Tot i que és preferible usar les variables d'entorn LANG, LC_MESSAGES i LC_ALL. Introduint «list» com a codi, farà que el mkvmerge(1) ofereixi a la sortida una llista de les traduccions disponibles. --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 a «#IGU#missatge#clau1=valor1#clau2=valor2...». Ni els missatges ni les claus seran traduïdes, sempre sortiran en anglès. @fitxer_opcions 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 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: • «BZ2» -- la biblioteca de compressió bzlib(TM). Afecta els mètodes de compressió disponibles per a l'opció --compression. • «LZO» -- la biblioteca de compressió lzo(TM). Afecta els mètodes de compressió disponibles per a l'opció --compression. • «FLAC» -- llegeix fitxers FLAC en RAW i manipula 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. --check-for-updates Comprova en línia si hi ha nous llançaments per baixar-los des de l'URL http://mkvtoolnix-releases.bunkus.org/latest-release.xml. Es generaran quatre línies amb l'estil clau=valor: l'URL des d'on s'ha obtingut la informació (clau version_check_url), la versió actualment en execució (clau running_version), la versió de l'últim llançament (clau available_version) i l'URL per a la baixada (clau download_url). Després el programa sortirà amb un codi de sortida de 0 si no hi ha cap llançament més recent disponible, amb 1 si hi ha disponible una nova versió i amb 2 si s'ha produït un error (p. ex., si no s'ha pogut recuperar la informació sobre l'actualització). Aquesta opció només estarà disponible si el programa va ser construït amb la implementació per a «libcurl».
Ú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 DE LES OPCIONS
L'ordre en el que 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'utilitzarà 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 utilitzar dues vegades l'opció --language, és correcte ja que 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
EXEMPLES
Suposem que tens un arxiu 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 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 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 es 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.97fps0.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 usar 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 les fonts 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 usar 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(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 usi 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 LES PISTES
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(TM) 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 del fitxer 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 què es troben les pistes, començant des del número 0. 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. Les opcions que utilitzen els ID de les pistes són aquelles en que la descripció conté un «TID». Les següents opcions també utilitzen els ID de les pistes: --audio-tracks, --video-tracks, --subtitle-tracks, --button-tracks i --track-tags.
CONVERSIÓ PER A FITXERS DE TEXT I JOCS DE CARÀCTERS
Nota Aquesta secció s'aplica a tots els programes de les MKVToolNix, encara que només s'esmenti el mkvmerge(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 una traducció no anglesa s'usa amb --ui-language o per a text que prové d'un fitxer Matroska(TM). El mkvmerge(1) realitza 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). 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. Sistemes Linux i Unix, incloent el Mac OS En sistemes com Unix, el mkvmerge(1) empra la crida del sistema setlocale(3) que al seu torn utilitza 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. Windows 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). 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 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.
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 eludir certes limitacions de l'interpret d'ordres (shell) o del sistema operatiu, com una longitud limitada de la línia d'ordres quan s'executen programes externs. Hi ha diverses regles relatives als fitxers d'opcions. Les línies que tinguin com a primer caràcter un coixinet (#) seran tractades com a comentaris i ignorades. Els espais en blanc al començament i final de la línia seran descartats. Cada línia haurà de contenir exactament una opció. Una línia que no conté res serà ignorada. Un argument buit serà representat amb la línia «#EMPTY#». Es poden escapar diversos caràcters, p. ex., si necessiteu que una línia que comença amb un coixinet «#», no sigui interpretada com un comentari. Les regles es descriuen a la secció sobre escapar en el text. Tingueu en compte que les barres invertides sempre s'hauran d'escapar. Els coixinets s'hauran d'escapar si no inicien cap comentari. 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: # Escriu al fitxer «C:\Matroska\meu_fitxer.mkv», sota Windows. -o C:\\Matroska\\meu_fitxer.mkv # Estableix el títol a «número 65». --title \h65 # Només pren el vídeo de «una_peli.avi». -A una_peli.avi so.ogg
ESCAPAR CARÀCTERS ESPECIALS EN EL TEXT
Hi ha pocs llocs en els quals els caràcters especials en el text puguin o s'hagin d'escapar. Les regles per a l'escapament són simples: cada caràcter que necessiti ser escapat serà substituït amb una barra invertida seguida d'un altre caràcter. Les regles són: « » (un espai) serà «\s», «"» (cometes) serà «\2», «:» serà «\c», «#» serà «\h», «[» serà «\b», «]» serà «\B» i «\» (una única barra invertida) serà «\\».
SUBTÍTOLS
Hi ha diversos formats de subtítols de text i mapes de bits que poden ser incrustats dins dels Matroska(TM). 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 format de subtítols universal (USF) • Fluxos OggKate • Fitxers de subtítols amb mapes de bits VobSub • Fitxers de subtítols en mapes de bits PGS, tal com es troben als discs BluRay
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 Matroska(TM), les següents explicacions usen 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'utilitza la vinculació, llavors els codis de temps no començaran des de 0, si no 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 empra 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 utilitzar una forma curta: 16 números 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.
VALORS PER OMISSIÓ
L'especificació Matroska(TM) estableix 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 utilitzeu --language 0:eng per a una pista, llavors no es mostrarà a la sortida del mkvinfo(1).
ADJUNTS
Possiblement també voldreu conservar algunes fotografies juntament amb el vostre fitxer Matroska(TM), o utilitzar subtítols SSA i necessitareu d'un tipus de 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 usar-los per a renderitzar els subtítols (en el cas dels tipus de lletra «TrueType(TM)». Aquí hi ha un exemple de com adjuntar una fotografia i un tipus de 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 "Un tipus de lletra veritablement rar i amb un aspecte increïblement bo" \ --attachment-type application/octet-stream \ --attach-file tipus_de_lletra_molt_fresc.ttf Si un fitxer Matroska(TM) que conté adjunts s'utilitza 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.
CAPÍTOLS
El sistema de capítols de Matroska(TM) és més poderós del que ho era l'antic sistema utilitzat pels fitxers OGM. Les especificacions completes es poden trobar a la pàgina web de Matroska(TM)[1]. El mkvmerge(1) admet dos tipus de fitxers de capítols com a entrada. El primer format, anomenat «format de capítols simple», és el mateix format que s'espera en les eines OGM. El segon format es basa en el format de capítols en XML, els quals implementen totes les funcionalitats de capítols de Matroska(TM). El format de capítols simple 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 de Matroska(TM). 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 simple: 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 usar com a base. Tot seguit es mostra la llista de les etiquetes XML admeses, els seus tipus de dades i, a on corresponen, l'interval vàlid pels seus valors: Chapters (master) EditionEntry (master) EditionUID (unsigned integer, valid range: 1 <= value) EditionFlagHidden (unsigned integer, valid range: 0 <= value <= 1) EditionFlagDefault (unsigned integer, valid range: 0 <= value <= 1) EditionFlagOrdered (unsigned integer, valid range: 0 <= value <= 1) ChapterAtom (master) ChapterAtom (master) ChapterUID (unsigned integer, valid range: 1 <= value) ChapterTimeStart (unsigned integer) ChapterTimeEnd (unsigned integer) ChapterFlagHidden (unsigned integer, valid range: 0 <= value <= 1) ChapterFlagEnabled (unsigned integer, valid range: 0 <= value <= 1) ChapterSegmentUID (binary, valid range: 1 <= length in bytes) ChapterSegmentEditionUID (unsigned integer, valid range: 1 <= value) ChapterPhysicalEquiv (unsigned integer) ChapterTrack (master) ChapterTrackNumber (unsigned integer, valid range: 1 <= value) ChapterDisplay (master) ChapterString (UTF-8 string) ChapterLanguage (UTF-8 string) ChapterCountry (UTF-8 string) ChapterProcess (master) ChapterProcessCodecID (unsigned integer) ChapterProcessPrivate (binary) ChapterProcessCommand (master) ChapterProcessTime (unsigned integer) ChapterProcessData (binary) 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ítol 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 es desactivi explícitament amb l'opció --no-chapters. Els capítols de totes les fonts (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 totes les fonts amb el mkvextract(1), fusionar els fitxers XML manualment i multiplexar-los després.
ETIQUETES
Introducció Matroska(TM) admet un ampli conjunt d'etiquetes que estan obsoletes, així com un nou sistema, més simple, que s'utilitza en la majoria d'altres contenidors: 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 utilitzar aquest nou sistema. Àmbit de les etiquetes Les etiquetes 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ó de Matroska(TM)[4] 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 de Matroska(TM), a més els UID emprats per vincular no són els ID de les pistes que emprarà el mkvmerge(1) arreu. En canvi, els números emprats són 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 es van a emprar al fitxer d'etiquetes abans que el fitxer sigui proporcionat al mkvmerge(1). El mkvmerge(1) té dues opcions amb les que 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. 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 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ó de Matroska(TM)[4]. Tant la distribució binària com la 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 que 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 està 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. Tipus de dades El nou sistema d'etiquetatge de Matroska(TM) només reconeix dos tipus de dades, una cadena en UTF-8 i un tipus binari. La primera s'empra pel 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 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'usa, 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 de Matroska(TM). Com que el mkvmerge(1) ja no admet aquest sistema, aquests tipus no es descriuran aquí. 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 i, a on corresponen, l'interval vàlid pels seus valors: Tags (master) Tag (master) Targets (master) TargetTypeValue (unsigned integer) TargetType (UTF-8 string) TrackUID (unsigned integer) EditionUID (unsigned integer) ChapterUID (unsigned integer) AttachmentUID (unsigned integer) Simple (master) Simple (master) Name (UTF-8 string) TagLanguage (UTF-8 string) DefaultLanguage (unsigned integer) String (UTF-8 string) Binary (binary)
ELS FITXERS XML D'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 XML. Això inclou, p. ex., les opcions --title i --timecode-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 i, a on corresponen, l'interval vàlid pels seus valors: Info (master) SegmentUID (binary, valid range: length in bytes == 16) SegmentFilename (UTF-8 string) PreviousSegmentUID (binary, valid range: length in bytes == 16) PreviousSegmentFilename (UTF-8 string) NextSegmentUID (binary, valid range: length in bytes == 16) NextSegmentFilename (UTF-8 string) SegmentFamily (binary, valid range: length in bytes == 16) ChapterTranslate (master) ChapterTranslateEditionUID (unsigned integer) ChapterTranslateCodec (unsigned integer) ChapterTranslateID (binary)
DISPOSICIÓ DELS FITXERS MATROSKA(TM)
La disposició del 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 pels fitxers amb només àudio.
FITXERS EXTERNS PELS 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 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 és la unitat que el mkvmerge(1) empra per crear cada bloc 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 «...» --timecodes 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. Format v1 pel fitxer del codi de temps 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 usats per omissió. Un exemple: # Format v1 pel codi de temps assume 27.930 800,1000,25 1500,1700,30 Format v2 pel fitxer del codi de temps 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 Format v3 pel fitxer del codi de temps En aquest format cada línia conté una durada en segons seguida per un número 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 Format v4 pel 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.
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.
VARIABLES D'ENTORN
El mkvmerge(1) usa 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. MKVMERGE_OPTIONS, MKVTOOLNIX_OPTIONS i la seva forma abreujada MTX_OPTIONS El contingut serà dividit en espais en blanc. Les cadenes parcials resultants seran tractades com si haguessin estat passades com a opcions a la línia d'ordres. Si necessiteu passar caràcters especials (p. ex., espais) llavors els haureu d'escapar (vegeu la secció sobre escapar caràcters especials en el text).
VEGEU TAMBÉ
mkvinfo(1), mkvextract(1), mkvpropedit(1), mkvtoolnix-gui(1)
WWW
Sempre trobareu l'última versió a la pàgina de les MKVToolNix[5].
AUTOR
Bunkus, Moritz <moritz@bunkus.org> Desenvolupador
NOTES
1. el lloc web del Matroska(TM) http://www.matroska.org/ 2. la pàgina web de la IANA http://www.iana.org/assignments/media-types/ 3. mkvmerge-identification-output-schema.json https://mkvtoolnix.download/doc/mkvmerge-identification-output-schema.json 4. L'especificació de Matroska(TM) http://matroska.org/technical/specs/index.html 5. la pàgina de les MKVToolNix https://mkvtoolnix.download/