mkvextract - extrait les pistes d'un fichier Matroska(TM) vers d'autres fichiers
Ce logiciel extrait des parties spécifiques d'un fichier
Matroska(TM)
vers d'autres formats utiles. Le premier argument est le nom du fichier source qui doit être un fichier
Matroska(TM).
Tous les autres arguments soit basculent vers un mode d'extraction particulier, soit modifient des options pour le mode en cours, soit spécifient quoi extraire vers quel fichier. Plusieurs modes peuvent être utilisés en invoquant mkvextract, ce qui permet d'extraire plusieurs choses en une seule passe. La plupart des options peuvent seulement être utilisées dans certains modes avec quelques options s'appliquant à tous les modes.
Est actuellement prise en charge l'extraction des
pistes,
balises,
pièces jointes,
chapitres,
feuilles de montage CUE,
horodatages
et
points de montage.
Options communes
Les options suivantes sont disponibles pour tous les modes et sont seulement décrites une seule fois dans cette section.
-f, --parse-fully
-
Définit le mode d'analyse à « complet ». Le mode par défaut n'analyse pas entièrement le fichier nais utilise les méta-éléments de recherche pour localiser les éléments requis d'un fichier source. Dans 99% des cas cela est suffisant. Mais pour les fichiers qui ne contiennent pas ces méta-éléments ou qui sont endommagés, l'utilisateur pourrait utiliser ce mode. L'analyse complète d'un fichier peut prendre plusieurs minutes tandis qu'une analyse rapide ne prend que quelques secondes.
--command-line-charset character-set
-
Définit le jeu de caractères utilisé pour la conversion des chaînes fournies en ligne de commande. Par défaut, celui-ci correspond à celui donné par la « locale » du système.
--output-charset character-set
-
Définit le jeu de caractères dans lequel les chaînes en sortie sont converties. Par défaut, celui-ci correspond à celui donné par la « locale » du système.
-r, --redirect-output file-name
-
Écrit tous les messages dans le fichier
file-name
plutôt que vers la console. Alors que cela peut être facilement fait avec la redirection de la sortie, il y a des cas pour lesquels cette option est nécessaire : quand le terminal réinterprète la sortie avant de l'écrire dans un fichier. Le jeu de caractères défini avec
--output-charset
est honoré.
--flush-on-close
-
Indique au programme d'envoyer toutes les données cachées en mémoire vers le support de stockage lors de la fermeture de fichiers ouverts en écriture. Ceci peut être utilisé pour éviter la perte de données lors de coupures de courant ou pour contourner certains problèmes du système d'exploitation ou de pilotes. L'inconvénient est que le multiplexage sera plus long du fait que mkvmerge devra attendre que toutes les données soient écrites sur le support de stockage avant de quitter. Voir les problèmes #2469 et #2480 sur le suivi des bogues de MKVToolNix pour des discussions approfondies sur les avantages et inconvénients.
--ui-language code
-
Force les traductions pour la langue
code
à utiliser (par ex. 'fr_FR' pour les traductions françaises). Saisir 'list' comme
code
obligera le logiciel à générer la liste des traductions disponibles.
--abort-on-warnings
-
Demande au programme d'abandonner après le premier avertissement. Le code de fermeture sera égal à 1.
--debug topic
-
Activer le débogage pour une fonctionnalité spécifique. Cette option est utile uniquement pour les développeurs.
--engage feature
-
Active les fonctionnalités expérimentales. Une liste des fonctions disponibles peut être demandée avec
mkvextract --engage list. Ces fonctionnalités ne devraient pas être utilisées en situations normales.
--gui-mode
-
Active l'interface graphique utilisateur. Dans ce mode, des lignes spécialement formatées peuvent être générées et informer une GUI de la situation. Ces messages suivent le format '#GUI#message'. Le message peut être suivi d'une paire clé/valeur comme '#GUI#message#key1=value1#key2=value2...'. Ni les messages ni les clés ne sont traduits, et sont toujours générés en anglais.
-v, --verbose
-
Mode verbeux qui affiche tous les éléments
Matroska(TM)
importants à mesure qu'ils sont lus.
-h, --help
-
Affiche les informations d'utilisation et quitte.
-V, --version
-
Affiche les informations de version et quitte.
@options-file.json
-
Lit des arguments supplémentaires en ligne de commande depuis le fichier
options-file. Pour une explication complète sur les formats pris en charge pour de tels fichiers, voir la section nommée « Fichiers d'options » sur la page man de
mkvmerge(1).
Mode d'extraction des pistes
Syntaxe :
mkvextract source-filename tracks [options] TID1:dest-filename1 [TID2:dest-filename2 ...]
Les options de ligne de commande suivantes sont disponibles pour chaque piste en mode d'extraction de 'tracks'. Elles doivent apparaître avant les spécifications de piste (voir ci-dessous) auxquelles elles devraient s'appliquer.
-c character-set
-
Définit le jeu caractère pour en convertir la prochaine piste de texte de sous-titres. Seulement valide si l'ID de la nouvelle piste est une piste de texte de sous-titres. Par défaut UTF-8.
--blockadd niveau
-
Conserve seulement les BlockAdditions jusqu'à ce niveau. Par défaut, tous les niveaux. Cette option affecte seulement certains types de codecs comme WAVPACK4.
--cuesheet
-
Oblige
mkvextract(1)
à extraire une feuille de montage
CUE
à partir des données de balises et des informations de chapitres pour la piste suivante dans le fichier dont le nom est le nom de piste cible terminé par «
.cue
».
--raw
-
Extrait les données brutes dans un fichier sans conteneur de données. À la différence du drapeau
--fullraw, ce drapeau n'oblige pas les contenus de l'élément
CodecPrivate
à être écrits vers le fichier. Ce mode fonctionne avec tous les
CodecIDs, même ceux que
mkvextract(1)
ne prend pas en charge, mais les fichiers résultants pourraient ne pas être utilisables.
--fullraw
-
Extrait les données brutes dans un fichier sans conteneur de données. Les contenus de l'élément
CodecPrivate
seront écrits vers le fichier en premier si la piste contient un tel élément d'entête. Ce mode fonctionne avec tous les
CodecIDs, même ceux que
mkvextract(1)
ne prend pas en charge, mais les fichiers résultants pourraient ne pas être utilisables.
TID:outname
-
Oblige l'extraction de la piste avec l'ID
TID
dans le fichier
outname
si une telle piste existe dans le fichier source. Cette option peut être donnée plusieurs fois. Les ID de pistes sont les mêmes que celles données par l'option
--identify
de
mkvmerge(1).
Chaque nom cible devrait n'être utilisé qu'une seule fois, à l'exception des pistes RealAudio et RealVideo. Si le même nom est utilisé pour différentes pistes, alors ces pistes seront enregistrées dans le même fichier. Exemple :
-
$ mkvextract input.mkv tracks 0:video.h264 2:output-two-vobsub-tracks.idx 3:output-two-vobsub-tracks.idx
Mode d'extraction des pièces jointes
Syntaxe :
mkvextract source-filename attachments [options] AID1:outname1 [AID2:outname2 ...]
AID:outname
-
Oblige l'extraction de la pièce jointe avec l'ID
AID
dans le fichier
outname
si une telle pièce jointe existe dans le fichier source. Si
outname
est laissé vide, alors le nom de la pièce jointe du fichier source
Matroska(TM)
est utilisé. Cette option peut être donnée plusieurs fois. Les ID de pistes sont les mêmes que celles données par l'option
--identifyde
mkvmerge(1).
Mode d'extraction des chapitres
Syntaxe :
mkvextract source-filename chapters [options] output-filename.xml
-s, --simple
-
Exporte les informations de chapitres dans un format simple utilisé dans l'outil
OGM
(CHAPTER01=..., CHAPTER01NAME=...). Dans ce mode quelques information doivent être mises de côté. Par défaut, les chapitres sont générés en format
XML.
--simple-language langue
-
Si le format simple est activé, alors
mkvextract(1)
sortira seulement une entrée unique pour chaque atome de chapitre rencontré même si un atome de chapitre contient plus d'un nom de chapitre. Par défaut
mkvextract(1)
utilisera le premier nom de chapitre trouvé pour chaque atome quelque soit sa langue.
Utiliser cette option permet à l'utilisateur de déterminer quels noms de chapitres sont sortis si les atomes contiennent plus d'un nom de chapitre. Le paramètre
language
doit être un code ISO 639-1 ou ISO 639-2.
Les chapitres sont écrits vers le fichier spécifié. Par défaut le format
XML
compris par
mkvmerge(1)
est utilisé. Si aucun chapitre n'est trouvé dans le fichier, le fichier source n'est pas créé.
Mode d'extraction des balises
Syntaxe :
mkvextract source-filename tags [options] output-filename.xml
Les balises sont écrites vers le fichier spécifié dans le format
XML
compris par
mkvmerge(1). Si aucune balise n'est trouvée dans le fichier, le fichier source n'est pas créé.
Mode d'extraction de feuille de montage CUE
Syntaxe :
mkvextract source-filename cuesheet [options] output-filename.cue
La feuille de montage est écrite vers le fichier spécifié. Si aucun chapitre ou balise n'est trouvé dans le fichier, le fichier source n'est pas créé.
Mode d'extraction d'horodatage
Syntaxe :
mkvextract source-filename timestamps_v2 [options] TID1:dest-filename1 [TID2:dest-filename2 ...]
TID:outname
-
Oblige l'extraction des horodatages pour la piste avec l'ID
TID
dans le fichier
outnamesi une telle piste existe dans le fichier source. Cette option peut être donnée plusieurs fois. Les ID de pistes sont les mêmes que celles données par l'option --identify de
mkvmerge(1).
Exemple :
-
$ mkvextract input.mkv timestamps_v2 1:ts-track1.txt 2:ts-track2.txt
Mode d'extraction des feuilles de montage CUE
Syntaxe :
mkvextract source-filename cues [options] TID1:dest-filename1 [TID2:dest-filename2 ...]
TID:dest-filename
-
Oblige l'extraction des données de montage pour la piste avec l'ID
TID
dans le fichier
outname
si une telle piste existe dans le fichier source. Cette option peut être donnée plusieurs fois. Les ID de pistes sont les mêmes que celles données par l'option
--identify
de
mkvmerge(1)
et ne sont pas les numéros contenus dans l'élément
CueTrack.
Le format de sortie est un simple format texte : une ligne par élément
CuePoint
avec des pairs
key=value. Si un élément optionnel n'est pas présent dans un
CuePoint
(par ex.
CueDuration), alors un tiret sera inscrit comme valeur.
Exemple :
-
timestamp=00:00:13.305000000 duration=- cluster_position=757741 relative_position=11
Les clés possibles sont :
horodatage
-
L'horodatage du point de montage en précision nanoseconde. Le format est
HH:MM:SS.nnnnnnnnn. Cet élément est toujours défini.
durée
-
La durée du point de montage en précision nanoseconde. Le format est
HH:MM:SS.nnnnnnnnn.
cluster_position
-
La position absolue en octets dans le fichier
Matroska(TM)
où la grappe contenant l'élément référencé commence.
-
Note
Dans un fichier
Matroska(TM)
CueClusterPosition
est relatif au décalage du début des données de l'élément. Toutefois, la valeur fournie par le mode d'extraction de données de montage de
mkvextract(1)
contient déjà ce décalage et est un décalage absolu depuis le début du fichier.
relative_position
-
La position relative en octets dans la grappe où l'élément
BlockGroup
ou
SimpleBlock
auquel le point de montage se réfère commence.
-
Note
Dans un fichier
Matroska(TM)
1CueRelativePosition1 est relatif au décalage du début des données de la grappe. Toutefois, la valeur fournie par le mode d'extraction de données de montage de
mkvextract(1)
est relative à l'ID de la grappe. La position absolue dans le fichier peut être calculée en ajoutant
cluster_position
et
relative_position.
Exemple :
-
$ mkvextract input.mkv cues 1:cues-track1.txt 2:cues-track2.txt
EXEMPLES
Extraction de chapitres et balises dans leur formats
XML
respectifs en même temps :
-
$ mkvextract movie.mkv chapters movie-chapters.xml tags movie-tags.xml
Extraction de quelques piste et leurs horodatages respectifs en même temps :
-
$ mkvextract "Un autre film.mkv" tracks 0:video.h265 "1:piste audio principale.aac" "2:commentaires du réalisateur.aac" timestamps_v2 "0:horodatages vidéo.txt" "1:horodatages piste audio principale.txt" "2:horodatages des commentaires du réalisateur.txt"
Extraction de chapitres dans le format Ogg/OGM et réencodage d'unepiste de sous-titre texte dans un autre jeu de caractère :
-
$ mkvextract "Mon film.mkv" chapters --simple "Mes chapitres.txt" tracks -c MS-ANSI "2:Mes sous-titres.srt"
FICHIERS TEXTE ET CONVERSIONS DE JEUX DE CARACTÈRES
Pour une discussion approfondie sur la gestion des conversions de jeux de caractères des outils de la suite MKVToolNix, de l'encodage source/cible, de l'encodage de la ligne de commande, de l'encodage de la console, merci de voir les sections respectives nommées pareillement des pages man de
mkvmerge(1).
FORMATS DE FICHIER CIBLE
La décision sur le format de sortie est basée sur le type de piste et non sur l'extension utilisée pour le nom de fichier cible. Les types de pistes suivantes sont prises en charge pour le moment :
A_AAC/MPEG2/*, A_AAC/MPEG4/*, A_AAC
-
Tous les fichiers
AAC
seront écrits dans un fichier
AAC
avec des entêtes
ADTS
avant chaque paquet. Les entêtes
ADTS
ne contiendront pas le champ emphase obsolète.
A_AC3, A_EAC3
-
Celles-ci seront extraites en fichiers bruts
AC-3.
A_ALAC
-
Les pistes
ALAC
sont écrites en fichiers
CAF.
A_DTS
-
Celles-ci seront extraites en fichiers bruts
DTS.
A_FLAC
-
Les pistes
FLAC
sont écrits en fichiers RAW
FLAC.
A_MPEG/L2
-
Les flux MPEG-1 Audio Layer II seront extraits vers des fichiers raw
MP2.
A_MPEG/L3
-
Celles-ci seront extraites en fichiers bruts
MP3.
A_OPUS
-
Les pistes
Opus(TM)
sont écrites en fichiers
OggOpus(TM).
A_PCM/INT/LIT, A_PCM/INT/BIG
-
Les données brutes
PCM
seront écrites en fichier
WAV. Le données Big-endian entier seront converties en données little-endian ce faisant.
A_REAL/*
-
Les pistes
RealAudio(TM)
sont écrites en fichiers
RealMedia(TM).
A_TRUEHD, A_MLP
-
Celles-ci seront extraites en fichiers bruts
TrueHD/MLP.
A_TTA1
-
Les pistes
TrueAudio(TM)
sont écrites en fichiers
TTA. Merci de noter que du fait de la précision limitée de l'horodatage
Matroska(TM), l'entête extraite du fichier sera différente pour ces deux champs :
data_length
(le nombre total d'échantillons du fichier) et
CRC.
A_VORBIS
-
Vorbis audio va être écrit dans un fichier
OggVorbis(TM)
.
A_WAVPACK4
-
Les pistes
WavPack(TM)
sont écrites en fichiers
WV.
S_HDMV/PGS
-
Les sous-titres
PGS
seront écrits en fichiers
SUP.
S_HDMV/TEXTST
-
Les sous-titres
TextST
seront écrits en format de fichier spécial inventé pour
mkvmerge(1)
et
mkvextract(1).
S_KATE
-
Les flux
Kate(TM)
seront écrits en conteneur
Ogg(TM).
S_TEXT/SSA, S_TEXT/ASS, S_SSA, S_ASS
-
Les sous-titres texte
SSA
et
ASS
seront respectivement écrits comme fichiers
SSA/ASS.
S_TEXT/UTF8, S_TEXT/ASCII
-
Les sous-titres texte simple seront écrits comme fichiers
SRT.
S_VOBSUB
-
Les sous-titres texte
VobSub(TM)
seront écrits comme fichiers
SUB
avec les fichiers d'index respectifs, comme fichiers
IDX.
S_TEXT/USF
-
Les sous-titres texte
USF
seront écrits comme fichiers
USF.
S_TEXT/WEBVTT
-
Les sous-titres texte
WebVTT
seront écrits comme fichiers
WebVTT.
V_MPEG1, V_MPEG2
-
Les pistes vidéo
MPEG-1
and
MPEG-2
seront écrites comme flux élémentaires
MPEG.
V_MPEG4/ISO/AVC
-
Les pistes vidéoH.264
/
AVC
sont écrites comme flux élémentaires
H.264
qui peuvent être post-traités avec par ex.
MP4Box(TM)
du paquet
GPAC(TM).
V_MPEG4/ISO/HEVC
-
Les pistes vidéoH.265
/
HEVC
sont écrites comme flux élémentaires
H.265
qui peuvent être post-traités avec par ex.
MP4Box(TM)
du paquet
GPAC(TM).
V_MS/VFW/FOURCC
-
Les pistes vidéo à
FPS
constant avec ce
CodecID
sont écrites en fichiers
AVI.
V_REAL/*
-
Les pistes
RealVideo(TM)
sont écrites en fichiers
RealMedia(TM).
V_THEORA
-
Les flux
Theora(TM)
seront écrites en conteneur
Ogg(TM)
V_VP8, V_VP9
-
VP8
/
VP9
pistes sont écrites pour
IVF
fichiers.
Balises
-
Les balises sont converties en format
XML. Ce format est le même que
mkvmerge(1)
gère en lecture.
Pièces jointes
-
Les pièces jointes sont écrites dans le fichier de sortie telles quelles. Aucune conversion n'est effectuée.
Chapitres
-
Les chapitres sont convertis en format
XML. Ce format est le même que
mkvmerge(1)
gère pour lire les chapitres. Autrement une version dépouillée peut être produite dans le format simple
OGM.
Horodatages
-
Les codes temporels sont d'abord triés puis produits en fichier conforme avec le format de code temporel v2 prêt à être envoyé à
mkvmerge(1). L'extraction vers d'autres formats (v1, v3 et v4) n'est pas prise en charge.
CODES DE FERMETURE
mkvextract(1)
ferme avec l'un de ces 3 codes de fermeture :
-
•
0
-- Ce code de sortie signifie que l'extraction s'est correctement terminée.
-
•
1
-- Dans ce cas
mkvpropedit(1)
a émis au moins un avertissement, mais la modification a continué. Un avertissement est préfixé avec le texte 'Avertissement :'. Selon le problème, les fichiers résultants pourront être OK ou pas. L'utilisateur est vivement conseillé de vérifier et l'avertissement et les fichiers résultants.
-
•
2
-- Ce code de fermeture est utilisé lorsqu'une erreur survient.
mkvpropedit(1)
abandonne juste après le message d'erreur. Les messages d'erreurs vont des arguments erronés en ligne de commande aux fichiers corrompus en passant par les erreurs en lecture/écriture.
VARIABLES DENVIRONMENT
mkvmerge(1)
utilise les variables par défaut qui déterminent la « locale » du système (par ex.
LANG
et la famille
LC_*). Variables additionnelles :
MKVEXTRACT_DEBUG, MKVTOOLNIX_DEBUG et sa forme courte MTX_DEBUG
-
Le contenu est traité comme s'il a été passé via l'option
--debug.
MKVEXTRACT_ENGAGE, MKVTOOLNIX_ENGAGE et sa forme courte MTX_ENGAGE
-
Le contenu est traité comme s'il a été passé via l'option--engage.
VOIR AUSSI
mkvmerge(1),
mkvinfo(1),
mkvpropedit(1),
mkvtoolnix-gui(1)
WWW
La dernière version peut toujours être trouvée à
m[blue]la page d'accueil de MKVToolNixm[][1].
AUTEUR
Moritz Bunkus <moritz@bunkus.org>
-
Développeur
NOTES
- 1.
-
la page d'accueil de MKVToolNix
-
https://mkvtoolnix.download/