NOM
mkvmerge - Fusionne les flux multimédia en un fichier MatroskaRÉSUMÉ
mkvmerge
[global options] {-o out} [options1] {file1}
[[options2] {file2}] [@options-file.json]
DESCRIPTION
Ce logiciel prend les entrées de plusieurs fichiers de médias et joint leurs flux (tous ou une sélection) dans un fichier Matroska ; voir le site Web Matroska[1].Options globales
-v, --verboseAugmente la verbosité.
-q, --quiet
Supprime les messages d'état.
-o, --output file-name
Écrit vers le fichier file-name.
Si la scission est utilisée, alors ce paramètre est
traité un peu différemment. Voir l'explication pour l'option
--split pour les détails.
-w, --webm
Crée un fichier conforme WebM. C'est
aussi activé si l'extension du nom de fichier cible est
"webm". Ce mode impose plusieurs restrictions. Les seuls codecs
permis sont VP8, VP9 pour la vidéo et les pistes audio Opus, Vorbis.
L'élément d'entête DocType est modifié en
"webm".
Pour les chapitres et les balises, seule une partie des éléments
est permise. retirera automatiquement tous les
éléments non permis par la spécification.
--title titre
Définit le titre général
pour le fichier cible, par ex. le nom du film.
--default-language language-code
Définit le code langue par
défaut qui sera utilisé pour les pistes pour lesquelles aucune
langue n'est définie avec l'option --language et pour lesquelles
le conteneur source ne fournit pas de langue.
Le code de langue par défaut pour
« undetermined » est
« und ».
Gestion des infos de segments (options globales)
--segmentinfo filename.xmlLit les informations de segment depuis un
fichier XML. Ce fichier peut contenir l'UID de famille de segment, l'UID de
segment, les éléments d'UID suivants et précédents
de segment. Un fichier d'exemple et un DTD sont inclus dans la distribution
MKVToolNix.
Voir la section relative aux fichiers XML d'infos de segments ci-dessous pour
les détails.
--segment-uid SID1,SID2,...
Définit les UID de segment à
utiliser. C'est une liste d'UID de segment de 128 bits séparés
par une virgule et sous leur forme habituelle : nombres hexadécimaux
avec ou sans le préfixe "0x", avec ou sans espaces et
d'exactement 32 chiffres.
Si le SID commence avec =, alors son reste est interprété comme le
nom d'un fichier Matroska dont l'UID de segment est lu et utilisé.
Chaque fichier créé contient un segment, et chaque segment a un
UID de segment. Si plus d'UID de segment sont spécifiés que de
segments sont créés, alors le surplus d'UID est ignoré.
Si moins d'UID sont spécifiés que de segments sont
créés, alors des UID aléatoires seront
créés pour eux.
Gestion des balises et des chapitres (options globales)
--chapter-language language-codeDéfinit le code langue ISO 639-2 qui
est écrit pour chaque entrée de chapitre. « eng »
par défaut. Voir la section à propos des chapitres ci-dessous
pour les détails.
Cette option peut être utilisée pour des fichiers de chapitres
simples et pour des fichiers source qui contiennent des chapitres mais pas
d'informations sur la langue des chapitres, par ex. les fichiers MP4 et OGM.
La langue définie avec cette option est aussi utilisée quand les
chapitres sont générés avec --generate-chapters
comme option.
--chapter-charset character-set
Définit le jeu de caractères
utilisé pour la conversion vers UTF-8 des simples fichiers de
chapitres. Voir la section à propos des fichiers texte et des jeux de
caractères pour savoir comment convertit les jeux de
caractères.
Ce commutateur s'appliquera aussi aux chapitres qui sont copiés depuis
certains types de conteneur, par ex. les fichiers Ogg/OGM et MP4. Voir la
section sur les chapitres ci-dessous pour les détails.
--chapter-sync d[,o[/p]]
Ajuste les horodatages des chapitres dans les
sources suivantes de d ms. Alternativement, il est possible d'utiliser
l'option --sync avec l'ID de piste spécial -2 (voir la
section ID de pistes spéciaux).
o/p : ajuste les horodatages de o/p pour corriger
les dérives linéaires. p est par défaut 1 si omis.
o et p peuvent être des nombre à virgules
flottantes.
Par défaut : aucune correction manuelle de la sync. (ce qui est la
même chose que d = 0 et o/p = 1.0).
Cette option peut être utilisée de multiples fois pour un fichier
source en s'appliquant à plusieurs pistes par sélection de
différents ID de pistes à chaque fois.
--generate-chapters mode
peut créer des
chapitres automatiquement. Les deux modes suivants sont actuellement pris en
charge :
Les noms pour les nouveaux chapitres sont contrôlés par l'option
--generate-chapters-name-template. La langue est définie avec
--chapter-language qui doit survenir avant --generate-chapters.
--generate-chapters-name-template template
•'when-appending' – Ce mode
crée un chapitre au début et un chapitre quand un fichier est
ajouté.
Ce mode fonctionne aussi avec les modes de scission
« parts: » et
« parts-frames: ». Pour ces modes, un chapitre
sera généré pour chaque plage d'horodatage ajoutée
(celles qui débutent les horodatages sont préfixées avec
« + »).
Note
nécessite une piste vidéo ou audio
présente pour être en mesure de déterminer quand un
nouveau fichier est ajouté. Si une piste vidéo ou plus sont
mixées, la première est utilisée. Sinon la
première piste audio est utilisée.
•'interval:time-spec' –
Ce mode crée un chapitre à intervalle fixe par time-spec.
Le format est soit la forme HH:MM:SS.nnnnnnnnn ou un nombre suivi par
une des unités 's', 'ms' ou 'us'.
Example : --generate-chapters interval:45s
Ceci définit le motif de nom pour les
noms de chapitres générés par l'option
--generate-chapters. Si l'option n'est pas utilisée, alors la
chaîne par défaut 'Chapter <NUM:2>' sera utilisée.
Il existe plusieurs variables qui peuvent être utilisées dans le
motif et qui sont remplacées par leurs valeus réelles quand un
chapitre est généré. La chaîne '<NUM>' sera
remplacée par le numéro de chapitre. La chaîne
'<START>' sera remplacée par l'horodatage de début de
chapitre.
Les chaînes '<FILE_NAME>' et '<FILE_NAME_WITH_EXT>' sont
seulement remplies à la génération de chapitres sont
générés pour les fichiers ajoutés. Elles seront
remplacées par le nom du fichier ajouté avec et sans son
extension, respectivement. Noter que seuls le nom de base du fichier et
l'extension sont insérés, pas son dossier ou les lettres ou
composants du lecteur.
Il est possible de spécifier un nombre minimal de chiffres pour les
numéros de chapitres avec '<NUM:places>', par ex.
'<NUM:3>'. Le numéro résultant sera préfixé
de zéros si le nombre de chiffres est moindre que
spécifié.
Il est possible de contrôler le format utilisé par l'horodatage de
début avec <START:format>. Le format est par défaut
'%H:%M:%S' si aucun n'est donné. Les codes de format valides sont :
--cue-chapter-name-format format
•%h – heures
•%H – heures à deux
chiffres
•%m – minutes
•%M – minutes à deux
chiffres
•%s – secondes
•%S – secondes à deux
chiffres
•%n – nanosecondes à neuf
chiffres
•%<1-9>n – nanosecondes
avec jusqu'à 9 chiffres (par ex. 3 chiffres avec %3n)
prend en charge la lecture
des feuilles de montage CUE pour les fichiers audio comme source de chapitres.
Les feuilles de montage CUE contiennent habituellement les entrées
PERFORMER et TITLE pour chaque entrée d'index.
utilise ces deux chaînes pour construire le nom de
chapitre. Avec cette option, le format utilisé pour ce nom peut
être défini.
Si cette option n'est pas donnée, alors utilise par
défaut le format '%p - %t' (l'artiste, suivi par une espace, un tiret,
une autre espace et le titre).
Si le format est donnée, alors tout excepté les
métacaractères suivants est copié tel quel, et les
métacaractères sont remplacés comme ceci :
--chapters file-name
•%p est remplacé par la
chaîne du PERFORMER de l'entrée actuelle,
•%t st remplacé par la
chaîne du TITLE de l'entrée actuelle,
•%n est remplacé par le
numéro de la piste actuelle et
•%N est remplacé par le
numéro de la piste actuelle précédé de 0 si <
à 10.
Lit les informations de chapitres depuis le
fichier file-name. Voir la section sur les chapitres ci-dessous pour
les détails.
--global-tags file-name
Lit les balises globales depuis le fichier
file-name. Voir la section sur les balises ci-dessous pour les
détails.
Contrôle général en sortie (options globales avancées)
--track-order FID1:TID1,FID2:TID2,...Cette option modifie l'ordre dans lequel les
pistes d'un fichier source sont créées. L'argument est une liste
de paires d'ID séparées par virgule. Chaque paire contient en
premier l'ID fichier ( FID1) qui est simplement le numéro du
fichier sur la ligne de commande et commençant à 0. Le second
est l'ID de piste ( TID1) de ce fichier. Si quelques ID de pistes sont
omis, alors ces pistes sont créées après que celles
données par cette option ont été
créées.
--cluster-length spec
Limite le nombre de blocs de données ou
la durée des données dans chaque grappe. Le paramètre
spec peut soit être un nombre n sans unité soit un
nombre d suivi de 'ms'.
Si aucune unité n'est utilisée, alors placera
au plus n blocs de données dans chaque grappe. Le nombre maximal
de blocs est 65535.
Si le nombre d est suivi de 'ms', alors placera au
plus d millisecondes de données dans chaque grappe. Le minimum
pour d est '100 ms', et le maximum est '32000 ms'.
Par défaut place au plus 65535 blocs et 5000 ms de
données par grappe.
Les programmes essayant de trouver une certaine trame ne pourront effectuer
qu'un positionnement sur une grappe (cluster), après quoi ils devront
lire la grappe entière. Donc la création de grappes plus grandes
pourrait conduire à un positionnement lent ou imprécis.
--clusters-in-meta-seek
Indique à de
créer un élément de méta-positionnement à
la fin du fichier contenant toutes les grappes. Voir aussi la section sur la
disposition des fichiers Matroska.
--timestamp-scale factor
Force le facteur d'échelle de
l'horodatage à factor. Les valeurs valides sont dans
l'intervalle 1000..10000000 ou la valeur spéciale
-1.
Normalement utilisera une valeur de 1000000, ce qui
signifie que les horodatages et les durées auront une précision
de 1 ms. Pour les fichiers qui ne contiennent pas de piste vidéo mais
au moins une piste audio, choisira automatiquement un
facteur d'échelle de code temporel de façon à ce que les
horodatages et les durées aient une précision de un
échantillon audio. Cela permet un positionnement et une extraction
précise au prix de calculs plus importants.
Si la valeur spéciale -1 est utilisée, alors
utilisera la précision des échantillons
même si une piste vidéo est présente.
--enable-durations
Écrit les durées pour tous les
blocs. Ceci va augmenter la taille du fichier, et n'offre pour le moment aucun
avantage pour les lecteurs.
--no-cues
Indique à de ne pas
créer et écrire de données de montage qui peuvent
être comparée à un index dans un AVI. Les fichiers
Matroska peuvent être lus sans données de montage, mais le
positionnement sera probablement imprécis et plus lent. À
utiliser seulement en cas de contrainte forte d'espace ou pour test.. Voir
aussi l'option --cues qui peut être spécifiée pour
chaque fichier source.
--no-date
Par défaut
défini le champ d'information de segment « date »
à la date et heure courante quand le multiplexage débute. Avec
cette option ce champ n'est pas du tout écrit.
--disable-lacing
Désactive l'enlacement de toutes les
pistes. Ceci va augmenter la taille du fichier, particulièrement s'il y
a beaucoup de pistes audio. Cette option n'est pas destinée à
être utilisée régulièrement.
--disable-track-statistics-tags
Normalement écrira
certaines balises avec des statistiques pour chaque piste. Si de telles
balises sont déjà présentes, alors elles seront
écrasées. Les balises sont BPS, DURATION,
NUMBER_OF_BYTES et NUMBER_OF_FRAMES.
Activer cette option empêchera d'écrire ces
balises et de modifier toutes les balises existantes avec les mêmes
noms.
--disable-language-ietf
écrit normalement
les nouveaux éléments de langue IETF BCP 47 en plus des
éléments traditionnels dans les entêtes de pistes, les
chapitres et les balises. Si cette option est utilisée, seuls les
éléments traditionnels sont écrits.
--normalize-language-ietf mode
Active la normalisation de toutes les
étiquettes de langue IETF BCP 47 soit en leur forme canonique avec le
mode 'canonique', soit en leur forme de sous-étiquettes de langue
étendue avec le mode 'extlang' soit en le désactivant avec le
mode 'off'. Par défaut la normalisation en forme canonique est
appliquée.
Dans la forme canonique, toutes les sous-étiquettes avec des valeurs
préférées existantes sont remplacées par ces
dernières. Ceci convertit par ex. 'zh-yue-jyutping' en 'yue-jyutping'
ou 'fr-FX' en 'fr-FR'.
Pour la forme des sous-étiquettes de langue étendue, la forme
canonique est d'abord construite. Ensuite toutes les langues primaires pour
lesquelles des étiquettes de langue étendue existent sont
remplacées par cette sous-étiquettes de langue étendue et
son préfixe. Ceci reconvertit par ex. 'yue-jyutping' en
'zh-yue-jyutping' mais n'a pas d'effet sur 'fr-FR' car 'fr' n'est pas une
sous-étiquette de langue étendue.
Scission, liage, ajout et concaténation de fichiers (plus d'options globales)
--split specificationScinde le fichier cible après une
taille ou une durée donnée. Merci de noter que les pistes
peuvent être seulement scindées après une trame
clé. Le point de scission peut donc être un peu
décalé par rapport à ce que l'utilisateur a
spécifié.
Pour le moment prend en charge les modes suivants:
Pour ce mode de scission, le nom de fichier cible est traité
différemment qu'en opération normale. Il peut contenir un
printf comme l'expression '%d' et inclure une largeur de champ
facultative, par ex. '%02d'. Si c'est le cas, alors le numéro de
fichier actuel sera formaté de manière appropriée et
inséré à ce point dans le nom de fichier. S'il n'y a pas
un tel motif, alors un motif de '-%03d' est supposé juste avant
l'extension de du fichier : '-o output.mkv' résulterait en
'output-001.mkv' et ainsi de suite. S'il n'y a pas d'extension, alors '-%03d'
sera ajouté au nom.
Un autre motif possible est '%c' ; il sera remplacé par le nom du premier
chapitre du fichier. Noter que quand '%c' est présent, le motif '-%03d'
ne sera pas ajouté automatiquement.
--link
1.Scission par taille.
Syntaxe : --split [size:] d[k|m|g]
Exemples : --split size:700m ou --split 150000000
Le paramètre d peut se terminer avec 'k', 'm' ou 'g' pour indiquer
que la taille est en ko, Mo ou Go, respectivement. Sinon une taille en octets
est supposée. Après que le fichier cible actuel a atteint cette
limite de taille, un nouveau est démarré.
Le préfixe 'size:' peut être omis pour des raisons de
compatibilité.
2.Scission après une durée.
Syntaxe : --split [duration:] HH:MM:SS.nnnnnnnnn|ds
Exemples : --split duration:00:60:00.000 ou --split 3600s
Le paramètre doit soit avoir la forme HH:MM:SS.nnnnnnnnn pour
spécifié la durée en précision à la
nanoseconde soit être un chiffre d suivi de la lettre 's' pour
une durée en secondes. HH est le nombre d'heures, MM le
nombre de minutes, SS le nombre de secondes et nnnnnnnnn le
nombre de nanosecondes. Les nombres d'heures et de nanosecondes peuvent
être omis tous les deux. Il peut y avoir jusqu'à neuf chiffres
de décimales. Après que la durée du contenu de la cible
actuelle a atteint cette limite, un nouveau fichier cible est
démarré.
Le préfixe 'duration:' peut être omis pour des raisons de
compatibilité.
3.Scission après des horodatages
spécifiques.
Syntaxe : --split timestamps: A[,B[,C...]]
Exemple : --split timestamps:00:45:00.000,01:20:00.250,6300s
Les paramètres A, B, C etc. doivent tous avoir le
même format que ceux utilisés pour la durée (voir
ci-dessus). La liste des horodatages est séparée par des
virgules. Après que le flux source a atteint le code temporel du point
de scission, un nouveau fichier est créé. Alors le point de
scission suivant dans cette liste est utilisé.
Le préfixe 'timestamps:' ne doit pas être omis.
4.Conservation de parties spécifiques
en spécifiant des intervalles d'horodatage tout en en rejetant
d'autres.
Syntaxe : --split parts:
start1-end1[,[+]start2-end2[,[+]
start3-end3...]]
Exemples :
Le mode parts indique à de conserver certaines plages
d'horodatages et d'en rejeter d'autres. Les plages à conserver doivent
être listées après le mot clé parts: et
être séparées par des virgules. Une plage
elle-même consiste en un horodatage de début et de fin dans le
même format que les autres variations de --split acceptent (par
ex. 00:01:20 et 80s réfère au même horodatage).
Si un horodatage de début est omis, alors il sera par défaut
défini selon l'horodatage de fin de la plage précédente.
En l'absence, il sera par défaut défini au début du
fichier (voir exemple 3)
Si un horodatage de fin est omis, alors il sera par défaut défini
à la fin des fichiers sources, ce qui indique simplement à
de conserver le reste (voir exemple 3)
Normalement chaque plage sera écrite dans un nouveau fichier. Ceci peut
être modifié de telle manière que des plages
consécutives puissent être écrites vers le même
fichier. Pour cela, l'utilisateur doit préfixer l'horodatage de
début avec un +. Ceci indique à de ne pas
créer de nouveau fichier et plutôt d'ajouter la plage au
même fichier vers lequel la plage précédente a
été écrite. Les horodatages seront ajustés pour
qu'il n'y ait pas de blanc dans le fichier cible même s'il y avait un
blanc entre les deux plages dans le fichier source.
Dans l'exemple 1 va créer deux fichiers. Le premier
contiendra le contenu débutant à 00:01:20 jusqu'à
00:02:45. Le second contiendra le contenu débutant à 00:05:50
jusqu'à 00:10:30.
Dans l'exemple 2 va créer un seul fichier. Celui-ci
contiendra et le contenu débutant à 00:01:20 jusqu'à
00:02:45 et le contenu débutant à 00:05:50 jusqu'à
00:10:30.
Dans l'exemple 3 va créer deux fichiers. Le premier
contiendra le contenu depuis le début des fichiers sources
jusqu'à 00:02:45. Le second contiendra le contenu débutant
à 00:05:50 jusqu'à la fin des fichiers sources.
Note
Note : prend seulement des décisions de scission aux
positions des trames clés. Ceci s'applique au début et à
la fin de chaque plage. Donc même si un horodatage de fin se situe
entre deux trames clés, continuera d'extraire les
trames jusqu'à la trame clé suivante exclue.
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-
5.Conservation de parties spécifiques
en spécifiant des intervalles de trames/champs tout en en rejetant
d'autres.
Syntaxe : --split parts-frames:
start1-end1[,[+]start2-
end2[,[+]start3-end3...]]
Exemples :
Le mode parts-frames indique à de conserver certaines
plages de numéros de trame/champ tout en en rejetant d'autres. Les
plages à conserver doivent être listées près le
mot clé parts-frames: et être séparées par des
virgules. Une plage elle-même consite en un numéro de
trame/champ de début et de fin. La numérotation débute
à 1.
Si un numéro de début est omis, alors il est défini par
défaut au numéro de fin de la plage précédente.
Si un numéro de fin est omis, alors il sera par défaut
défini à la fin des fichiers sources, ce qui indique simplement
à de conserver le reste (voir l'exemple 3)
Normalement chaque plage sera écrite dans un nouveau fichier. Ceci peut
être modifié de telle manière que des plages
consécutive soient écrites dans le même fichier. Pour
cela, l'utilisateur doit préfixer le numéro de début avec
un +. Ceci indique à de ne pas créer un
nouveau fichier mais d'ajouter la plage au même fichier dans lequel la
plage précédente a été écrite. Les
horodatages seront ajustés de telle manière qu'il n'y ait pas de
blanc dans le fichier cible même s'il y en avait un dans les deux
plages du fichier source.
Note
Note : prend seulement des décisions de
scission aux positions de trames clés. Ceci s'applique au début
et à la fin de chaque plage. Donc même si un numéro de
trame/champ se situe entre deux trames clés,
continuera de générer les trames jusqu'à la prochaine
trame clé exclue.
Dans l'exemple 1, va créer deux fichiers. Le premier
contiendra le contenu depuis la première trame clé à ou
après 137 jusqu'à la première trame clé à
ou après 258 exclue. Le second contiendra le contenu débutant
à 548 jusqu'à 1211.
Dans l'exemple 2, va créer seulement un fichier. Ce
fichier contiendra les contenus débutant à 733 jusqu'à
912 et débutant à 1592 jusqu'à 2730.
Dans l'exemple 3, va créer deux fichiers. Le premier
contiendra le contenu depuis le début des fichiers sources
jusqu'à 430. Le second contiendra le contenu débutant à
2512 jusqu'à la fin des fichiers sources.
Ce mode considère seulement la première piste vidéo qui est
générée. Si aucune piste vidéo n'est
générée, aucune scission n'est opérée.
Note
Les nombres donnés avec cet argument sont interprétés selon
le nombre de blocs Matroska en sortie. Un unique bloc Matroska contient soit
une trame complète (contenu progressif) soit un unique champ (contenu
entrelacé). mkvmerge ne distingue pas entre les deux et compte
simplement le nombre de blocs. Par exemple : si on veut scinder après
la 25ème trame complète avec du contenu entrelacé, on
devrait utiliser 50 (deux champs par trame complète) comme point de
scission.
1.--split parts-frames:137-258,548-1211
2.--split
parts-frames:733-912,+1592-2730
3.--split parts-frames:-430,2512-
6.Scission après des trames/champs
spécifiques.
Syntaxe : --split frames: A[,B[,C...]]
Exemple : --split frames:120,237,891
Les paramètres A, B, C etc. doivent tous être
des entiers positifs. La numérotation débute à 1. La
liste des numéros de trame/champ est séparée par des
virgules. Après que le flux source a atteint le numéro actuel de
trame/champ du point de scission, un nouveau fichier est créé.
Ensuite le point de scission suivant donné par cette liste est
utilisé.
Le préfixe 'frames:' ne doit pas être omis.
Ce mode considère seulement la première piste vidéo qui est
générée. Si aucune piste vidéo n'est
générée, aucune scission n'est opérée.
Note
Les nombres donnés avec cet argument sont interprétés selon
le nombre de blocs Matroska en sortie. Un unique bloc Matroska contient soit
une trame complète (contenu progressif) soit un unique champ (contenu
entrelacé). mkvmerge ne distingue pas entre les deux et compte
simplement le nombre de blocs. Par exemple : si on veut scinder après
la 25ème trame complète avec du contenu entrelacé, on
devrait utiliser 50 (deux champs par trame complète) comme point de
scission.
7.Scission avant des chapitres
spécifiques.
Syntaxe : --split chapters:all ou --split chapters:
A[, B[,C...]]
Exemple : --split chapters:5,8
Les paramètres A, B, C etc. doivent tous être
des entiers positifs. La numérotation débute à 1. La
liste des numéros de chapitres est séparée par des
virgules. La scission sera opérée juste avant la première
trame clé dont l'horodatage est égal ou supérieur
à l'horodatage de début pour les chapitres dont les
numéros sont listés. Un chapitre débutant à 0 s
n'est jamais pris en compte pour la scission et est ignoré.
Le mot clé all peut être utilisé plutôt que de
lister tous les numéros de chapitres manuellement.
Le préfixe 'chapters:' ne doit pas être omis.
Note
Le format Matroska prend en charge une profondeur arbitraire de structures de
chapitres appelées « entrées d'édition » et
« atomes de chapitre ». Toutefois, ce mode considère
uniquement le niveau le plus élevé des chapitres parmi toutes
les entrées d'édition.
Lie les fichiers avec un autre lors de la
scission du fichier cible. Voir la section file linking ci-dessous pour les
détails.
--link-to-previous segment-UID
Lie le premier fichier cible au segment avec
l'UID de segment UID donné par le paramètre segment-UID.
Voir la section file linking ci-dessous pour les détails.
Si le SID commence avec =, alors son reste est interprété comme le
nom d'un fichier Matroska dont l'UID de segment est lu et
utilisé.
--link-to-next segment-UID
Lie le dernier fichier cible au segment avec
l'UID de segment UID donné par le paramètre segment-UID.
Voir la section file linking ci-dessous pour les détails.
Si le SID commence avec =, alors son reste est interprété comme le
nom d'un fichier Matroska dont l'UID de segment est lu et
utilisé.
--append-mode mode
Détermine comment les horodatages sont
calculés quand des fichiers sont ajoutés. Le paramètre
mode peut avoir deux valeurs : 'file' qui est aussi la valeur par
défaut et 'track'.
Quand ajoute une piste (appelée 'track2_1' à
partir de maintenant) depuis un second fichier (appelé 'file2')
à une piste (appelée 'track1_1') depuis le premier fichier
(appelé 'file1'), alors il doit décaler tous les horodatages
pour 'track2_1' d'un certain montant. Pour le mode 'file' ce montant est le
plus haut horodatage rencontré dans 'file1' même si cet
horodatage provenait d'une piste différente que 'track1_1'. En mode
piste le décalage est le plus haut horodatage de 'track1_1'.
Malheureusement ne peut pas détecter quel mode
utiliser de manière fiable. Par conséquent, le mode par
défaut est 'file'. Le mode 'file' fonctionne habituellement mieux pour
les fichiers ayant été créés indépendamment
; par ex. en ajoutant des fichiers AVI ou MP4. Le mode 'track' est susceptible
de mieux fonctionner pour les sources qui sont essentiellement juste des
parties d'un gros fichier, par ex. pour les fichiers VOB et EVO.
Les pistes de sous-titres sont toujours traitées comme si le mode 'file'
était actif même si c'est le mode 'track' qui est actif.
--append-to SFID1:STID1:DFID1:DTID1[,...]
Cette option contrôle à quelle
piste une autre piste est ajoutée. Chaque spéc. contient quatre
ID : un ID de fichier, un ID de piste, un second ID de fichier, et un second
ID de piste. La première paire, « ID de fichier source »
et « ID de piste source », identifie la piste qui sera
ajoutée. La seconde paire, « ID de fichier destination »
et « ID de piste destination », identifie la piste à
laquelle la première est ajoutée.
Si cette option a été omise, alors un mappage standard est
utilisé. Ce mappage standard ajoute chaque piste du fichier actuel
à une piste du fichier précédent avec le même ID
de piste. Cela rend l'ajout plus facile, si un film a été
scindé en deux parties et que les deux fichiers ont le même
nombre de pistes et d'ID de pistes, avec la commande mkvmerge -o output.mkv
part1.mkv +part2.mkv.
+
Un unique « + » oblige le
fichier suivant à être joint plutôt qu'ajouté. Le
« + » peut aussi être placé devant le nom du
fichier suivant. Les deux commandes suivantes sont donc équivalentes :
[ file1 file2 ]
$ mkvmerge -o complet.mkv fichier1.mkv + fichier2.mkv $ mkvmerge -o complet.mkv fichier1.mkv +fichier2.mkv
Si plusieurs noms de fichiers sont contenus
dans une paire de crochets, alors le second fichier et tous les suivants
seront joints au premier nom de fichier entre les crochets.
Ceci est une syntaxe alternative pour utiliser « + » entre les
noms de fichiers. Les deux commandes suivantes sont donc équivalentes :
=
$ mkvmerge -o complet.mkv fichier1.mkv + fichier2.mkv $ mkvmerge -o complet.mkv '[' fichier1.mkv fichier2.mkv ']'
Pour certains types de fichiers (flux
programme MPEG = VOB) recherche normalement des fichiers
dans le même dossier que le fichier source, qui ont le même nom
de base et diffèrent seulement par leur numérotation (par ex.
'VTS_01_1.VOB', 'VTS_01_2.VOB', 'VTS_01_3.VOB' etc.). Le programme traite tous
ces fichiers comme s'ils étaient concaténés en un seul
gros fichier. Cette option, un unique « = »,
indique à mkvmerge de ne pas rechercher ces fichiers additionnels.
Le « = » peut également être placé devant le
nom de fichier suivant. Par conséquent, les deux commandes suivantes
sont équivalentes :
( file1 file2 )
$ mkvmerge -o full.mkv = file1.vob $ mkvmerge -o full.mkv =file1.vob
Si de multiples noms de fichiers sont
placés entre parenthèses, alors ces fichiers seront
traités comme s'ils étaient concaténés en un gros
fichier unique contenant chaque fichier l'un après l'autre.
Ceci peut être utilisé pour par ex. les fichiers VOB provenant
d'un DVD ou de flux de transport MPEG. Il ne peut pas être
utilisé si chaque fichier contient son propre jeu d'entêtes, ce
qui est habituellement le cas avec les fichiers autonomes AVI ou MP4.
Placer un nom de fichier entre parenthèses empêche aussi
de rechercher d'autres fichiers avec le même nom de
base tel que décrit dans l'option =. Par conséquent, ces
deux lignes de commande sont équivalentes :
Plusieurs choses devraient être notées :
$ mkvmerge -o out.mkv = file.mkv $ mkvmerge -o out.mkv '(' file.mkv ')'
1.Il doit y avoir des espaces après la
parenthèse ouvrante et avant celle fermante.
2.Chaque paramètre entre
parenthèses est interprété comme un nom de fichier. Par
conséquent, toutes les options s'appliquant à ce fichier logique
doivent être listées avant la parenthèse ouvrante.
3.Quelques interfaces en lignes de commandes
traitent les parenthèses en caractères spéciaux. Il faut
donc les échapper ou les entourer de guillemets comme dans l'exemple
ci-dessus.
Prise en charge des pièces jointes (plus d'options globales)
--attachment-description descriptionLa description texte de la pièce jointe
suivante. S'applique à la prochaine --attach-file ou à
l'option --attach-file-once.
--attachment-mime-type MIME type
Type MIME de la pièce jointe suivante.
S'applique à l'option suivante --attach-file ou
--attach-file-once. Une liste des types MIME officiellement reconnus
peut être trouvée sur la page d’accueil IANA[2].
Le type MIME est obligatoire pour une pièce jointe.
Si aucun type MIME n'est donné pour une pièce jointe, son type
sera détecté automatiquement.
--attachment-name name
Définit le nom qui sera stocké
dans le fichier cible pour cette pièce jointe. Si cette option n'est
pas fournie, alors le nom sera dérivé du nom de fichier de la
pièce jointe tel que donné par l'option --attach-file ou
--attach-file-once.
--attach-file file-name, --attach-file-once
file-name
Crée un fichier joint dans le fichier
Matroska. Le type MIME doit avoir été défini avant que
cette option puisse être utilisée. La différence entre
les deux formes est que pendant la scission les fichiers joints avec
--attach-file le sont à tous les fichiers cibles alors que ceux
joints avec --attach-file-once le sont seulement au premier fichier
créé. Si la scission n'est pas utilisée, alors les deux
font la même chose.
mkvextract(1) peut être utilisé pour extraire les fichiers
joints d'un fichier Matroska.
--enable-legacy-font-mime-types
Active l'utilisation des anciens types MIME
pour certains types de pièces jointes de polices de caractères.
Par ex., « application/x-truetype-font » sera
utilisé pour les polices TrueType au lieu de
« fonts/ttf ».
Ceci affecte les nouvelles pièces jointes si leur type MIME est
détecté automatiquement et celles existantes pour lesquelles les
types MIME stockés seront remplacés par les anciens.
Les types MIME affectés sont « font/sfnt »,
« font/ttf » et
« font/collection ». Ils sont tous
remplacés par
« application/x-truetype-fonts ».
« font/otf » est remplacé par
« application/vnd.ms-opentype ».
Options pouvant être utilisée à chaque fichier source
-a, --audio-tracks [!]n,m,...Copie les pistes audio n, m etc.
Les numéros sont les ID de pistes qui peuvent être obtenus avec
le commutateur --identify. Ce ne sont pas seulement des numéros
de pistes (voir la section ID de pistes). Par défaut : copie toutes les
pistes audio.
Au lieu des ID de piste il est possible de fournir des codes de langue ISO
639-2. Cela ne fonctionnera que pour les fichiers sources fournissant des
balises de langue pour leurs pistes.
Par défaut : copie toutes les pistes de ce type.
Si les ID sont préfixés avec !, alors la signification est
inversée : copier toutes les pistes semblables sauf celles
listées après le !.
-d, --video-tracks [!]n,m,...
Copie les pistes vidéo n,
m etc. Les numéros sont les ID de pistes qui peuvent être
obtenus avec le commutateur --identify. Ce ne sont pas seulement des
numéros de pistes (voir la section ID de pistes). Par défaut :
copie toutes les pistes vidéo.
Au lieu des ID de piste il est possible de fournir des codes de langue ISO
639-2. Cela ne fonctionnera que pour les fichiers sources fournissant des
balises de langue pour leurs pistes.
Si les ID sont préfixés avec !, alors la signification est
inversée : copier toutes les pistes semblables sauf celles
listées après le !.
-s, --subtitle-tracks [!]n,m,...
Copie les pistes de sous-titres n,
m etc. Les numéros sont les ID de pistes qui peuvent être
obtenus avec le commutateur --identify. Ce ne sont pas seulement des
numéros de pistes (voir la section ID de pistes). Par défaut :
copie toutes les pistes de sous-titres.
Au lieu des ID de piste il est possible de fournir des codes de langue ISO
639-2. Cela ne fonctionnera que pour les fichiers sources fournissant des
balises de langue pour leurs pistes.
Si les ID sont préfixés avec !, alors la signification est
inversée : copier toutes les pistes semblables sauf celles
listées après le !.
-b, --button-tracks [!]n,m,...
Copie les pistes de boutons n, m
etc. Les nombres sont des ID de pistes qui peuvent être obtenus avec le
commutateur --identify. Ce ne sont pas simplement des numéros de
pistes (voir la section ID de pistes). Par défaut : copier toutes les
pistes de boutons.
Au lieu des ID de piste il est possible de fournir des codes de langue ISO
639-2. Cela ne fonctionnera que pour les fichiers sources fournissant des
balises de langue pour leurs pistes.
Si les ID sont préfixés avec !, alors la signification est
inversée : copier toutes les pistes semblables sauf celles
listées après le !.
--track-tags [!]n,m,...
Copie les balises pour les pistes n,
m etc. Les numéros sont les ID de pistes qui peuvent être
obtenus avec le commutateur --identify. Ce ne sont pas seulement des
numéros de pistes (voir la section ID de pistes). Par défaut :
copie toutes les balises pour les pistes.
Si les ID sont préfixés avec !, alors la signification est
inversée : copier toutes les pistes semblables sauf celles
listées après le !.
-m, --attachments
[!]n[:all|first],m[:all|first],...
Copie les pistes de pièces jointes avec
les ID n, m etc. vers tous les fichiers cibles ou seulement le
premier. Chaque ID peut être suivie soit par ':all' (par défaut
si rien n'est saisi) soit par ':first'. Si la scission est active, alors les
pièces jointes dont les ID sont spécifiées avec ':all'
sont copiées vers tous les fichiers cibles résultant alors que
les autres sont copiées seulement vers le premier fichier cible. Si la
scission n'est pas active, alors les deux variants ont le même effet.
Par défaut les pièces jointes sont copiées vers tous les
fichiers cibles.
Si les ID sont préfixés avec !, alors la signification est
inversée : copier toutes les pistes semblables sauf celles
listées après le !.
-A, --no-audio
Ne copie aucune piste audio de ce
fichier.
-D, --no-video
Ne copie aucune piste vidéo de ce
fichier.
-S, --no-subtitles
Ne copie aucune piste de sous-titres de ce
fichier.
-B, --no-buttons
Ne copie aucune piste de boutons de ce
fichier.
-T, --no-track-tags
Ne copie aucune balise spécifique de
piste de ce fichier.
--no-chapters
Ne copie aucun chapitre de ce fichier.
-M, --no-attachments
Ne copie aucune pièce jointe de ce
fichier.
--no-global-tags
Ne copie aucune balises globales de ce
fichier.
-y, --sync TID:d[,o[/p]]
Ajuste les horodatages de la piste avec l'ID
TID de d ms. Les ID de pistes sont les mêmes que ceux
donnés avec --identify (voir la section ID de pistes).
o/p : ajuste les horodatages de o/p pour corriger
les dérives linéaires. p est par défaut 1 si omis.
o et p peuvent être des nombre à virgules
flottantes.
Par défaut : aucune correction manuelle de la sync. (ce qui est la
même chose que d = 0 et o/p = 1.0).
Cette option peut être utilisée de multiples fois pour un fichier
source en s'appliquant à plusieurs pistes par sélection de
différents ID de pistes à chaque fois.
--cues TID:none|iframes|all
Contrôle pour quelles pistes les
entrées de montage (index) sont créées pour la piste
fournie (voir la section ID de pistes). 'none' inhibe la création des
entrées de montage. Pour les 'iframes', seuls les blocs sans
références avance et retour ( = trames I dans les pistes
vidéo) sont placées dans la feuille de montage. 'all' oblige
à créer des entrées de montage pour
tous les blocs, ce qui rendra le fichier très lourd.
L'option par défaut est 'iframes' pour les pistes vidéo et de
sous-titres, et 'none' pour les pistes audio. Voir aussi l'option
--no-cues qui inhibe la création d'entrées de montage
CUES quelque soit l'option --cues utilisée.
Cette option peut être utilisée de multiples fois pour un fichier
source en s'appliquant à plusieurs pistes par sélection de
différents ID de pistes à chaque fois.
--default-track-flag TID[:bool]
Pose l'indicateur « Piste par
défaut » pour la piste donnée (voir section ID de
pistes) si l'argument facultatif bool est défini à
1 ou s'il n'est pas présent. Ce signal sera défini si le
conteneur de la source ne fournit pas cette information et si l'utilisateur ne
le spécifie pas via cette option.
Si l'utilisateur ne sélectionne pas explicitement une piste lors de la
lecture, le lecteur devrait sélectionner une des pistes avec
l'indicateur « Piste par défaut »
posé, prenant en compte les préférences utilisateurs
telle que la langue préférée.
Cette option peut être utilisée de multiples fois pour un fichier
source en s'appliquant à plusieurs pistes par sélection de
différents ID de pistes à chaque fois.
--track-enabled-flag TID[:bool]
Définit l'indicateur "piste
activée" pour la piste donnée (voir la section ID de piste)
à la valeur donnée par bool (0 ou 1 ; par défaut 1
si non spécifiée). Les pistes sont activées par
défaut si aucune option ne leur est spécifiée et que le
conteneur source ne fournit pas non plus l'information.
Seules les pistes dont l'indicateur "piste activée" est
posé devraient être considérées pour la lecture.
Cette option peut être utilisée de multiples fois pour un fichier
source en s'appliquant à plusieurs pistes par sélection de
différents ID de pistes à chaque fois.
--forced-display-flag TID[:bool]
Pose l'indicateur « Affichage
forcé » pour la piste donnée (voir la section ID
de pistes) si l'argument facultatif bool n'est pas présent.
Utiliser ceci pour les pistes contenant du texte à l'écran ou
des dialogues en langues étrangères.
Cette option peut être utilisée de multiples fois pour un fichier
source en s'appliquant à plusieurs pistes par sélection de
différents ID de pistes à chaque fois.
--hearing-impaired-flag TID[:bool]
Pose l'indicateur
« Malentendant » pour la piste donnée (voir
la section ID de pistes) si l'argument facultatif bool est
défini à 1 ou s'il n'est pas présent. Ce signal
peut être posé si la piste est adaptée aux utilisateurs
malentendants.
Cette option peut être utilisée de multiples fois pour un fichier
source en s'appliquant à plusieurs pistes par sélection de
différents ID de pistes à chaque fois.
--visual-impaired-flag TID[:bool]
Pose l'indicateur
« Malvoyant » pour la piste donnée (voir la
section ID de pistes) si l'argument facultatif bool est défini
à 1 ou s'il n'est pas présent. Ce signal peut être
posé si la piste est adaptée aux utilisateurs malvoyants.
Cette option peut être utilisée de multiples fois pour un fichier
source en s'appliquant à plusieurs pistes par sélection de
différents ID de pistes à chaque fois.
--text-descriptions-flag TID[:bool]
Pose l'indicateur
« Audiodescription » pour la piste donnée
(voir la section ID de pistes) si l'argument facultatif bool est
défini à 1 ou s'il n'est pas présent. Ce signal
peut être posé si la piste contient l'audiodescription de
contenu vidéo adaptée à la lecture vocale pour
l'utilisateur malvoyant
Cette option peut être utilisée de multiples fois pour un fichier
source en s'appliquant à plusieurs pistes par sélection de
différents ID de pistes à chaque fois.
--original-flag TID[:bool]
Pose l'indicateur « Langue
d'origine » pour la piste donnée (voir la section ID de
pistes) si l'argument facultatif bool n'est pas présent. Ce
signal peut être posé si la piste est dans la langue d'origine
du contenu (pas une traduction).
Cette option peut être utilisée de multiples fois pour un fichier
source en s'appliquant à plusieurs pistes par sélection de
différents ID de pistes à chaque fois.
--commentary-flag TID[:bool]
Pose l'indicateur
« Commentaire » pour la piste donnée (voir
la section ID de pistes) si l'argument facultatif bool est
défini à 1 ou s'il n'est pas présent. Ce signal
peut être posé si la piste contient des commentaires.
Cette option peut être utilisée de multiples fois pour un fichier
source en s'appliquant à plusieurs pistes par sélection de
différents ID de pistes à chaque fois.
--blockadd TID:level
Conserve seulement les BlockAdditions jusqu'au
niveau level pour la piste fournie. Par défaut tous les niveaux
sont conservés. Cette option affecte seulement certains types de codecs
comme WAVPACK4.
--track-name TID:name
Définit le nom de piste pour la piste
fournie (voir la section ID de pistes) à name.
--langue TID:langue
Définit la langue pour la piste
donnée (voir la section ID de pistes). Les codes langue ISO 639-2 et de
pays ISO 639-1 sont autorisés. Les codes de pays seront convertis
automatiquement en codes langue. Toutes les langues, ainsi que leurs codes ISO
639-2, peuvent être listées avec l'option
--list-languages.
Cette option peut être utilisée de multiples fois pour un fichier
source en s'appliquant à plusieurs pistes par sélection de
différents ID de pistes à chaque fois.
-t, --tags TID:file-name
Lit les balises pour la piste avec le
numéro TID depuis le fichier file-name. Voir la section
balises ci-dessous pour les détails.
--aac-is-sbr TID[:0|1]
Indique à que la
piste avec l'ID TID est SBR AAC (aussi connu sous HE-AAC ou AAC+).
Cette option est nécessaire si a) le fichier source file est un fichier
AAC ( pas pour un fichier Matroska) et b) le fichier AAC contient des
données SBR AAC. La raison pour ce commutateur est qu'il est
techniquement impossible de distinguer automatiquement des données
normales AAC de données SBR AAC sans décoder une trame AAC
complète. Comme il y a plusieurs problèmes de brevets avec les
décodeurs AAC, n'assurera jamais cette phase de
décodage. Donc pour les fichiersSBR AAC ce commutateur est obligatoire.
Le fichier résultant de l'omission de ce commutateur pourrait ne pas
être lu correctement ou du tout.
Si le fichier source est un fichier Matroska, alors le CodecID devrait
être suffisant pour détecter SBR AAC. Toutefois si CodecID est
faux, alors ce commutateur pourra être utilisé pour corriger
cela..
Si détecte incorrectement qu'un fichier AAC est SBR,
alors il est possible d'ajouter ':0' à l'ID de piste.
--audio-emphasis TID:n|symbolic-name
Définit l'accentuation pour la piste
audio avec l'ID de piste TID. Le mode peut soit être un nombre
n (certaines valeurs entre 0 et 16) soit un nom
symbolique. Tous les nombres et noms valides peuvent être listés
avec l'option --list-audio-emphasis.
--reduce-to-core TID
Quelques codecs audio ont un cœur avec
perte et des extensions facultatives qui implémentent un
décodage sans perte. Cette option indique à
de copier seulement le cœur mais pas les extensions. Par défaut
copie le cœur et les extensions.
Actuellement, seules les pistes DTS sont affectées par cette option. Les
pistes TrueHD qui contiennent un cœur AC-3 embarqué sont
plutôt présentées en deux pistes séparées
que l'utilisateur peut sélectionner pour copier. Pour DTS un tel
schéma ne fonctionnerait pas parce que les extensions HD ne peuvent pas
être décodées par elles-mêmes – à la
différence des données TrueHD.
--remove-dialog-normalization-gain TID
Quelques codecs audio ont des champs
d'entêtes qui indiquent au décodeur ou lecteur d'appliquer un
gain (habituellement négatif) pour la normalisation des dialogues.
Cette option indique à de retirer ou minimiser ce
gain en modifiant les champs d'entêtes correspondants.
Seules les pistes AC-3, DTS et TrueHD sont actuellement concernées par
cette option.
--timestamps TID:file-name
Lit les horodatages à utiliser pour
l'ID de piste spécifique depuis file-name. Ces horodatages
écrasent de force les horodatages que calcule
normalement. Lire la section fichiers externes d'horodatage.
--default-duration TID:x
Force la durée par défaut d'une
piste donnée à la valeur spécifiée. Modifie aussi
les horodatage de la piste pour correspondre à la durée par
défaut. L'argument x doit être postfixé avec 's',
'ms', 'us', 'ns', 'fps', 'p' ou 'i' pour spécifier la valeur de la
durée par défaut en secondes, millisecondes, microsecondes,
nanosecondes, 'trames par seconde', 'trames progressives par seconde' ou
'trames entrelacées par seconde' respectivement. Le nombre x
peut lui-même être un nombre à virgule ou une fraction.
Si la durée par défaut n'est pas forcée, alors mkvmerge
essayera de dériver la durée par défaut de la piste
depuis le conteneur et/ou le flux binaire encodé pour certains types de
pistes, par ex. AVC/H.264 ou MPEG-2.
Cette option peut aussi être utilisée pour modifier les FPS des
pistes vidéo sans avoir à utiliser un fichier externe
d'horodatages.
--fix-bitstream-timing-information TID[:0|1]
Normalement, ne modifie pas
l'information temporelle (vitesse de trame/champ) stockée dans le flux
binaire de données vidéo. Avec cette option, cette information
est ajustée pour correspondre celle du conteneur. L'information de
timing du conteneur peut provenir de sources variées : de la
ligne de commande (voir l'option --default-duration), du conteneur
source ou dérivée du flux binaire.
Note
Ceci a été implémenté pour les pistes vidéo
AVC/H.264 pour le moment.
--compression TID:n
Sélectionne la méthode de
compression à utiliser pour la piste. Note : le lecteur doit aussi
prendre en charge cette méthode. Les valeurs valides sont 'none',
'zlib' et 'mpeg4_p2'/'mpeg4p2'.
La méthode de compression « mpeg4_p2 »/« mpeg4p2
» est une méthode spéciale de compression appelée
« header removal » qui n'est disponible que pour les pistes
vidéo MPEG4 part 2.
La compression par défaut pour certains types de sous-titres est 'zlib'.
Cette méthode de compression est aussi celle que presque toutes les
applications de lecture prennent en charge. La prise en charge d'autres
méthodes de compression que 'none' n'est pas assurée.
Options ne s'appliquant qu'aux pistes vidéo
-f, --fourcc TID:FourCCForce le code FourCC à la valeur
spécifiée. Ne fonctionne que pour les pistes vidéo en
« mode compatibilité MS ».
--display-dimensions TID:widthxheight
Les fichiers Matroska contiennent deux valeurs
qui définissent les propriétés d'affichage qu'un lecteur
devrait en compte pour la mise à l'échelle de l'image : largeur
et hauteur d'affichage. Ces valeurs peuvent être définies avec
cette option, par ex. '1:640x480'.
Une autre manière de définir les valeurs est d'utiliser les
options --aspect-ratio ou --aspect-ratio-factor (voir
ci-dessous). Ces options sont mutuellement exclusives.
--aspect-ratio TID:ratio|width/height
Les fichiers Matroska contiennent deux valeurs
qui définissent les propriétés d'affichage qu'un lecteur
devrait prendre en compte pour la mise à l'échelle de l'image :
largeur et hauteur d'affichage. Avec cette option calculera
automatiquement les largeur et hauteur d'affichage selon les largeur et
hauteur d'origine de l'image' et du ratio d'aspect donné par cette
option. Le ratio d'aspect peut être donné soit par un
ratio en nombre flottant soit par comme une fraction de '
width/height', par ex. '16/9'.
Une autre manière de définir les valeurs est d'utiliser les
options --aspect-ratio-factor ou --display-dimensions (voir
ci-dessus et ci-dessous). Ces options sont mutuellement exclusives.
--aspect-ratio-factor TID:factor|n/d
Une autre manière de définir le
ratio d'aspect est de spécifier un factor. Le ratio d'aspect
d'origine est d'abord multiplié par ce factor puis est
utilisé comme ratio d'aspect cible par la suite.
Une autre manière de définir les valeurs est d'utiliser les
options --aspect-ratio ou --display-dimensions (voir
ci-dessous). Ces options sont mutuellement exclusives.
--cropping TID:left,top,right,bottom
Définit les paramètres de
déformation des pixels d'une piste vidéo sur les valeurs
données.
--color-matrix-coefficients TID:n
Définit les coefficients de matrice de
la vidéo utilisés pour dériver les valeurs de luma et de
chroma depuis les couleurs primaires rouge, vert et bleu. Le paramètre
n est un entier allant de 0 à 10.
Les valeurs valides et leur signification sont :
0: GBR, 1: BT709, 2: non spécifié, 3:
réservé, 4: FCC, 5: BT470BG, 6: SMPTE 170M,
7: SMPTE 240M, 8: YCOCG, 9: BT2020 luminance non
constante, 10: BT2020 luminance constante
--color-bits-per-channel TID:n
Définit le nombre de bits codés
pour un canal de couleur. Une valeur de 0 indique que le nombre de bits
n'est pas spécifié.
--chroma-subsample TID:hori,vert
La quantité de pixels à retirer
dans les canaux Cr et Cb pour chaque pixel non retiré
horizontalement/verticalement.
Exemple : pour une vidéo avec un sous-échantillonnage
chroma 4:2:0, le paramètre devrait être défini à
TID:1,1.
--cb-subsample TID:hori,vert
La quantité de pixels à retirer
dans les canaux Cr et Cb pour chaque pixel non retiré
horizontalement/verticalement. Ceci s'additionne à
--chroma-subsample.
Exemple : pour une vidéo avec un sous-échantillonnage
chroma 4:2:1, le paramètre --chroma-subsample devrait
être défini à TID:1,0 et
Cb-subsample devrait être défini à
TID:1,0.
--chroma-siting TID:hori,vert
Définit comment la chroma est
localisée horizontalement/verticalement. ( 0: non
spécifié, 1: co-localisé en haut, 2:
moitié).
--color-range TID:n
Définit l'écrêtage de
l'intervalle de couleurs ( 0: non spécifié, 1:
intervalle broadcast, 2: intervalle entier (pas
d'écrêtage), 3: défini par
MatrixCoefficients/TransferCharacteristics).
--color-transfer-characteristics TID:n
Les caractéristiques de transfert de la
vidéo.
Les valeurs valides et leur signification sont :
0: réservé, 1: ITU-R BT.709, 2: non
spécifié, 3: réservé, 4: courbe
gamma 2.2, 5: courbe gamma 2.8, 6: SMPTE 170M, 7: SMPTE
240M, 8: linéaire, 9: log, 10: racine de log,
11: IEC 61966-2-4, 12: gamut de couleur étendu ITU-R
BT.1361, 13: IEC 61966-2-1, 14: ITU-R BT.2020 10 bit, 15:
ITU-R BT.2020 12 bit, 16: SMPTE ST 2084, 17: SMPTE ST 428-1;
18: ARIB STD-B67 (HLG)
--color-primaries TID:n
Définit les couleurs primaires de la
vidéo.
Les valeurs valides et leur signification sont :
0: réservé, 1: ITU-R BT.709, 2: non
spécifié, 3: réservé, 4: ITU-R
BT.470M, 5: ITU-R BT.470BG, 6: SMPTE 170M, 7: SMPTE 240M,
8: FILM, 9: ITU-R BT.2020, 10: SMPTE ST 428-1, 22:
phosphores JEDEC P22
--max-content-light TID:n
Définit la brillance maximale d'un
pixel unique (Niveau de Contenu de Lumière Maximal - Maximum Content
Light Level) en candelas par mètre carré (cd/m²). La
valeur de n devrait être un entier non négatif.
--max-frame-light TID:n
Définit la brillance maximale d'une
trame complète unique (Niveau de Contenu de Lumière Maximal -
Maximum Content Light Level) en candelas par mètre carré
(cd/m²). La valeur def ndevrait être un entier non
négatif.
--chromaticity-coordinates
TID:red-x,red-y,green-x,green-y,blue-x,blue-y
Définit les coordonnées de
chromaticité du rouge/vert/bleu définies selon CIE 1931.
--white-color-coordinates TID:x,y
Définit les coordonnées de
chromaticité du blanc définies selon CIE 1931.
--max-luminance TID:float
Définit la luminance maximale en
candelas par mètre carré (cd/m²). La valeur devrait
être inférieure à 9999.99.
--min-luminance TID:float
Définit la luminance minimale en
candelas par mètre carré (cd/m²). La valeur devrait
être inférieure à 999.9999.
--projection-type TID:method
Définit la méthode de projection
vidéo utilisée. Les valeurs valides sont 0 (projection
rectangulaire), 1 (projection équirectangulaire), 2 (projection en
carte cubique) et 3 (projection en treillis).
--projection-private TID:data
Définit des données
privées qui s'appliquent seulement à une projection
spécifique. Les données doivent être fournies en nombres
hexadécimaux avec ou sans le préfixe "0x" avec ou sans
espaces.
--projection-pose-yaw TID:float
Spécifie une rotation en lacet de la
projection.
--projection-pose-pitch TID:float
Spécifie une rotation en tangage de la
projection.
--projection-pose-roll TID:float
Spécifie une rotation en roulis de la
projection.
--field-order TID:n
Définit l'ordre de champ pour la piste
vidéo avec l'ID de piste TID. L'ordre doit être l'un de
ces nombres :
0: progressif ; 1: entrelacé avec le champ du haut
affiché en premier et le champ du haut stocké en premier ;
2: ordre de champ indéterminé ; 6:
entrelacé avec le champ du bas affiché en premier et le champ du
bas stocké en premier ; 9: entrelacé avec le champ du bas
affiché en premier et le champ du haut stocké en premier ;
14: entrelacé avec le champ du haut affiché en premier et
le champ du bas stocké en premier
--stereo-mode TID:n|symbolic-name
Définit le mode stéréo
pour la piste vidéo avec l'ID de piste TID. Le mode peut soit
être un nombre n entre 0 et 14 soit un nom
symbolique. Tous les nombres et noms valides peuvent être listés
avec l'option --list-stereo-modes.
Options ne s'appliquant qu'aux pistes de sous-titres texte
--sub-charset TID:character-setDéfinit le jeu de caractères
pour la conversion vers UTF-8 des sous-titres UTF-8 pour l'ID de piste
donné. Si non spécifié, le jeu de caractères sera
déduit de la « locale » courante. Noter
qu'un jeu de caractères n'est pas requis pour les sous-titres lus
depuis des fichiers Matroska ou des flux Kate, car ils sont toujours
stockés en UTF-8. Voir la section à propos des fichiers texte et
des jeux de caractères pour savoir comment convertit
les jeux de caractères.
Cette option peut être utilisée de multiples fois pour un fichier
source en s'appliquant à plusieurs pistes par sélection de
différents ID de pistes à chaque fois.
Autres options
-i, --identify file-nameLaissera analyser le
fichier unique et rapporter son type, les pistes contenues dans le fichier et
leurs ID de pistes. Si cette option est utilisée, alors la seule autre
option permise est le nom de fichier.
Le format de sortie utilisé pour le résultat peut être
modifié avec l'option --identification-format.
-J file-name
Ceci est un alias pratique pour
"--identification-format json --identify file-name".
-F, --identification-format format
Détermine le format cible
utilisé par l'option --identify. Les formats suivants sont pris en
charge : text (par défaut si cette option n'est pas utilisée) et
json.
--probe-range-percentage percentage
1.Le format text est court et lisible. Il
consiste en une ligne par élément trouvé (conteneur,
pistes, pièces jointes, etc.).
Ce format n'est pas destiné à être analysé. La
sortie sera traduite dans la langue qu' utilise (voir aussi
--ui-language).
2.Le format json génère une
représentation JSON lisible par machine. Ce format suit le
schéma JSON décrit dans le fichier suivant :
mkvmerge-identification-output-schema-v17.json[3]
Toutes les versions du schéma JSON sont disponibles en ligne et dans les
archives publiées du code source.
Les types de fichiers tels que les flux de
programme et de transport MPEG (.vob, .m2ts) nécessite une certaine
quantité de données à examiner afin de détecter
toutes les pistes contenues dans le fichier. Cette quantité est de 0.3%
de la taille du fichier source ou 10 Mo, selon la plus élevée.
Si les pistes sont connues pour être présentes mais non
trouvées, alors le pourcentage à analyser peut être
modifié avec cette option. Un minimum de 10 Mo est requis et ne peut
pas être modifié.
--list-audio-emphasis
Liste tous les nombres valides et leurs noms
symboliques correspondants pour l'option --audio-emphasis option.
--list-languages
Liste toutes les langues et leurs codes ISO
639-2 qui peuvent être utilisées avec l'option
--language.
--list-stereo-modes
Liste tous les nombres valides et leurs noms
symboliques correspondants pour l'option --stereo-mode.
-l, --list-types
Liste les types de fichiers source pris en
charge.
--priority priority
Définit la priorité du processus
exécuté avec . Les valeurs valides sont
'lowest', 'lower', 'normal', 'higher' et 'highest'. Si absente, alors 'normal'
est utilisé. Sur les systèmes Unix, utilisera
la fonction nice(2). Par conséquent, seulement le super
utilisateur peut utiliser 'higher' et 'highest'. Sur Windows, toutes les
valeurs sont utilisables par tous les utilisateurs.
Sélectionner 'lowest' oblige aussi à
sélectionner la priorité E/S ralentie en plus de la
priorité processus la plus petite possible.
--command-line-charset character-set
Définit le jeu de caractères
pour convertir les chaînes données en ligne de commande. C'est
par défaut le jeu de caractères fourni par la
« locale » actuelle du système. Ce
paramètre s'applique aux arguments des options suivantes :
--title, --track-name et --attachment-description.
--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 vers le fichier
file-name plutôt que vers la console. Alors que cela peut
être fait facilement avec la redirection de sortie, il y a des cas dans
lesquels cette option est nécessaire : quand le terminal
réinterprète la sortie avant de l'écrire vers un ficher.
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.
--deterministic seed
Permet la création de fichiers
identiques à l'octet près si la même version de
est utilisée avec les mêmes fichiers source,
le même jeu d'options et la même amorce. Noter que le champ
d'information de segment « date » n'est pas
écrit dans ce mode.
L'amorce peut être une chaîne quelconque, pas
nécessairement un nombre.
L'obtention de fichiers identiques à l'octet près ne peut
être garantie que dans les conditions suivantes :
Utiliser d'autres versions de ou d'autres options en ligne de
commande peut résulter en un fichier identique à l'octet, mais
ce n'est pas garanti.
--debug topic
1.La même version de
construite avec les mêmes versions de libEBML et de
libMatroska est utilisée.
2.Les fichiers source sont identiques
à l'octet près.
3.Les mêmes options en ligne de
commande sont utilisées dans le même ordre (à l'exception
notable de --output ...).
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 fonctionnalités disponibles peut
être demandée avec mkvmerge --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.
@options-file.json
Lit les arguments additionnels de ligne de
commande depuis le fichier options-file. Voir la section fichiers
d'options pour d'autres informations.
--capabilities
Liste les informations à propos des
fonctionnalités optionnelles qui ont été compilées
et quitte. La première ligne de sortie sera l'information de version.
Toutes les lignes suivantes contiennent exactement un mot dont la
présence indique que la fonctionnalité a été
compilée. Ces fonctionnalités sont :
-h, --help
•'FLAC' -- lecture raw FLAC fichiers et
gestion FLAC pistes dans d'autres conteneurs, e.g. Ogg or Matroska.
Affiche les informations d'utilisation et
quitte.
-V, --version
Affiche les informations de version et
quitte.
UTILISATION
Pour chaue fichier, l'utilisateur peut sélectionner quelle pistes devrait prendre. Elles sont toutes mises dans le fichier spécifié avec -o. Une liste des formats source connus (et pris en charge) peut être obtenue avec l'option -l.ORDRE DES OPTIONS
L'ordre dans lequel les options sont saisies est important pour quelques options. Les options appartiennent à deux catégories : 1.Les options qui affectent le programme
globalement et ne sont pas liées à un fichier source. Ce sont en
particulier, mais pas seulement, --command-line-charset,
--output ou --title. Elles peuvent apparaître n'importe
où sur la ligne de commande.
2.Les options qui affectent un fichier source
unique ou une piste unique d'un fichier source. Ces options s'appliquent
toutes au fichier source suivant sur la ligne de commande. Toutes les options
s'appliquant au même fichier source (ou aux pistes du même
fichier source) peuvent être écrites dans un ordre quelconque du
moment qu'elles apparaissent avant ce nom de fichier source. Des exemples pour
des options s'appliquant à un fichier source sont --no-chapters
ou --chapter-charset. Des exemples pour options s'appliquant à
une piste unique sont --default-duration ou --language.
Les options sont traitées de la gauche vers la droite. Si une option
apparaît plusieurs fois dans le même contexte, alors la
dernière sera utilisée. Le titre sera donc défini
à "Autre chose" dans l'exemple suivant :
$ mkvmerge -o output.mkv --title 'This and that' input.avi --title 'Something else'
$ mkvmerge -o output.mkv --language 0:fre français.ogg --language 0:deu deutsch.ogg
EXEMPLES
Supposons un fichier appelé MyMovie.avi et la piste audio dans un fichier séparé , par ex. 'MyMovie.wav'. On veut d'abord encoder l'audio en OggVorbis :$ oggenc -q4 -oMyMovie.ogg MyMovie.wav
$ mkvmerge -o MyMovie-with-sound.mkv MyMovie.avi MyMovie.ogg
$ mkvmerge -o MyMovie-with-sound.mkv -A MyMovie.avi MyMovie.ogg
$ oggenc -q4 -oMyMovie-add-audio.ogg MyMovie-add-audio.wav $ mkvmerge -o MM-complete.mkv MyMovie-with-sound.mkv MyMovie-add-audio.ogg
$ mkvmerge -o MM-complete.mkv -A MyMovie.avi MyMovie.ogg MyMovie-add-audio.ogg
$ mkvmerge --identify outofsync.ogg
$ mkvmerge -o goodsync.mkv -A source.avi -y 12345:200 outofsync.ogg
$ mkvmerge -o goodsync.mkv -y 23456:0,77346/77340 outofsync.mkv
1.extrait un flux de sous-titres brut depuis
la source :
$ tccat -i /path/to/copied/dvd/ -T 1 -L | tcextract -x ps1 -t vob -a 0x20 | subtitle2pgm -o mymovie
2.convertit les images PGM résultantes
en texte avec gocr :
$ pgm2txt mymovie
3.vérifie l'orthographe des fichiers
texte résultants :
$ ispell -d american *txt
4.convertit les fichiers texte en fichier SRT
:
Le fichier résultant peut être utilisé comme fichier source
pour :
$ srttool -s -w -i mymovie.srtx -o mymovie.srt
$ mkvmerge -o mymovie.mkv mymovie.avi mymovie.srt
$ mkvmerge --list-languages
$ mkvmerge -o with-lang-codes.mkv --language 2:ger --language 3:dut without-lang-codes.mkv
$ mkvmerge -o with-lang-codes.mkv --language 2:ger --language 3:dut --default-track-flag 3 without-lang-codes.mkv --language 0:eng english.srt --default-track-flag 0 --language 0:fre french.srt
$ mkvmerge -o no-compression.mkv --compression -1:none MyMovie.avi --compression -1:none mymovie.srt
ID DE PISTES
ID de pistes normales
Quelques unes des options pour nécessitent un ID de piste pour spécifier à quelle piste elles devraient s'appliquer. Ces ID de pistes sont imprimés par les lecteurs lors du démuxage du fichier source actuel., ou si est appelé avec l'option --identify. Un exemple d'une telle sortie :$ mkvmerge -i v.mkv File 'v.mkv': container: Matroska Track ID 0: video (V_MS/VFW/FOURCC, DIV3) Track ID 1: audio (A_MPEG/L3)
•Les fichiers AVI : la piste
vidéo a l'ID 0. Les pistes audio ont leurs ID par ordre croissant et
débutant à 1.
•Fichiers AAC, AC-3, MP3, SRT et WAV :
la piste une de ce fichier prend l'ID 0.
•La plupart des autres fichiers : les
ID de pistes sont assignées dans l'ordre des pistes dans le fichiers en
débutant à 0.
Les options qui utilisent les ID de pistes sont celles dont la description
contient 'TID'. Les options suivantes utilisent aussi des ID de pistes :
--audio-tracks, --video-tracks, --subtitle-tracks,
--button-tracks and --track-tags.
ID de pistes spéciales
Il existe plusieurs ID qui ont une signification spéciale et qui n'apparaissent pas lors de l'identification. L'ID de piste spéciale ' -1' est un joker et applique le commutateur donné à toutes les pistes qui sont lues depuis un fichier source. L'ID de piste spécial « -2 » fait référence aux chapitres d'un fichier source. Actuellement seule l'option --sync utilise cet ID spécial. Comme alternative à --sync -2:..., l'option --chapter-sync ... peut être utilisée.FICHIERS TEXTE ET CONVERSIONS DE JEUX DE CARACTÈRES
Introduction
Tout le texte dans un fichier Matroska est encodé en UTF-8. Cela signifie que doit convertir chaque fichier texte lu et chaque texte donné sur la ligne de commande d'un jeu de caractères en UTF-8. En corollaire, cela signifie aussi que la sortie de doit être convertie d'UTF-8 vers ce jeu de caractères, par ex. si une traduction autre qu'Anglaise est utilisée avec --ui-language ou pour un texte provenant d'un fichier Matroska. effectue cette conversion automatiquement d'après la présence d'un marqueur d'ordre d'octet (byte order marker, soit : BOM) ou la « locale » du système. Le jeu de caractères déduit de la « locale » dépend du système d'exploitation sur lequel est exécuté .Marqueur d'ordre d'octet (byte order markers ou BOM)
Les fichiers texte qui débutent avec un BOM sont déjà encodés avec une des représentations UTF. prend en charge les cinq modes suivant : UTF-8, UTF-16 Little et Big Endian, UTF-32 Little et Big Endian. Les fichiers texte avec un BOM sont automatiquement convertis en UTF-8. Tout paramètre qui autrement définirait le jeu de caractères pour un tel fichier (par ex. --sub-charset) est silencieusement ignoré.Linux et les systèmes de type Unix incluant macOS
Sur les systèmes de type Unix utilise l'appel système setlocale(3) qui à son tour utilise les variables d'environnement LANG, LC_ALL et LC_CYPE. Le jeu de caractères résultant est souvent un de la famille UTF-8 ou ISO-8859-* et est utilisé pour toutes les opérations de fichier texte, pour l'encodage des chaînes sur la ligne de commande et pour la sortie vers la console.Windows
Sur Windows, le jeu de caractères par défaut utilisé pour convertir les fichiers texte est déterminé par un appel au système d'appel GetACP(). La lecture de la ligne de commande est effectuée avec la fonction GetCommandLineW() qui retourne déjà une chaîne Unicode. Par conséquent l'option --command-line-charset est ignorée sur Windows. La sortie vers la console consiste en trois scénarios : 1.Si la sortie est redirigée avec
l'option --redirect-output, alors le jeu de caractères par
défaut est UTF-8. Ceci peut être modifié avec
--output-charset.
2.Si la sortie est redirigée avec
cmd.exe elle-même, par ex. avec mkvinfo file.mkv > info.txt,
alors le jeu de caractères est toujours UTF-8 et ne peut pas
être modifié.
3.Sinon (à l'écriture directe
vers la console) la fonction Windows WriteConsoleW() est
utilisée et l'option --output-charset est ignorée. La
console devrait être capable de sortir tous les caractères
Unicode pour lesquels la prise en charge de la langue correspondante est
assurée (par ex. les caractères Chinois ne devraient pas
être affichés sur les versions Anglaises de Windows).
Options de ligne de commande
Les options suivantes existent et permettent de spécifier les jeux de caractères :•--sub-charset pour les fichiers
de sous-titres texte et les pistes de sous-titres texte stockées dans
des formats de conteneurs pour lesquels le jeu de caractères ne peut
pas être déterminé sans ambiguïté (par ex.
les fichiers Ogg),
•--chapter-charset pour les
fichiers texte de chapitres et pour les chapitres et titres de fichiers
stockés dans des formats de conteneur pour lesquels le jeu de
caractères ne peut pas être déterminé sans
ambiguïté (par ex. les fichiers Ogg pour les informations de
chapitres, les pistes et titres de fichiers etc. ; les fichiers MP4 pour les
informations de chapitres),
•--command-line-charset pour
toutes les chaînes sur la ligne de commande,
•--output-charset pour toutes
les chaînes écrites vers la console ou vers un fichier si la
sortie a été redirigée avec l'option
--redirect-output. Sue les système non Windows, le jeu de
caractères par défaut pour la sortie est celui actuel du
système. Sur Windows c'est par défaut UTF-8 pour la redirection
avec --redirect-output et avec cmd.exe elle-même, par ex.
mkvinfo file.mkv > info.txt.
FICHIERS DOPTIONS
Un fichier d'options est un fichier où peut lire des arguments en ligne de commande supplémentaires. Ce peut être utilisé pour contourner certaines limitations du shell ou du système d'exploitation à l'exécution de programmes externes comme une longueur de ligne de commande limitée. Un fichier d'option contient des données formatées en JSON. Son contenu doit être un tableau valide JSON comprenant seulement des chaînes JSON. L'encodage du fichier doit être UTF-8. Le fichier ne devrait pas débuter avec un marquer d'ordre d'octet (BOM), mais si c'est le cas, il sera ignoré. Les règles pour échapper les caractères spéciaux en JSON sont celles de la spécification JSON officielle, RFC 7159[4]. Le nom de fichier d'option lui-même doit être spécifié comme argument en ligne de commande et préfixé du caractère '@'. La ligne de commande ' mkvmerge -o "my file.mkv" -A "a movie.avi" sound.ogg' pourrait être convertie en le fichier d'options JSON suivant nommé par ex. 'options.json' :[ "-o", "c:\\Matroska\\my file.mkv", "--title", "#65", "-A", "a movie.avi", "sound.ogg" ]
LIAGE DE FICHIERS
Matroska prend en charge le liage de ficher qui indique simplement qu'un fichier spécifique est le prédécesseur ou successeur du fichier courant. Précisément, ce ne sont pas les fichiers qui sont liés mais les segments Matroska. Comme la plupart des fichiers ne contiendront probablement qu'un segment Matroska, les explications suivantes utilisent l'expression « liage de ficher » bien que « liage de segment » serait plus appropriée. Chaque segment est identifié par un UID de segment unique large de 128 bit. Cet UID est automatiquement généré par . Le liage est principalement réalisé en plaçant les UID de segment (abrévié en : SID) du fichier précédent/suivant dans les informations d'entête de segment. mkvinfo(1) affiche ces SID s'il les trouve. Si un fichier est scindé en plusieurs plus petits et le liage est utilisé, alors les horodatages ne recommenceront pas à 0 mais vont continuer où ils se sont terminés dans le dernier fichier. Comme cela le temps absolu est conservé même si les fichiers précédents ne sont pas disponibles (par ex. en diffusion de flux). En l'absence de liage, les horodatages devraient commencer à 0 pour chaque fichier. Par défaut n'utilise pas le liage de fichier. Pour l'utiliser, il faut l'activer avec l'option --link. Cette option est seulement utile si la scission est aussi activée. Que la scission soit active ou pas, l'utilisateur peut indiquer à de lier les fichiers produits à des SID spécifiques. Cela est obtenu avec les options --link-to-previous et --link-to-next. Ces options acceptent un segment SID dans le format que mkvinfo(1) génère : 16 nombres hexadécimaux entre 0x00 et 0xff chacun préfixé avec '0x', par ex. '0x41 0xda 0x73 0x66 0xd9 0xcf 0xb2 0x1e 0xae 0x78 0xeb 0xb4 0x5e 0xca 0xb3 0x93'. Une forme raccourcie peut aussi être utilisée : 16 nombres hexadécimaux entre 0x00 et 0xff sans le préfixe '0x' et sans les espaces, par ex. '41da7366d9cfb21eae78ebb45ecab393'. Si la scission est utilisée, alors le premier fichier est lié au SID donné avec --link-to-previous et le dernier fichier est lié au SID donné avec --link-to-next. Si la scission n'est pas utilisée, alors le fichier cible unique sera lié aux deux SIDs.VALEURS PAR DÉFAUT
La spécification Matroska dicte que certains éléments possèdent une valeur par défaut. Habituellement un élément n'est pas écrit vers le fichier si sa valeur est égale à la valeur par défaut afin de gagner de l'espace. Les éléments que l'utilisateur pourraient manquer dans la sortie de mkvinfo(1) sont les éléments langue et l'indicateur de piste par défaut. La valeur par défaut de la language est English ('eng'), et la valeur par défaut de l'indicateur de piste par défaut est true. Par conséquent, si --language 0:eng est utilisé pour une piste, alors il ne sera pas affiché dans la sortie de mkvinfo(1).PIÈCES JOINTES
Peut-être l''utilisateur veut-il conserver quelques photos avec le fichier Matroska, ou utiliser des sous-titres SSA avec une police de caractères TrueType spéciale qui est vraiment rare. Dans ces cas-là, il faut joindre ces fichiers (= pièces) au fichier Matroska. Ils ne vont pas seulement y être ajoutés, mais aussi embarqués. Un lecteur pourra alors afficher ces fichiers (cas des photos) ou les utiliser pour rendre les sous-titres (cas des polices TrueType). Voici un exemple comment joindre une photo et une police TrueType au fichier cible :$ mkvmerge -o output.mkv -A video.avi sound.ogg \ --attachment-description "Me and the band behind the stage in a small get-together" \ --attachment-mime-type image/jpeg \ --attach-file me_and_the_band.jpg \ --attachment-description "The real rare and unbelievably good looking font" \ --attachment-mime-type application/octet-stream \ --attach-file really_cool_font.ttf
CHAPITRES
Le système de chapitres de Matroska est plsu évolué que le vieux système utilisé par les fichiers OGM. Les spécifications complètes peuvent être trouvées sur le site Web Matroska[1]. prend en charge 2 sortes de fichiers de chapitres comme source. Le 1er format, appelé « simple format de chapitres », est le même format que les outils OGM utilisent. Le 2nd format est une format de chapitres en XML qui prend en charge toutes les fonctionnalités de chapitres de Matroska. En plus des fichiers de chapitres tels quels, peut aussi lire les chapitres d'autres formats de fichiers (par ex. MP4, Ogg, Blu-ray ou DVD).Le format de chapitres simple
Ce format consiste en paires de lignes qui débutent avec 'CHAPTERxx=' et 'CHAPTERxxNAME=' respectivement. La première contient l'horodatage de départ tandis que la seconde contient le titre. Voici un exemple :CHAPTER01=00:00:00.000 CHAPTER01NAME=Intro CHAPTER02=00:02:30.000 CHAPTER02NAME=Baby prepares to rock CHAPTER03=00:02:42.300 CHAPTER03NAME=Baby rocks the house
Le format de chapitres basé sur XML
Le format de chapitres basé sur XML ressemble à cet 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>A short chapter</ChapterString> <ChapterLanguage>eng</ChapterLanguage> </ChapterDisplay> <ChapterAtom> <ChapterTimeStart>00:00:46.000</ChapterTimeStart> <ChapterTimeEnd>00:01:10.000</ChapterTimeEnd> <ChapterDisplay> <ChapterString>A part of that short chapter</ChapterString> <ChapterLanguage>eng</ChapterLanguage> </ChapterDisplay> </ChapterAtom> </ChapterAtom> </EditionEntry> </Chapters>
1.L'horodatage de fin de chapitre peut
être défini,
2.les chapitres peuvent être
imbriqués,
3.la langue et le pays peuvent être
définis.
La distribution mkvtoolnix contient quelques fichiers d'échantillon dans
le sous-dossier doc qui peuvent être utilisés comme point de
départ.
La liste suivante montre les balises XML reconnues, leurs types de
données et, quand approprié, la plage valide pour leurs valeurs.
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)
Lecture des chapitres de Blu-ray
peut lire les chapitres de Blu-ray non protégés. Pour cela, il faut utiliser le chemin d'une des listes de lecture MPLS avec le paramètre --chapters. Exemple : --chapters /srv/blurays/BigBuckBunny/BDMV/PLAYLIST/00001.mplsLecture des chapitres des DVD
Quand MKVToolNix est compilé avec la bibliothèque libdvdread, peut lire les chapitres de DVD. Pour cela il faut utiliser le chemin d'un des dossiers ou fichiers sur le DVD avec le paramètre --chapters. Comme un DVD peut posséder plus d'un titre et que chaque titre a son propre ensemble de chapitres, il est possible d'ajouter un double point suivi du numéro de titre désiré à la fin de l'argument de nom de fichier. Le numéro de titre par défaut est 1. Exemple : --chapters /srv/dvds/BigBuckBunny/VIDEO_TS:2Notes générales
En scindant des fichiers, ajustera correctement aussi les chapitres. Cela signifie que chaque fichier inclue seulement les entrées de chapitres qui s'y appliquent, et que les horodatages seront décalés pour correspondre aux nouveaux horodatages de chaque fichier cible. est capable de copier des chapitres de fichiers sources Matroska à moins que cela soit explicitement désactivé avec l'option --no-chapters. Les chapitres de tous les fichiers sources (fichiers Matroska, fichiers Ogg, fichiers MP4, fichiers texte de chapitres) ne sont habituellement pas fusionnés mais laissés séparés en ChapterEditions. C'est seulement si les chapitres sont lus depuis plusieurs fichiers Matroska ou XML qui partagent les mêmes UID d'édition que les chapitres seront fusionnés en un unique ChapterEdition. Si cette fusion est aussi souhaitée dans d'autres situations, alors l'utilisateur devra d'abord extraire les chapitres de toutes les sources avec mkvextract(1), fusionner les fichiers XML manuellement et enfin les multiplexer.BALISES
Introduction
Le système de balises Matroska est similaire à celui des autres conteneurs : un ensemble de paires KEY=VALUE. Cependant, dans Matroska ces balises peuvent aussi être imbriquées, et KEY et VALUE des éléments à eux seuls. Le fichier d'exemple example-tags-2.xml montre comment utiliser ce système.Portée des balises
Les balises Matroska ne sont pas appliquées auto. au fichier complet. C'est possible, mais elles peuvent aussi être appliquées à différentes parties du fichier : à une ou plusieurs pistes, à un ou plusieurs chapitres, voire à une combinaison des deux. La spécification Matroska[5] donne plus de détails sur cet état de fait. Un fait important est que les balises sont liées aux pistes ou aux chapitres avec l'élément balise Matroska Targets, et que les UID utilisés pour ce liage ne sont pas les ID de pistes que utilise partout. Les numéros utilisés sont plutôt les UID que calcule automatiquement (si la piste est issue d'un format de fichier autre que Matroska) ou qui sont copiés du fichier source si la piste du fichier source est un fichier Matroska. Par conséquent il est difficile de savoir quels UID utiliser dans le fichier de balises avant que le fichier soit pris en charge par . reconnaît deux options aveclesquelles on peut ajouter des balises aux fichiers Matroska : les --global-tags et the --tags. Le différence est que la première, --global-tags, fera les balises s'appliquer au fichier complet en retirant tous ces éléments Targets mentionnés plus haut. La dernière option, --tags, insérera automatiquement l'UID que génère pour la balise spécifiée avec la partie TID de l'option --tags.Exemple
Disons qu'on veut ajouter des balises à une piste vidéo lue depuis un fichier AVI. mkvmerge --identify file.avi indique que cet ID de piste vidéo (à ne pas confondre avec les UID !) est 0. À partir de là, on peut créer le fichier de balises en laissant tous les éléments Targetset appeler :$ mkvmerge -o file.mkv --tags 0:tags.xml file.avi
Format de fichier de balises
prend en charge un format de fichier balises en XML. Le format est très proche de la spécification Matroska[5]. Les distributions de binaires et sources de MKVToolNix contiennent un échantillon de fichier appelé example-tags-2.xml qui liste simplement toutes les balises connues et qui peut être utilisé comme base pour des fichiers balises réels. Les bases sont :•L'élément le plus
externes doit être <Tags>.
•Une balise logique est contenue
à l'intérieur d'une paire de balises XML <Tag>.
•Les espaces blancs avant et
après le contenu d'une balise sont ignorées.
Types de données
Le nouveau système de balises Matroska reconnaît seulement deux types de données, une chaîne UTF-8 et un type binaire. Le premier est utilisé pour le nom de balise et l'élément <String> tandis que le type binaire est utilisé pour l'élément <Binary>. Comme les données binaires ne peuvent pas être stockées dans un fichier XML, prend en charge deux autres méthodes pour les stocker. Si le contenu d'une balise XML débute avec '@', alors le texte suivant est traité comme un nom de fichier. Le contenu du fichier correspondant est copié dans l'élément Matroska. Sinon les données sont attendues encodées en Base64. C'est un encodage qui transforme les données binaires en un jeu limité de caractères ASCII et qui est utilisé par ex. dans les programmes de courriels. mkvextract(1) sortira des données encodées en Base64 pour les éléments binaires. Le système de balises obsolète reconnaît d'autres types de données qui peuvent être retrouvés dans les spécifications de balises Matroska. Comme ne prend plus en charge ce système, ces types ne sont pas décrits ici.Balises connues pour le format de fichier XML
La liste suivante montre les balises XML reconnues, leurs types de données et, quand approprié, la plage valide pour leurs valeurs.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)
INFORMATIONS DE SEGMENT
Avec un fichier XML d'informations de segment, il est possible de définir certaines valeurs dans le champ d'entête d'"informations de segment" d'un fichier Matroska. Toutes ces valeurs ne peuvent pas être définies par d'autres options en ligne de commande. D'autres champs d'entête d'"informations de segment" peuvent être définis via les options en ligne de commande mais pas via le fichier XML. Ceci inclue par ex. les options --title et --timestamp-scale. Il existe d'autres éléments qui ne peuvent être définis ni par des options en ligne de commande ni par les fichiers XML. Ceux-ci incluent les éléments suivants : DateUTC (aussi connu en "muxing date"), MuxingApp, WritingApp et Duration. Ils sont toujours définis par lui-même. La liste suivante montre les balises XML reconnues, leurs types de données et, quand approprié, la plage valide pour leurs valeurs.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)
DISPOSITION DUN FICHIER MATROSKA
La disposition d'un fichier Matroska est assez flexible. rendra un fichier de manière prédéfinie. Le fichier résultant ressemble à ceci : [EBML head] [segment {meta seek #1} [segment information] [track information] {attachments} {chapters} [cluster 1] {cluster 2} ... {cluster n} {cues} {meta seek #2} {tags}] Les éléments entre accolades sont facultatifs et dépendent des contenus et des options utilisées. Quelques remarques :•meta seek #1 inclut seulement un petit
nombre d'éléments de niveau 1, et seulement s'ils existent
réellement : pièces jointes, chapitres, points de montage,
balises, meta seek #2. D'anciennes versions de
plaçaient aussi les grappes dans cet élément meta seek.
Par conséquent, il était nécessaire de deviner de
manière imprécise combien et assez d'espace à
réserver. Cela échouait souvent. Maintenant, seules les grappes
sont stockées dans meta seek #2, et meta seek #1 se
réfère à l'élément meta seek #2.
•Les éléments de
pièces jointes, de chapitres et de balises sont seulement
présents s'ils ont été ajoutés.
Le fichier Matroska le plus petit possible devrait ressembler à ceci :
[EBML head] [segment [segment information] [track information] [cluster 1]]
Ceci devrait être le cas pour les fichiers audio seuls.
FICHIERS EXTERNES DHORODATAGE
permet lui-même à l'utilisateur de choisir l'horodatage d'une piste spécifique. Ceci peut être utilisé pour créer des fichiers avec une vidéo à débit de trames variable ou inclure des blancs dans l'audio. une trame dans ce cas est l'unité que crée séparément par bloc Matroska. Pour la vidéo c'est exactement une trame, pour l'audio c'est un paquet du type audio spécifique. Par ex. pour AC-3, cela serait un paquet contenant 1536 échantillons. Les fichiers d'horodatage qui sont utilisés quand des pistes sont ajoutées l'une à l'autre doivent seulement être spécifiés pour la première partie dans une chaîne de pistes. Par ex., pour ajouter deux fichiers, v1.avi et v2.avi, et utiliser les horodatages, alors la ligne de commande ressemblera à ceci :$ mkvmerge ... --timestamps 0:my_timestamps.txt v1.avi +v2.avi
Format de fichier d'horodatage v1
Ce format débute avec la ligne de version. La seconde ligne déclare le nombre par défaut de de trames par seconde. Toutes les lignes suivantes contiennent trois chiffres séparés par une virgule : la trame de début ( 0 est la première), la trame de fin et le nombre de trames dans cette plage. Le nombre de FPS est un nombre flottant avec un point '.' comme séparateur décimal. Les plages peuvent contenir des blancs pour lesquels le FPS par défaut est utilisé. Un exemple :# format d'horodatage v1 suppose 27.930 800,1000,25 1500,1700,30
Format de fichier d'horodatage v2
Dans ce format chaque ligne contient un horodatage pour la trame correspondante. Cet horodatage doit être donné en précision à la milliseconde. Cela peut être un nombre flottant, sans obligation. Il faut fournir au moins autant d'horodatage qu'il y a de trames dans la piste. Les horodatages de ce fichier doivent être triés. Exemple pour 25fps :# format d'horodatage v2 0 40 80
Format de fichier d'horodatage v3
Dans ce format chaque ligne contient une durée en secondes suivie par un nombre facultatif de trames par seconde. Les deux peuvent être des nombres flottants. Si le nombre de trames par seconde n'est pas présent, celui par défaut est utilisé. Pour l'audio il est préférable de laisser le codec calculer les horodatages de trames lui-même. Pour cela on devrait utiliser 0.0 comme nombre de trames par seconde. Il est aussi possible de créer des blancs dans le flux en utilisant les mot clé 'gap' suivi par la durée de ce blanc. Exemple pour un fichier audio :# format d'horodatage v3 suppose 0.0 25.325 7.530,38.236 blanc, 10.050 2.000,38.236
Format de fichier d'horodatage v4
Ce format esr identique au format v2. La seule différence est que les horodatages n'ont pas à être triés. Ce format ne devrait presque jamais être utilisé.CODES DE FERMETURE
quitte avec l'un de ces trois codes de fermeture :•0 -- Ce code de sortie signifie
que le multiplexage s'est correctement terminé.
•1 -- Dans ce cas
a émis au moins un avertissement, mais le
multiplexage s'est poursuivi. une avertissement est préfixé avec
le texte 'Avertissement :'. Selon les problèmes le fichier
résultant pourrait être OK ou pas. Il est fortement
recommandé à l'utilisateur de vérifier l'avertissement et
le fichier résultant.
•2 -- Ce code de fermeture est
utilisé après la survenue d'une erreur.
abandonne juste après l'émission du message d'erreur. Les
messages d'erreur vont des arguments erronés en ligne de commande aux
erreurs de lecture/écriture en passant par les fichiers
corrompus.
VARIABLES DENVIRONMENT
utilise les variables par défaut qui déterminent la « locale » du système (par ex. LANG et la famille LC_*). Variables additionnelles : MKVMERGE_DEBUG, MKVTOOLNIX_DEBUG et sa forme courte MTX_DEBUGLe contenu est traité comme s'il a
été passé via l'option --debug.
MKVMERGE_ENGAGE, MKVTOOLNIX_ENGAGE et sa forme courte
MTX_ENGAGE
Le contenu est traité comme s'il a
été passé via l'option --engage option.
VOIR AUSSI
mkvinfo(1), mkvextract(1), mkvpropedit(1), mkvtoolnix-gui(1)WWW
La dernière version peut toujours être trouvée à la page d'accueil de MKVToolNix[6].AUTEUR
Moritz Bunkus <[email protected]>Développeur
NOTES
- 1.
- site Web Matroska
- 2.
- la page d’accueil IANA
- 3.
- mkvmerge-identification-output-schema-v17.json
- 4.
- RFC 7159
- 5.
- spécification Matroska
- 6.
- la page d'accueil de MKVToolNix
2023-02-12 | MKVToolNix 74.0.0 |