mkvextract -- haalt sporen uit Matroska(tm) bestanden en plaatst die in andere bestanden

# 1. Beknopte inhoudsbeschrijving

mkvextract {source-filename} {mode1} options extraction-spec1 mode2 options extraction-spec2 …

# 2. Beschrijving

This program extracts specific parts from a Matroska(tm) file to other useful formats. The first argument is the name of the source file which must be a Matroska(tm) file.

All other arguments either switch to a certain extraction mode, change options for the currently active mode or specify what to extract into which file. Multiple modes can be used in the same invocation of mkvextract allowing the extraction of multiple things in a single pass. Most options can only be used in certain modes with a few options applying to all modes.

Currently supported is the extraction of tracks, tags, attachments, chapters, CUE sheets, timestamps and cues.

## 2.1. Algemene opties

De volgende opties zijn beschikbaar in alle modes en worden slechts één maal beschreven in deze sectie.

Option | Description
--- | ---
-f, --parse-fully | Stelt de ontleedt mode in op 'volledig'. De standaard waarde ontleedt niet het gehele bestand maar gebruikt het 'meta zoek' element(en) voor het lokaliseren van de vereiste elementen van een bronbestand. In 99% van alle gevallen is dit genoeg. Maar voor bestanden die het 'meta zoek' element niet bevatten of voor bestanden die zijn beschadigd kan deze gebruiker mode erg handig zijn. Een volledige scan kan een aantal minuten in beslag nemen terwijl een 'snelle' scan slechts enkele seconden duren.
--command-line-charset (karakterset) | Plaatst het karakter set om de reeksen om te zetten die vanaf de commandoregel worden opgegeven. Standaard wordt gebruikt het karakter set die afhankelijk is van wat er in uw besturingssysteem staat aangegeven (locatie).
--output-charset (karakterset) | Stelt het karakter set in, waarnaar de reeksen naar de uitvoer dienen te worden geconverteerd. Standaard wordt gebruikt het karakter set die afhankelijk is van wat er in uw besturingssysteem staat aangegeven (locatie).
-r, --redirect-output (bestandsnaam) | Schrijft alle berichten naar een bestand file-name i.p.v. naar de 'apparaat/houder'. Terwijl dit gemakkelijk met uitvoer omleiden kan worden gedaan, er zijn gevallen waarin deze optie nodig is: wanneer de verwerker e.e.a. herinterpreteert, voordat het geschreven wordt naar de uitvoer bestand. Het karakter set met --output-charset is toegewezen.
--flush-on-close | Tells the program to flush all data cached in memory to storage when closing files opened for writing. This can be used to prevent data loss on power outages or to circumvent certain problems in the operating system or drivers. The downside is that multiplexing will take longer as mkvmerge will wait until all data has been written to the storage before exiting. See issues #2469 and #2480 on the MKVToolNix bug tracker for in-depth discussions on the pros and cons.
--ui-language code | Forces the translations for the language code to be used (e.g. 'de_DE' for the German translations). Entering 'list' as the code will cause the program to output a list of available translations.
--abort-on-warnings | Tells the program to abort after the first warning is emitted. The program's exit code will be 1.
--title onderwerp | Zet debuggen aan voor een specifieke mogelijkheid. Dit is alleen zinvol voor ontwikkelaars.
--tags feature | Zet experimentele mogelijkheden aan. Een lijst van beschikbare mogelijkheden kan worden opgevraagd met mkvextract --engage list. Deze mogelijkheden zijn niet bedoeld in normale situaties.
--gui-mode | Turns on GUI mode. In this mode specially-formatted lines may be output that can tell a controlling GUI what's happening. These messages follow the format '#GUI#message'. The message may be followed by key/value pairs as in '#GUI#message#key1=value1#key2=value2…'. Neither the messages nor the keys are ever translated and always output in English.
-v, --verbose | Wees uitgebreid en toon alle belangrijke Matroska(tm) elementen zoals ze zijn gelezen.
-h, --help | Toon gebruik informatie en sluit af.
-V, --version | Toon versie informatie en sluit af.
@options-file.json | Reads additional command line arguments from the file options-file. For a full explanation on the supported formats for such files see the section called "Option files" in the mkvmerge(1) man page.

## 2.2. Spoor uitpak mode

Syntax: mkvextract source-filename tracks [options] TID1:dest-filename1 [TID2:dest-filename2 ...]

De volgende commandoregel opties zijn beschikbaar voor elk spoor in 'tracks' uitpak mode. Zij zullen vooraan moeten worden geplaatst in de spoor specificatie (zie hieronder) Zij zouden toegepast moeten zijn op.

Option | Description
--- | ---
-c character-set | Stelt het karakter set in waarna het volgende ondertitel tekst spoor geconverteerd wordt. Is alleen geldig, wanneer een volgende ondertitel spoor verwijst naar een tekst ondertitel spoor. Standaard naar UTF-8.
--blockadd niveau | Houd alleen de BlockAdditions tot aan dit niveau. Standaard is alle niveaus te houden. Deze optie heeft alleen effect op bepaalde codecs zoals WAVPACK4.
--cuesheet | Zorgt er voor dat mkvextract(1) uitpakt naar een CUE lijst/document/reeks van het hoofdstuk data en markeer data voor de volgende sporen naar een bestand waarvan de naam van het uitvoer spoor heeft waarna '.cue' eraan toegevoegd wordt.
--raw | Pakt de raw dat uit naar een bestand zonder enige inhoud data er omheen. Niet zoals --fullraw dit merkteken markeren, veroorzaakt niet dat de inhoud van CodecPrivate element geschreven wordt naar de bestand. Deze mode werkt met alle CodecIDs, zelfs diegenen die mkvextract(1) niet eens ondersteund, maar het resulterende bestand kan onbruikbaar zijn.
--fullraw | Pakt de raw data uit naar een bestand zonder enige inhoud data er omheen. De inhoud van het CodecPrivate element zal eerst naar het bestand worden geschreven als het spoor een dergelijk hoofd element bevat. Deze mode werkt met alle CodecIDs, zelfs diegene die mkvextract(1) niet eens ondersteund, maar het resulterende bestand kan onbruikbaar zijn.
TID:outname | Extraheert het spoor met het ID TID naar het bestand outname als een dergelijk spoor bestaat in het bronbestand. Deze optie kan meerdere keren geven worden. De spo(o)r(en) ID's zijn hetzelfde als diegene die met mkvmerge(1)'s --identify optie worden verkregen.

Elke uitvoernaam zou slechts één maal mogen worden gebruikt. De uitzonderingen zijn RealAudio en RealVideo sporen. Als je dezelfde naam gebruikt voor verschillende sporen dan zullen die sporen in hetzelfde bestand bewaard worden. Voorbeeld:

    $ mkvextract input.mkv tracks 0:video.h264 2:output-two-vobsub-tracks.idx 3:output-two-vobsub-tracks.idx

## 2.3. Bijlagen extraheren mode

Syntax: mkvextract source-filename attachments [options] AID1:outname1 [AID2:outname2 ...]

Option | Description
--- | ---
AID:outname | Zorgt voor het uitpakken van bijlage met het ID AID naar het bestand outname als een dergelijke bijlage bestaat in het bronbestand. Als de outname wordt leeggelaten dan wordt de naam gebruikt die zich binnenin het Matroska(tm) bronbestand bevindt. Deze optie kan meerdere malen worden gegeven. De ID's van de bijlagen zijn het zelfde als diegene die worden gecreëerd met mkvmerge(1)'s --identify optie.

## 2.4. Hoofdstuk uitpak mode

Syntax: mkvextract source-filename chapters [options] output-filename.xml

Option | Description
--- | ---
-s, --simple | Exporteert het hoofdstuk informatie in een simpel tekst formaat gebruikt in de OGM hulpmiddelen (CHAPTER01=..., CHAPTER01NAME=...). In deze mode wordt sommige informatie overgeslagen. Standaard is het hoofdstuk uitvoer naar XML formaat.
--simple-language language | If the simple format is enabled then mkvextract(1) will only output a single entry for each chapter atom encountered even if a chapter atom contains more than one chapter name. By default mkvextract(1) will use the first chapter name found for each atom regardless of its language.

Using this option allows the user to determine which chapter names are output if atoms contain more than one chapter name. The language parameter must be an ISO 639-1 or ISO 639-2 code.

The chapters are written to specified output file. By default the XML format understood by mkvmerge(1) is used. If no chapters are found in the file, the output file is not created.

## 2.5. Markeringen extraheren mode

Syntax: mkvextract source-filename tags [options] output-filename.xml

Option | Description
--- | ---
-T, --no-track-tags | Exports only tags that aren't track-specific.

The tags are written to specified output file in the XML format understood by mkvmerge(1). If no tags are found in the file, the output file is not created.

## 2.6. Volg document(en) (cue) extraheren mode

Syntax: mkvextract source-filename cuesheet [options] output-filename.cue

The cue sheet is written to specified output file. If no chapters or tags are found in the file, the output file is not created.

## 2.7. Tijd code extraheren mode

Syntax: mkvextract source-filename timestamps_v2 [options] TID1:dest-filename1 [TID2:dest-filename2 ...]

Option | Description
--- | ---
TID:outname | Extraheert tijd codes voor het spoor met het ID TID naar het bestand outname als een dergelijk spoor bestaat in het bronbestand. Deze optie kan meerdere keren geven worden. De spo(o)r(en) ID's zijn hetzelfde als diegene die met mkvmerge(1)'s --identify optie worden verkregen.

Voorbeeld:

    $ mkvextract input.mkv timestamps_v2 1:ts-track1.txt 2:ts-track2.txt

## 2.8. Cues extraction mode

Syntax: mkvextract source-filename cues [options] TID1:dest-filename1 [TID2:dest-filename2 ...]

Option | Description
--- | ---
TID:dest-filename | Causes extraction of the cues for the track with the ID TID into the file outname if such a track exists in the source file. This option can be given multiple times. The track IDs are the same as the ones output by mkvmerge(1)'s --identify option and not the numbers contained in the CueTrack element.

The format output is a simple text format: one line per CuePoint element with key=value pairs. If an optional element is not present in a CuePoint (e.g. CueDuration) then a dash will be output as the value.

Voorbeeld:

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

The possible keys are:

Option | Description
--- | ---
timestamp | The cue point's timestamp with nanosecond precision. The format is HH:MM:SS.nnnnnnnnn. This element is always set.
duur | The cue point's duration with nanosecond precision. The format is HH:MM:SS.nnnnnnnnn.
cluster_position | The absolute position in bytes inside the Matroska(tm) file where the cluster containing the referenced element starts. Note: Inside the Matroska(tm) file the CueClusterPosition is relative to the segment's data start offset. The value output by mkvextract(1)'s cue extraction mode, however, contains that offset already and is an absolute offset from the beginning of the file.
relative_position | The relative position in bytes inside the cluster where the BlockGroup or SimpleBlock element the cue point refers to starts. Note: Inside the Matroska(tm) file the CueRelativePosition is relative to the cluster's data start offset. The value output by mkvextract(1)'s cue extraction mode, however, is relative to the cluster's ID. The absolute position inside the file can be calculated by adding cluster_position and relative_position.

Voorbeeld:

    $ mkvextract input.mkv cues 1:cues-track1.txt 2:cues-track2.txt

# 3. Voorbeelden

Extracting both chapters and tags in their respective XML formats at the same time:

    $ mkvextract movie.mkv chapters movie-chapters.xml tags movie-tags.xml

Extracting a couple of tracks and their respective timestamps at the same time:

    $ mkvextract "Another Movie.mkv" tracks 0:video.h265 "1:main audio.aac" "2:director's comments.aac" timestamps_v2 "0:timestamps video.txt" "1:timestamps main audio.txt" "2:timestamps director's comments.txt"

Extracting chapters in the Ogg/OGM format and re-encoding a text subtitle track to another character set:

    $ mkvextract "My Movie.mkv" chapters --simple "My Chapters.txt" tracks -c MS-ANSI "2:My Subtitles.srt"

# 4. Tekst bestanden en karakter set conversies

For an in-depth discussion about how all tools in the MKVToolNix suite handle character set conversions, input/output encoding, command line encoding and console encoding please see the identically-named section in the mkvmerge(1) man page.

# 5. Uitvoer bestandsformaten

De beslissing over het uitvoer formaat is gebaseerd op het spoor type, niet op de gebruikte extensie van de uitvoer bestandsnaam. De volgende spoor typen worden momenteel ondersteund:

Option | Description
--- | ---
A_AAC/MPEG2/*, A_AAC/MPEG4/*, A_AAC | Alle AAC bestanden zullen geschreven worden in een AAC bestand met ADTS koppen voor elk pakket. De ADTS koppen bevatten géén verouderd nadrukgebiedsveld.
A_AC3, A_EAC3 | These will be extracted to raw AC-3 files.
A_ALAC | ALAC worden geschreven naar CAF bestanden.
A_DTS | These will be extracted to raw DTS files.
A_FLAC | FLAC sporen worden geschreven naar raw FLAC bestanden.
A_MPEG/L2 | MPEG-1 Audio Layer II stromen worden uitgpakt naar raw MP2 bestanden.
A_MPEG/L3 | These will be extracted to raw MP3 files.
A_OPUS | Opus(tm) tracks are written to OggOpus(tm) files.
A_PCM/INT/LIT, A_PCM/INT/BIG | Raw PCM data will be written to a WAV file. Big-endian integer data will be converted to little-endian data in the process.
A_REAL/* | RealAudio(tm) sporen worden geschreven naar RealMedia(tm) bestanden.
A_TRUEHD, A_MLP | These will be extracted to raw TrueHD/MLP files.
A_TTA1 | TrueAudio(tm) sporen worden geschreven naar TTA bestanden. Opmerking: door een limitatie in Matroska(tm)'s tijd code precisie zal de geëxtraheerde bestandskop verschillend zijn aangaande deze twee velden: data_length (de totale nummers van voorbeelden in het bestand) en de CRC.
A_VORBIS | Vorbis audio zal worden geschreven naar een OggVorbis(tm) bestand.
A_WAVPACK4 | WavPack(tm) sporen worden geschreven naar WV(tm) bestanden.
S_HDMV/PGS | PGS ondertitels worden geschreven als SUP bestanden.
S_HDMV/TEXTST | TextST subtitles will be written as a special file format invented for mkvmerge(1) and mkvextract(1).
S_KATE | Kate(tm) de stromen zullen binnen een Ogg(tm) bestand worden geschreven.
S_TEXT/SSA, S_TEXT/ASS, S_SSA, S_ASS | SSA en ASS tekst ondertitels worden respectievelijk geschreven als SSA/ASS bestanden.
S_TEXT/UTF8, S_TEXT/ASCII | Simpele tekst ondertitels worden geschreven in SRT bestanden.
S_VOBSUB | VobSub(tm) ondetitels worden geschreven als SUB samen met de bijbehorende index bestanden, als IDX bestanden.
S_TEXT/USF | USF tekst ondertitels worden geschreven als USF bestanden.
S_TEXT/WEBVTT | WebVTT text subtitles will be written as WebVTT files.
V_MPEG1, V_MPEG2 | MPEG-1 and MPEG-2 video tracks will be written as MPEG elementary streams.
V_MPEG4/ISO/AVC | H.264 / AVC video sporen worden geschreven naar H.264 elementaire stromen welke verder verwerkt kunnen worden b.v. MP4Box(tm) van het GPAC(tm) pakket.
V_MPEG4/ISO/HEVC | H.265 / HEVC video tracks are written to H.265 elementary streams which can be processed further with e.g. MP4Box(tm) from the GPAC(tm) package.
V_MS/VFW/FOURCC | Vaste FPS video sporen met deze CodecID worden geschreven naar AVI bestanden.
V_REAL/* | RealVideo(tm) sporen worden geschreven naar RealMedia(tm) bestanden.
V_THEORA | Theora(tm) stromen worden geschreven binnen een Ogg(tm) bestand
V_VP8, V_VP9 | VP8 / VP9 tracks are written to IVF files.
Markeringen | Markeringen worden geconverteerd naar een XML formaat. Dit formaat is hetzelfde dat mkvmerge(1) ondersteund voor het lezen van markeringen.
Bijlagen | Bijlagen worden geschreven naar de uitvoer zoals ze zijn. Geen enkele conversie (welke conversie dan ook) wordt uitgevoerd.
Hoofdstukken | Hoofdstukken worden geconverteerd naar een XML formaat. Dit formaat is hetzelfde welke mkvmerge(1) ondersteund voor het lezen van hoofdstukken. Alternatief is een 'uitgeklede versie' welke uitvoert naar het simpele OGM stijl formaat.
Tijd codes | Tijd codes worden het eerst gesorteerd en daarna geschreven als en tijd code v2 volg baar bestandformaat, klaar om aangevoerd te worden naar mkvmerge(1). Het extraheren naar andere formaten (v1, v3 en v4) zijn niet ondersteund.

# 6. Verlaat codes

mkvextract(1) sluit af met drie afsluit codes:

- 0 -- Deze verlaat code betekend dat de extractie succesvol is voltooid.

- 1 -- In dit geval heeft mkvextract(1) minstens één waarschuwing uitgegeven, maar extractie is doorgegaan. Een waarschuwing wordt vooraf bepaald met de tekst 'Waarschuwing:'. Afhankelijk van de 'tegengekomen' kwesties kan het resultaat goed of slecht zijn. De gebruiker wordt geadviseerd om zowel de waarschuwing als de resulterende bestanden te controleren.

- 2 -- Deze verlaat code wordt gebruikt nadat een fout is ontstaan. mkvextract(1) breekt direct af na het uitgeven van de waarschuwing. Fout berichten, bereik van verkeerde commandoregel argumenten tot aan lees/schrijf fouten naar gebroken bestanden.

# 7. Omgevingsvariabelen

mkvextract(1) gebruikt de standaard variabelen vanuit het systeem locatie (b.v. LANG en de LC_* family). Extra variabelen:

Option | Description
--- | ---
MKVEXTRACT_DEBUG, MKVTOOLNIX_DEBUG and its short form MTX_DEBUG | De inhoud wordt behandeld alsof het via de --debug optie gepasseerd is.
MKVEXTRACT_ENGAGE, MKVTOOLNIX_ENGAGE and its short form MTX_ENGAGE | De inhoud wordt behandeld alsof het via de --engage optie gepasseerd is.

# 8. Zie ook

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

# 9. WWW

De laatste versie kan altijd gevonden worden op de MKVToolNix thuis basis.