mkvextract - extrahovat stopy ze souborů Matroska(TM) do
jiných souborů
mkvextract {source-filename} {mode1} [options]
[extraction-spec1] [mode2] [options] [extraction-spec2] [...]
Tento program extrahuje konkrétní
části ze souboru Matroska(TM) do jiných
užitečných formátů. Prvním
argumentem je název zdrojového souboru, který
musí být souborem Matroska(TM).
Všechny ostatní argumenty buď
přepínají do určitého režimu
extrakce, mění volby aktuálně aktivního
režimu, nebo určují, co se má extrahovat do
kterého souboru. V jednom spuštění mkvextract
lze použít více režimů, což
umožňuje extrahovat více věcí v
jediném průchodu. Většinu voleb lze
použít pouze v určitých režimech;
několik voleb platí pro všechny režimy.
V současnosti je podporována extrakce stop,
štítků, příloh, kapitol, CUE
sheetů, časových razítek a indexů.
Následující volby jsou dostupné ve
všech režimech a jsou popsány pouze jednou v tomto
oddílu.
-f, --parse-fully
Nastavuje režim analýzy na 'full'.
Výchozí režim neanalyzuje celý soubor, ale k
nalezení požadovaných prvků zdrojového
souboru používá prvky hlavičky
vyhledávání. V 99 % všech
případů to stačí. U souborů,
které prvky hlavičky vyhledávání
neobsahují nebo jsou poškozené, však
uživatel možná bude muset tento režim
použít. Úplná kontrola souboru může
trvat několik minut, zatímco rychlá kontrola trvá
jen sekundy.
--command-line-charset character-set
Nastavuje znakovou sadu, ze které se
převádějí řetězce zadané na
příkazovém řádku. Výchozí je
znaková sada daná aktuálním národním
prostředím systému.
--output-charset character-set
Nastavuje znakovou sadu, do které se
převádějí řetězce
určené k výstupu. Výchozí je znaková
sada daná aktuálním národním
prostředím systému.
-r, --redirect-output file-name
Zapíše všechny zprávy do
souboru file-name místo na konzoli. Ačkoli to lze snadno
provést přesměrováním výstupu, tato
volba je potřeba v případech, kdy terminál
výstup před zápisem do souboru znovu interpretuje. Je
respektována znaková sada nastavená pomocí
--output-charset.
--no-bom
Textové soubory vytvořené &
kódované v některé z variant UTF obvykle
začínají značkou pořadí bajtů
(BOM). Tato volba zakáže zápis této značky
pořadí bajtů.
--flush-on-close
Dává programu pokyn, aby při
zavírání souborů otevřených pro
zápis vyprázdnil na úložiště
všechna data uložená v paměti. Lze tím
zabránit ztrátě dat při výpadku
napájení nebo obejít určité problémy
v operačním systému či ovladačích.
Nevýhodou je, že multiplexování bude trvat
déle, protože mkvmerge před ukončením
čeká na zápis všech dat na
úložiště. Podrobnou diskusi o
výhodách a nevýhodách najdete v
hlášeních č. 2469 a 2480 ve
sledování chyb MKVToolNix.
--ui-language code
Vynutí použití
překladů pro jazyk code (např. 'de_DE' pro
německé překlady). Zadáním 'list' jako
code program vypíše seznam dostupných
překladů.
--abort-on-warnings
Ukončí program po vydání
prvního upozornění. Návratový kód
programu bude 1.
--debug topic
Zapne ladění určité funkce.
Tato volba je užitečná pouze pro
vývojáře.
--engage feature
Zapne experimentální funkce. Seznam
dostupných funkcí lze vyžádat pomocí
mkvextract --engage list. Tyto funkce nejsou určeny pro
běžné použití.
--gui-mode
Zapne režim GUI. V tomto režimu mohou
být vypisovány speciálně formátované
řádky, které řídicímu GUI
sdělují, co se děje. Tyto zprávy mají
formát '#GUI#message'. Za zprávou mohou následovat
dvojice klíč/hodnota jako v
'#GUI#message#key1=value1#key2=value2...'. Zprávy ani
klíče se nikdy nepřekládají a vždy
jsou vypisovány anglicky.
-v, --verbose
Vypisuje podrobné informace a zobrazuje
všechny důležité prvky Matroska(TM) při
jejich čtení.
-h, --help
Zobrazí informace o použití a
ukončí se.
-V, --version
Zobrazí informace o verzi a ukončí
se.
@options-file.json
Načte další argumenty
příkazového řádku ze souboru
options-file. Úplné vysvětlení
podporovaných formátů takových souborů
naleznete v oddílu „Option files“ manuálové
stránky
mkvmerge(1).
Režim extrakce stop
Syntaxe: mkvextract source-filename
tracks [options]
TID1:dest-filename1
[TID2:dest-filename2 ...]
Následující volby
příkazového řádku jsou dostupné
pro každou stopu v režimu extrakce 'tracks'. Musí
být uvedeny před specifikací stopy (viz
níže), na kterou se mají použít.
-c character-set
Nastavuje znakovou sadu, do které se má
převést následující textová
titulková stopa. Platí pouze tehdy, pokud ID
následující stopy označuje textovou titulkovou
stopu. Výchozí je UTF-8.
--blockadd level
Zachová pouze BlockAdditions až do
této úrovně. Výchozí je zachovat
všechny úrovně. Tato volba ovlivňuje pouze
určité druhy kodeků, například
WAVPACK4.
--cuesheet
Způsobí, že
mkvextract(1)
extrahuje CUE sheet z informací o kapitolách a dat
štítků následující stopy do souboru,
jehož název je výstupním názvem stopy s
připojenou příponou '.cue'.
--raw
Extrahuje surová data do souboru bez
okolních kontejnerových dat. Na rozdíl od volby
--fullraw tato volba nezpůsobí zápis obsahu prvku
CodecPrivate do souboru. Tento režim funguje se všemi CodecIDs,
dokonce i s těmi, které
mkvextract(1) jinak nepodporuje,
ale výsledné soubory nemusí být
použitelné.
--fullraw
Extrahuje surová data do souboru bez
okolních kontejnerových dat. Obsah prvku CodecPrivate se nejprve
zapíše do souboru, pokud stopa takový prvek
hlavičky obsahuje. Tento režim funguje se všemi CodecIDs,
dokonce i s těmi, které
mkvextract(1) jinak nepodporuje,
ale výsledné soubory nemusí být
použitelné.
TID:outname
Způsobí extrakci stopy s ID
TID do
souboru
outname, pokud taková stopa ve zdrojovém souboru
existuje. Tuto volbu lze zadat vícekrát. ID stop jsou
stejná jako ID vypisovaná volbou
--identify programu
mkvmerge(1).
Každý výstupní název by se
měl použít pouze jednou. Výjimkou jsou stopy
RealAudio a RealVideo. Použijete-li stejný název pro
různé stopy, budou tyto stopy uloženy do
stejného souboru. Příklad:
$ mkvextract input.mkv tracks 0:video.h264 2:output-two-vobsub-tracks.idx 3:output-two-vobsub-tracks.idx
Režim extrakce příloh
Syntaxe: mkvextract source-filename
attachments [options]
AID1:outname1 [AID2:outname2 ...]
AID:outname
Způsobí extrakci přílohy s ID
AID do souboru
outname, pokud taková
příloha ve zdrojovém souboru existuje. Zůstane-li
outname prázdný, použije se místo
něj název přílohy uvnitř zdrojového
souboru Matroska(TM). Tuto volbu lze zadat vícekrát. ID
příloh jsou stejná jako ID vypisovaná volbou
--identify programu
mkvmerge(1).
Režim extrakce kapitol
Syntaxe: mkvextract source-filename
chapters [options]
output-filename.xml
-s, --simple
Exportuje informace o kapitolách v
jednoduchém formátu používaném
nástroji OGM (CHAPTER01=..., CHAPTER01NAME=...). V tomto režimu
je nutné některé informace zahodit. Výchozí
je výpis kapitol ve formátu XML.
--simple-language language
Je-li povolen jednoduchý formát,
mkvextract(1) vypíše pouze jednu položku pro
každý nalezený atom kapitoly, i když atom kapitoly
obsahuje více než jeden název kapitoly. Ve
výchozím stavu
mkvextract(1) použije pro
každý atom první nalezený název kapitoly
bez ohledu na jeho jazyk.
Pomocí této volby může uživatel
určit, které názvy kapitol se
vypíší, pokud atomy obsahují více
než jeden název kapitoly. Parametr language musí
být kód ISO 639-1 nebo ISO 639-2.
Kapitoly se zapíší do zadaného
výstupního souboru. Výchozí je formát
XML, kterému rozumí mkvmerge(1). Nejsou-li v souboru
nalezeny kapitoly, výstupní soubor se
nevytvoří.
Režim extrakce štítků
Syntaxe: mkvextract source-filename
tags [options]
output-filename.xml
-T, --no-track-tags
Exportuje pouze štítky, které nejsou
specifické pro stopu.
Štítky se zapíší do
zadaného výstupního souboru ve formátu XML,
kterému rozumí mkvmerge(1). Nejsou-li v souboru
nalezeny štítky, výstupní soubor se
nevytvoří.
Režim extrakce CUE sheetu
Syntaxe: mkvextract source-filename
cuesheet [options]
output-filename.cue
CUE sheet se zapíše do zadaného
výstupního souboru. Nejsou-li v souboru nalezeny kapitoly ani
štítky, výstupní soubor se
nevytvoří.
Režim extrakce časových razítek
Syntaxe: mkvextract source-filename
timestamps_v2 [options]
TID1:dest-filename1
[TID2:dest-filename2 ...]
TID:outname
Způsobí extrakci časových
razítek stopy s ID
TID do souboru
outname, pokud
taková stopa ve zdrojovém souboru existuje. Tuto volbu lze zadat
vícekrát. ID stop jsou stejná jako ID vypisovaná
volbou
--identify programu
mkvmerge(1).
Příklad:
$ mkvextract input.mkv timestamps_v2 1:ts-track1.txt 2:ts-track2.txt
Režim extrakce indexů
Syntaxe: mkvextract source-filename
cues [options]
TID1:dest-filename1
[TID2:dest-filename2 ...]
TID:dest-filename
Způsobí extrakci indexů stopy s ID
TID do souboru
outname, pokud taková stopa ve
zdrojovém souboru existuje. Tuto volbu lze zadat
vícekrát. ID stop jsou stejná jako ID vypisovaná
volbou
--identify programu
mkvmerge(1), nikoli
čísla obsažená v prvku CueTrack.
Výstupní formát je jednoduchý
textový formát: jeden řádek pro
každý prvek CuePoint s dvojicemi key=value. Není-li v
prvku CuePoint přítomen volitelný prvek (např.
CueDuration), vypíše se jako hodnota pomlčka.
Příklad:
timestamp=00:00:13.305000000 duration=- cluster_position=757741 relative_position=11
Možné klíče jsou:
timestamp
Časové razítko bodu indexu s
přesností na nanosekundy. Formát je HH:MM:SS.nnnnnnnnn.
Tento prvek je vždy nastaven.
duration
Délka bodu indexu s přesností na
nanosekundy. Formát je HH:MM:SS.nnnnnnnnn.
cluster_position
Absolutní pozice v bajtech uvnitř souboru
Matroska(TM), kde začíná cluster obsahující
odkazovaný prvek.
Note
Uvnitř souboru Matroska(TM) je CueClusterPosition relativní
vůči počátečnímu posunu dat
úseku. Hodnota vypisovaná režimem extrakce indexů
programu
mkvextract(1) však již tento posun obsahuje a je
absolutním posunem od začátku souboru.
relative_position
Relativní pozice v bajtech uvnitř clusteru,
kde začíná prvek BlockGroup nebo SimpleBlock, na
který bod indexu odkazuje.
Note
Uvnitř souboru Matroska(TM) je CueRelativePosition relativní
vůči počátečnímu posunu dat
clusteru. Hodnota vypisovaná režimem extrakce indexů
programu
mkvextract(1) je však relativní
vůči ID clusteru. Absolutní pozici uvnitř souboru
lze vypočítat sečtením cluster_position a
relative_position.
Příklad:
$ mkvextract input.mkv cues 1:cues-track1.txt 2:cues-track2.txt
Současná extrakce kapitol a
štítků v příslušných
formátech XML:
$ mkvextract movie.mkv chapters movie-chapters.xml tags movie-tags.xml
Současná extrakce několika stop a jejich
příslušných časových
razítek:
$ 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"
Extrakce kapitol ve formátu Ogg/OGM a
překódování textové titulkové
stopy do jiné znakové sady:
$ mkvextract "My Movie.mkv" chapters --simple "My Chapters.txt" tracks -c MS-ANSI "2:My Subtitles.srt"
Podrobnou diskusi o způsobu, jakým všechny
nástroje sady MKVToolNix pracují s převody
znakových sad, kódováním vstupu/výstupu,
příkazového řádku a konzole, naleznete ve
stejnojmenném oddílu manuálové stránky
mkvmerge(1).
Rozhodnutí o výstupním formátu je
založeno na typu stopy, nikoli na příponě
použité pro název výstupního souboru. V
současnosti jsou podporovány následující
typy stop:
A_AAC/MPEG2/*, A_AAC/MPEG4/*, A_AAC
Všechny soubory AAC budou zapsány do
souboru AAC s hlavičkami ADTS před každým paketem.
Hlavičky ADTS nebudou obsahovat zastaralé pole
zdůraznění.
A_AC3, A_EAC3
Tyto stopy budou extrahovány do surových
souborů AC-3.
A_ALAC
Stopy ALAC se zapisují do souborů
CAF.
A_DTS
Tyto stopy budou extrahovány do surových
souborů DTS.
A_FLAC
Stopy FLAC se zapisují do surových
souborů FLAC.
A_MPEG/L2
Proudy MPEG-1 Audio Layer II budou extrahovány do
surových souborů MP2.
A_MPEG/L3
Tyto stopy budou extrahovány do surových
souborů MP3.
A_OPUS
Stopy Opus(TM) se zapisují do souborů
OggOpus(TM).
A_PCM/INT/LIT, A_PCM/INT/BIG
Surová data PCM budou zapsána do souboru
WAV. Celočíselná data big-endian budou při
zpracování převedena na data little-endian.
A_REAL/*
Stopy RealAudio(TM) se zapisují do souborů
RealMedia(TM).
A_TRUEHD, A_MLP
Tyto stopy budou extrahovány do surových
souborů TrueHD/MLP.
A_TTA1
Stopy TrueAudio(TM) se zapisují do souborů
TTA. Upozorňujeme, že kvůli omezené
přesnosti časových razítek Matroska(TM) se
hlavička extrahovaného souboru bude lišit ve dvou
polích: data_length (celkový počet vzorků v
souboru) a CRC.
A_VORBIS
Zvuk Vorbis bude zapsán do souboru
OggVorbis(TM).
A_WAVPACK4
Stopy WavPack(TM) se zapisují do souborů
WV.
S_HDMV/PGS
Titulky PGS budou zapsány jako soubory SUP.
S_HDMV/TEXTST
S_KATE
Proudy Kate(TM) budou zapsány v kontejneru
Ogg(TM).
S_TEXT/SSA, S_TEXT/ASS, S_SSA, S_ASS
Textové titulky SSA a ASS budou zapsány
jako soubory SSA, resp. ASS.
S_TEXT/UTF8, S_TEXT/ASCII
Jednoduché textové titulky budou
zapsány jako soubory SRT.
S_VOBSUB
Titulky VobSub(TM) budou zapsány jako soubory SUB
spolu s příslušnými indexovými soubory
IDX.
S_TEXT/USF
Textové titulky USF budou zapsány jako
soubory USF.
S_TEXT/WEBVTT
Textové titulky WebVTT budou zapsány jako
soubory WebVTT.
V_MPEG1, V_MPEG2
Video stopy MPEG-1 a MPEG-2 budou zapsány jako
elementární proudy MPEG.
V_MPEG4/ISO/AVC
Video stopy H.264 / AVC se zapisují jako
elementární proudy H.264, které lze dále zpracovat
například programem MP4Box(TM) z balíku GPAC(TM).
V_MPEG4/ISO/HEVC
Video stopy H.265 / HEVC se zapisují jako
elementární proudy H.265, které lze dále zpracovat
například programem MP4Box(TM) z balíku GPAC(TM).
V_MS/VFW/FOURCC
Video stopy s pevnou FPS s tímto CodecID se
zapisují do souborů AVI.
V_REAL/*
Stopy RealVideo(TM) se zapisují do souborů
RealMedia(TM).
V_THEORA
Proudy Theora(TM) budou zapsány v kontejneru
Ogg(TM)
V_VP8, V_VP9
Stopy VP8 / VP9 se zapisují do souborů
IVF.
Štítky
Štítky jsou převedeny do
formátu XML. Tento formát je stejný, jaký
mkvmerge(1) podporuje pro čtení
štítků.
Přílohy
Přílohy se zapisují do
výstupního souboru beze změny. Neprovádí se
žádný převod.
Kapitoly
Kapitoly jsou převedeny do formátu XML.
Tento formát je stejný, jaký
mkvmerge(1) podporuje
pro čtení kapitol. Alternativně lze vypsat
zjednodušenou verzi v jednoduchém formátu ve stylu
OGM.
Časová razítka
Časová razítka se nejprve
seřadí a pak vypíšou jako soubor
odpovídající formátu časových
razítek v2, připravený pro
mkvmerge(1). Extrakce
do jiných formátů (v1, v3 a v4) není
podporována.
mkvextract(1) končí jedním ze
tří návratových kódů:
•0 – Tento návratový
kód znamená, že extrakce byla
úspěšně dokončena.
•
1 – V tomto
případě
mkvextract(1) vypsal alespoň jedno
upozornění, ale extrakce pokračovala.
Upozornění má předponu 'Warning:'. V
závislosti na daných problémech mohou, ale nemusí
být výsledné soubory v pořádku.
Uživatel by měl zkontrolovat upozornění i
výsledné soubory.
•
2 – Tento návratový
kód se použije po výskytu chyby.
mkvextract(1) se
ukončí hned po vypsání chybové
zprávy. Chybové zprávy sahají od chybných
argumentů příkazového řádku
přes chyby čtení a zápisu až po
poškozené soubory.
mkvextract(1) používá
výchozí proměnné určující
národní prostředí systému (např.
LANG a rodinu LC_*). Další
proměnné:
MKVEXTRACT_DEBUG, MKVTOOLNIX_DEBUG a její
zkrácený tvar MTX_DEBUG
Obsah se zpracuje, jako by byl předán
pomocí volby --debug.
MKVEXTRACT_ENGAGE, MKVTOOLNIX_ENGAGE a její
zkrácený tvar MTX_ENGAGE
Obsah se zpracuje, jako by byl předán
pomocí volby --engage.
Nejnovější verzi lze vždy najít
na domovské stránce MKVToolNix[1].
Moritz Bunkus <moritz@bunkus.org>
Vývojář
- 1.
- domovské stránce MKVToolNix