mkvextract -- Extreu les pistes des de fitxers Matroska(tm) a altres fitxers

# 1. Sinopsis

mkvextract {mode} {nom_fitxer_origen} [opcions] [especificacions_extracció]

# 2. Descripció

Aquest programa extreu certes parts d'un fitxer Matroska(tm) a altres formats d'utilitat. El primer argument, mode, li indica al mkvextract(1) què ha d'extreure. Actualment és possible extreure pistes (tracks), etiquetes (tags), adjunts (attachments), capítols (chapters), fulls de muntatge (CUE sheets), codis de temps (timecodes) i índexs (cues). El segon argument és el nom del fitxer d'origen. Aquest haurà de ser un fitxer Matroska(tm). La resta d'arguments són opcions i especificacions per a l'extracció -ambdós depenen del mode seleccionat-.

## 2.1. Opcions comunes

Les següents opcions estan disponibles en tots els modes i només es descriuran en aquesta secció.

Option | Description
--- | ---
-f, --parse-fully | Estableix el mode d'anàlisi a «completa». El mode per omissió no analitza tot el fitxer ja que empra la cerca dels elements de metadades per a localitzar els elements requerits d'un fitxer d'origen. En el 99% dels casos n'hi ha prou. Però per a fitxers que no contenen elements de metadades o que estan malmesos, l'usuari hauria d'usar aquest mode. L'anàlisi completa d'un fitxer pot requerir força temps, mentre que una anàlisi ràpida només porta uns pocs segons.
--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.
--output-charset joc_de_caràcters | Estableix el joc de caràcters al qual convertir les cadenes donades per 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 reinterpreta la sortida abans d'escriure-la a un fitxer. Es respecta 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 mkvextract(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 per als desenvolupadors.
--engage característica | Activa les característiques experimentals. Es pot sol·licitar una llista de les característiques disponibles amb mkvextract --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 «#GUI#message». El missatge pot estar seguit per parells clau/valor com a «#GUI#message#key1=value1#key2=value2…». Ni els missatges ni les claus seran traduïts, sempre sortiran en anglès.
-v, --verbose | Serà detallat i mostrarà tots els elements importants del Matroska(tm) a mesura que es llegeixin.
-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 key=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».
@fitxer_opcions | Llegeix arguments addicionals per a la línia d'ordres des del fitxer fitxer_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ó. Es poden interpretar diversos caràcters com d'escapament, 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. La línia d'ordres «mkvextract tracks origen.mkv --raw 1:destinació.raw» es pot convertir en el següent fitxer d'opcions:
    # Extreu una pista des de origen.mkv
    tracks
    origen.mkv
    # Fes que la sortida de la pista sigui com a dades RAW.
    --raw
    1:destinació.raw

## 2.2. Mode extracció de la pista

Sintaxi: mkvextract tracks nom_fitxer_origen [opcions] TID1:nom_fitxer_destinació_1 [TID2:nom_fitxer_destinació_2 ...]

Les següents opcions de línia d'ordres estan disponibles per a cada pista en el mode extracció de les «pistes». Hauran d'aparèixer al davant de l'especificació de la pista on s'hagin d'aplicar (veure a sota).

Option | Description
--- | ---
-c joc_de_caràcters | Estableix el joc de caràcters per convertir el text de la següent pista de subtítols. Només serà vàlida si l'objectiu de l'ID de la següent pista es correspon amb una pista de subtítols de text. Per omissió s'usa UTF-8.
--blockadd nivell | Només manté «BlockAdditions» fins aquest nivell. Per omissió ho manté en tots els nivells. Aquesta opció només afecta certs tipus de còdecs com WAVPACK4.
--cuesheet | Fa que el mkvextract(1) extregui un full de muntatge (CUE sheet) des de la informació dels capítols i les dades de les etiquetes per a la següent pista a dins d'un fitxer el nom del qual serà el nom de sortida de la pista amb un prefix «.cue».
--raw | Extreu les dades en RAW a un fitxer sense contenidor. A diferència de l'etiqueta --fullraw, aquesta etiqueta no causa que el contingut de l'element CodecPrivate s'escrigui al fitxer. Aquest mode només funciona amb tots els CodecIDs, fins i tot amb els que el mkvextract(1) no permeti, però els fitxers resultants podrien no ser usables.
--fullraw | Extreu les dades en RAW a un fitxer sense contenidor. El contingut de l'element CodecPrivate s'escriurà en el primer fitxer si la pista conté aquest element a la capçalera. Aquest mode només funciona amb tots els CodecIDs, fins i tot amb els que el mkvextract(1) no permeti, però els fitxers resultants podrien no ser usables.
TID:nom_sortida | Causa l'extracció de la pista amb l'ID TID al fitxer nom_sortida si aquesta pista existeix al fitxer d'origen. Aquesta opció pot ser usada múltiples vegades. Els ID de les pistes són els mateixos que mostra el mkvmerge(1) amb l'opció --identify. Cada nom de sortida només s'ha d'usar una vegada. L'única excepció són les pistes RealAudio i RealVideo. Si utilitzeu el mateix nom per a pistes diferents, llavors aquestes seran emmagatzemades en el mateix fitxer. Exemple:
    $ mkvextract tracks entrada.mkv 1:sortida_dos_pistes.rm 2:sortida_dos_pistes.rm

## 2.3. Mode extracció de les etiquetes

Sintaxi: mkvextract tags nom_fitxer_origen [opcions]

Les etiquetes extretes s'escriuran a la consola a menys que la sortida sigui redirigida (per a més detalls vegeu la secció sobre redirecció de la sortida).

## 2.4. Mode extracció dels adjunts

Sintaxi: mkvextract attachments nom_fitxer_origen [opcions] AID1:nom_sortida_1 [AID2:nom_sortida_2 ...]

Option | Description
--- | ---
AID:nom_sortida | Causa l'extracció de l'adjunt amb l'ID AID a un fitxer nom_sortida si aquest adjunt existeix al fitxer d'origen. Si nom_sortida es deixa buit, llavors s'usarà el nom de l'adjunt al fitxer Matroska(tm) d'origen. Aquesta opció es pot usar múltiples vegades. Els ID dels adjunts són els mateixos que mostra el mkvmerge(1) amb l'opció --identify.

## 2.5. Mode extracció dels capítols

Sintaxi: mkvextract chapters nom_fitxer_origen [opcions]

Option | Description
--- | ---
-s, --simple | Exporta la informació dels capítols en un format simple, usat en les eines OGM (CHAPTER01=«...», CHAPTER01NAME=«...»). En aquest mode es descartarà alguna informació. Per omissió la sortida dels capítols serà en el format XML.

Els capítols extrets s'escriuran a la consola a menys que la sortida sigui redirigida (per a més detalls vegeu la secció sobre redirecció de la sortida).

## 2.6. Mode extracció del full de muntatge

Sintaxi: mkvextract cuesheet nom_fitxer_origen [opcions]

Els fulls de muntatge extrets s'escriuran a la consola a menys que la sortida sigui redirigida (per a més detalls vegeu la secció sobre redirecció de la sortida).

## 2.7. Mode extracció del codi de temps

Sintaxi: mkvextract timecodes_v2 nom_fitxer_origen [opcions] TID1:nom_fitxer_destinació_1 [TID2:nom_fitxer_destinació_2 ...]

Els codis de temps extrets s'escriuran a la consola a menys que la sortida sigui redirigida (per a més detalls vegeu la secció sobre redirecció de la sortida).

Option | Description
--- | ---
TID:nom_sortida | Causa l'extracció dels codis de temps per a la pista amb l'ID TID al fitxer nom_sortida si aquesta pista existeix al fitxer d'origen. Aquesta opció pot ser usada múltiples vegades. Els ID de les pistes són els mateixos que mostra el mkvmerge(1) amb l'opció --identify. Exemple:
    $ mkvextract timecodes_v2 entrada.mkv 1:tc-pista_1.txt 2:tc-pista_2.txt

## 2.8. Mode extracció dels índexs

Sintaxi: mkvextract cues nom_fitxer_origen [opcions] TID1:nom_fitxer_destinació_1 [TID2:nom_fitxer_destinació_2 ...]

Option | Description
--- | ---
TID:nom_fitxer_destinació | Causa l'extracció dels índexs per a la pista amb l'ID TID al fitxer nom_sortida si aquesta pista existeix al fitxer d'origen. Aquesta opció pot ser usada múltiples vegades. Els ID de les pistes són els mateixos que mostra el mkvmerge(1) amb l'opció --identify i no els números continguts en l'element CueTrack.

El format de la sortida és un simple format de text: una línia per a cada element CuePoint amb un parell key=valor. Si un element opcional no és present en un CuePoint (p. ex., CueDuration), llavors es retornarà un guió com a valor.

Exemple:

    timecode=00:00:13.305000000 duration=- cluster_position=757741 relative_position=11

Les claus possibles són:

Option | Description
--- | ---
timecode | El codi de temps del punt de l'índex amb una precisió de nanosegons. El format és HH:MM:SS.nnnnnnnnn. Aquest element sempre s'establirà.
duration | La durada del punt de l'índex amb una precisió de nanosegons. El format és HH:MM:SS.nnnnnnnnn.
cluster_position | La posició absoluta en bytes dins del fitxer Matroska(tm) on comença el clúster que conté l'element de referència. Note: Dins el fitxer Matroska(tm), el CueClusterPosition es refereix a la compensació de les dades a l'inici del segment. El valor de la sortida és donat pel mode d'extracció de l'índex del mkvextract(1), però ja conté aquesta compensació, la qual és absoluta a partir del començament del fitxer.
relative_position | La posició relativa en bytes dins del clúster on l'element BlockGroup o SimpleBlock és el punt de l'índex al qual es refereix al començament. Note: Dins del fitxer Matroska(tm), el CueRelativePosition es refereix a la compensació de les dades a l'inici del clúster. El valor de sortida serà donat pel mode d'extracció de l'índex del mkvextract(1), però és relatiu a l'ID del clúster. La posició absoluta dins del fitxer es pot calcular afegint cluster_position i relative_position.

Exemple:

    $ mkvextract cues entrada.mkv 1:índex_pista_1.txt 2:índex_pista_2.txt

# 3. Redirecció de la sortida

Diversos modes d'extracció provoquen que el mkvextract(1) escrigui la informació extreta a la consola. En general, hi ha dos modes d'escriure aquesta informació a un fitxer: un proporcionat per l'interpret d'ordres i un altre pel mkvextract(1).

El mecanisme de redirecció intern de l'interpret d'ordres és emprat amb «> nom_fitxer-sortida.ext» a la Línia d'ordres. Exemple:

    $ mkvextract tags origen.mkv > etiquetes.xml

La redirecció del mkvextract(1) és invocada amb l'opció --redirect-output. Exemple:

    $ mkvextract tags origen.mkv --redirect-output etiquetes.xml

Note:

En Windows possiblement necessitareu utilitzar l'opció --redirect-output, perquè cmd.exe a vegades interpreta els caràcters especials abans que s'escriguin al fitxer de sortida, resultant en una sortida malmesa.

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

Per a un debat en profunditat sobre com manipula la suite MKVToolNix les conversions dels jocs de caràcters, codifica l'entrada/sortida i codifica la línia d'ordres i codifica a la consola, si us plau, vegeu la secció anomenada de la mateixa manera a la pàgina man del mkvmerge(1).

# 5. Formats pels fitxers de sortida

La decisió sobre el format de la sortida es basa en el tipus de pista, i no en l'extensió usada en el nom del fitxer de sortida. Per ara, s'admeten els següents tipus de pista:

Option | Description
--- | ---
V_MPEG4/ISO/AVC | Les pistes de vídeo H.264 / AVC s'escriuen en fluxos elementals H.264 que es poden processar posteriorment, p. ex., amb MP4Box(tm) del paquet GPAC(tm).
V_MS/VFW/FOURCC | Les pistes de vídeo amb FPS fixos amb aquest CodecID s'escriuen en fitxers AVI.
V_REAL/* | Les pistes RealVideo(tm) s'escriuen en fitxers RealMedia(tm).
V_THEORA | Els fluxos Theora(tm) s'escriuen dins d'un contenidor Ogg(tm).
V_VP8, V_VP9 | Les pistes VP8 / VP9 s'escriuen en fitxers IVF.
A_MPEG/L2 | Els fluxos d'àudio MPEG-1 nivell II s'extreuen a fitxers MP2 en RAW.
A_MPEG/L3, A_AC3 | These will be extracted to raw MP3 and AC-3 files.
A_PCM/INT/LIT | Les dades PCM en RAW s'escriuran en un fitxer WAV.
A_AAC/MPEG2/*, A_AAC/MPEG4/*, A_AAC | Tots els fitxers AAC s'escriuran en un fitxer AAC amb capçaleres ADTS abans de cada paquet. Les capçaleres ADTS no contindran l'obsolet camp d'«èmfasi».
A_VORBIS | L'àudio Vorbis s'escriurà en un fitxer OggVorbis(tm).
A_REAL/* | Les pistes RealAudio(tm) s'escriuen en fitxers RealMedia(tm).
A_TTA1 | Les pistes TrueAudio(tm) s'escriuen en fitxers TTA. Si us plau, tingueu en compte que a causa de la limitada precisió dels codis de temps del Matroska(tm), la capçalera extreta del fitxer serà diferent pel que fa a dos camps: data_length (el nombre total de fluxos en el fitxer) i CRC.
A_ALAC | Les pistes ALAC s'escriuen en fitxers CAF.
A_FLAC | Les pistes FLAC s'escriuen a fitxers FLAC en RAW.
A_WAVPACK4 | Les pistes WavPack(tm) s'escriuen en fitxers WV.
A_OPUS | Les pistes Opus(tm) s'escriuen en fitxers OggOpus(tm).
S_TEXT/UTF8 | Els subtítols de text simple s'escriuen com a fitxers SRT.
S_TEXT/SSA, S_TEXT/ASS | Els subtítols de text SSA i ASS s'escriuen com a fitxers SSA/ASS respectivament.
S_KATE | Els fluxos Kate(tm) s'escriuen dins d'un contenidor Ogg(tm).
S_VOBSUB | Els subtítols VobSub(tm) s'escriuen com a fitxers SUB juntament amb els fitxers d'índex respectius, com a fitxers IDX.
S_TEXT/USF | Els subtítols de text USF s'escriuen com a fitxers USF.
S_HDMV/PGS | Els subtítols PGS s'escriuen com a fitxers SUP.
Etiquetes | Les etiquetes es converteixen al format XML. Aquest format és el mateix que admet el mkvmerge(1) per a llegir-les.
Adjunts | Els adjunts s'escriuen al fitxer de sortida tal com estan. No es realitza cap tipus de conversió.
Capítols | Els capítols es converteixen al format XML. Aquest format és el mateix que admet el mkvmerge(1) per a llegir-los. Altrament, es pot generar una versió reduïda amb un format simple a l'estil OGM.
Codis de temps | Els codis de temps primer estan ordenats i després la sortida genera un fitxer compatible amb el format timecode v2 preparat per ser proporcionat al mkvmerge(1). L'extracció a altres formats (v1, v3 i v4) no és admesa.

# 6. Codis de sortida

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

- 0 -- Aquest codi de sortida significa que l'extracció s'ha realitzat correctament.

- 1 -- En aquest cas, el mkvextract(1) ha generat una sortida amb almenys un avís, però l'extracció ha continuat. Un avís és prefixat amb el text «Warning:». Depenent de les qüestions involucrades, els fitxers resultants seran o no correctes. L'usuari serà instat a revisar tant els avisos com els fitxers.

- 2 -- Aquest codi de sortida s'empra després de produir-se un error. El mkvextract(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.

# 7. Caràcters especials d'escapament 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 de 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» i «\» (una única barra invertida) serà «\\».

# 8. Variables d'entorn

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

Option | Description
--- | ---
MKVEXTRACT_DEBUG, MKVTOOLNIX_DEBUG i la seva forma abreujada MTX_DEBUG | El contingut es tractarà com si s'hagués passat l'opció --debug.
MKVEXTRACT_ENGAGE, MKVTOOLNIX_ENGAGE i la seva forma abreujada MTX_ENGAGE | El contingut es tractarà com si s'hagués passat l'opció --engage.
MKVEXTRACT_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ó caràcters especials d'escapament en el text).

# 9. Vegeu també

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

# 10. WWW

The latest version can always be found at the MKVToolNix homepage.