MKVPROPEDIT(1) Commandes utilisateur MKVPROPEDIT(1) NOM mkvpropedit - Modifier les proprietes des fichiers Matroska(TM) existants sans un remixage complet RESUME mkvpropedit [options] {source-filename} {actions} DESCRIPTION Ce logiciel analyse un fichier Matroska(TM) existant et modifie quelques unes de ses proprietes. Ensuite, il ecrit ces modifications dans le fichier existant. Parmi les proprietes qui peuvent etre modifiees figurent les elements d'informations de segment (par ex. le titre) et les entetes de piste (par ex. le code langue, l'indicateur << Piste par defaut >> ou le nom). Options : -l, --list-property-names Liste tous les noms de propriete connus et editables, leur type (chaine, entier, booleen, etc.) et une courte description. Apres quoi le logiciel quitte. Par consequent, le parametre source-filename n'a pas a etre fourni. -p, --parse-mode mode Definit le mode d'analyse. Le parametre 'mode' peut soit etre 'fast' (aussi par defaut) ou 'full'. Le mode 'fast' n'analyse pas le fichier entier mais utilise les elements de positionnement meta pour situer les elements necessaires d'un fichier source. Dans 99% des cas, cela est suffisant. Mais pour les fichiers qui ne contiennent pas d'elements de positionnement meta ou qui sont endommages, l'utilisateur devrait definir le mode d'analyse 'full'. L'analyse complete d'un fichier peut prendre plusieurs minutes alors qu'une analyse rapide ne prend que quelques secondes. Actions relatives aux pistes et proprietes d'informations de segment : -e, --edit selecteur Definit la section de fichier Matroska(TM) (informations de segment ou certaines entetes de piste) sur lesquelles operent toutes les actions add, set et delete. Celle option peut etre utilisee de multiples fois afin de modifier plus d'un element. Par defaut mkvpropedit(1) editera la section d'informations de segment. Voir la section selecteurs d'edition pour une description complete de la syntaxe. -a, --add name=value Ajoute une propriete name avec la valeur value. La propriete sera ajoutee meme si une telle propriete existe deja. Note : la plupart des proprietes sont uniques et ne peuvent survenir plus d'une fois. -s, --set name=value Definit toutes les occurrences de la proprete name a la valeur value. Si une telle propriete n'existe pas, alors elle sera ajoutee. -d, --delete name Supprime toutes les occurrences de lapropriete name. Note : quelques proprietes sont requises et ne peuvent etre supprimees. Actions relatives aux balises et chapitres : -t, --tags selector:filename Ajoute ou remplace des balises dans le fichier avec ceux de filename ou les retire si filename est vide. mkvpropedit(1) lit les memes formats de balises XML que mkvmerge(1). Le selecteur doit etre l'un de ces mots all, global ou track. pour all mkvpropedit(1) remplacera ou retirera toutes les balises d'un fichier. Avec global seules les balises globales seront remplacees ou retirees. Avec track mkvpropedit(1) remplacera les balises pour une piste specifique. De plus les balises lues depuis filename seront assignees a la meme piste. La piste est specifiee comme les selecteurs d'edition sont specifies (voir ci-dessous), par ex. --tags track:a1:new-audio-tags.xml. --add-track-statistics-tags Calcule les statistiques pour toutes les pistes dans un fichier et ajoute des balises de statistiques pour elles. Si le fichier contient deja de telles balises, alors elles seront mises a jour. --delete-track-statistics-tags Supprime toutes les balises de statistiques de pistes du fichier. Si le fichier n'en contient pas, alors il ne sera pas modifie. -c, --chapters filename Ajoute ou remplace des chapitres dans le fichier avec ceux de filename ou les retire si filename est vide. mkvpropedit(1) lit les memes formats de chapitres XML et simples que mkvmerge(1). Actions sur les pieces jointes : --add-attachment filename Ajoute une nouvelle piece jointe depuis filename. Si l'option --attachment-name a ete utilisee avant cette option, alors sa valeur est utilisee comme nouveau nom de piece jointe. Sinon il est derive de filename. Si l'option --attachment-mime-type a ete utilisee avant cette option, alors sa valeur est utilisee comme nouveau type MIME de piece jointe. Sinon il est auto-detecte depuis le contenu de filename. Si l'option --attachment-description a ete utilisee avant cette option, alors sa valeur est utilisee comme nouvelle description de piece jointe. Sinon aucune description ne sera definie. Si l'option --attachment-uid a ete utilisee avant cette option, alors sa valeur est utilisee comme nouvel UID de piece jointe. Sinon un UID aleatoire sera genere automatiquement. --replace-attachment selector:filename Remplace une ou plusieurs pieces jointes qui correspondent au selector avec le fichier filename. S'il existe plus d'une correspondance avec selector, alors tous leurs contenus seront remplaces par le contenu de filename. Le selecteur peut avoir une de 4 formes possibles qui sont expliquees ci-dessous dans la section selecteurs de piece jointe. Si l'option --attachment-name a ete utilisee avant cette option, alors sa valeur est definie comme nouveau nom pour chaque piece jointe modifiee. Sinon les noms ne sont pas modifies. Si l'option --attachment-mime-type a ete utilisee avant cette option, alors sa valeur est definie comme nouveau type MIME pour chaque piece jointe modifiee. Sinon les types MIME ne sont pas modifies. Si l'option --attachment-description a ete utilisee avant cette option, alors sa valeur est definie comme nouvelle description pour chaque piece jointe modifiee. Sinon les descriptions ne sont pas modifiees. Si l'option --attachment-uid a ete utilisee avant cette option, alors sa valeur est definie comme nouvel UID pour chaque piece jointe modifiee. Sinon les UID ne sont pas modifies. --update-attachment selector Definit les proprietes d'une piece jointe ou plus qui correspond a selector. Si plus d'une piece jointe existante correspond a selector alors toutes leurs proprietes seront mises a jour. Le selecteur peut avoir une de 4 formes possibles qui sont expliquees ci-dessous dans la section selecteurs de piece jointe. Si l'option --attachment-name a ete utilisee avant cette option, alors sa valeur est definie comme nouveau nom pour chaque piece jointe modifiee. Sinon les noms ne sont pas modifies. Si l'option --attachment-mime-type a ete utilisee avant cette option, alors sa valeur est definie comme nouveau type MIME pour chaque piece jointe modifiee. Sinon les types MIME ne sont pas modifies. Si l'option --attachment-description a ete utilisee avant cette option, alors sa valeur est definie comme nouvelle description pour chaque piece jointe modifiee. Sinon les descriptions ne sont pas modifiees. Si l'option --attachment-uid a ete utilisee avant cette option, alors sa valeur est definie comme nouvel UID pour chaque piece jointe modifiee. Sinon les UID ne sont pas modifies. --delete-attachment selector Supprime une piece jointe ou plus qui correspond a selector. Le selecteur peut avoir une de 4 formes possibles qui sont expliquees ci-dessous dans la section selecteurs de piece jointe. Options pour les actions sur les pieces jointes : --attachment-name name Definit le nom a utiliser pour l'operation suivante --add-attachment ou --replace-attachment. --attachment-mime-type mime-type Definit le type MIME a utiliser pour l'operation suivante --add-attachment ou --replace-attachment. --attachment-description description Definit la description a utiliser pour l'operation suivante --add-attachment ou --replace-attachment. --enable-legacy-font-mime-types Active l'utilisation des anciens types MIME pour certains types de pieces jointes de polices de caracteres. Par ex., << application/x-truetype-font >> sera utilise pour les polices TrueType au lieu de << fonts/ttf >>. Ceci affecte l'ajout de nouvelles pieces jointes et le remplacement de celles existantes, mais seulement si le nouveau type MIME n'est pas specifie. Les autres pieces jointes ne sont pas modifiees. Les types MIME affectes sont << font/sfnt >>, << font/ttf >> et << font/collection >>. Ils sont tous remplaces par << application/x-truetype-fonts >>. << font/otf >> est remplace par << application/vnd.ms-opentype >>. Autres options : --disable-language-ietf Normalement quand l'utilisateur demande des modifications a la propriete d'entete de piste << language >>, mkvpropedit(1) applique les memes modifications au nouvel element d'entete de piste LanguageIETF en plus de l'element traditionnel Language. Si cette option est utilisee, la modification s'applique seulement a l'element traditionnel Language. Cette option n'affecte pas les modifications demandees via la propriete d'entete de piste << language-ietf >>. --normalize-language-ietf mode Active la normalisation de toutes les etiquettes de langue IETF BCP 47 soit en leur forme canonique avec le mode 'canonique', soit en leur forme de sous-etiquettes de langue etendue avec le mode 'extlang' soit en le desactivant avec le mode 'off'. Par defaut la normalisation en forme canonique est appliquee. Dans la forme canonique, toutes les sous-etiquettes avec des valeurs preferees existantes sont remplacees par ces dernieres. Ceci convertit par ex. 'zh-yue-jyutping' en 'yue-jyutping' ou 'fr-FX' en 'fr-FR'. Pour la forme des sous-etiquettes de langue etendue, la forme canonique est d'abord construite. Ensuite toutes les langues primaires pour lesquelles des etiquettes de langue etendue existent sont remplacees par cette sous-etiquettes de langue etendue et son prefixe. 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-etiquette de langue etendue. Cette normalisation est seulement appliquee aux elements reellement modifies : o En edition des entetes de pistes, seuls les elements de langues de pistes definis par d'edition des specifications sont affectes. Les langues de pistes qui ne sont pas editees ne sont pas modifiees. Editer une piste en definissant seulement des proprietes autres que la langue n'affectera pas cette langue non plus. o En edition de chapitres, tous les elements de langues de tous les elements de chapitres sont affectes parce que tous les chapitres existants sont toujours entierement remplaces. o En edition d'etiquettes, seuls les elements de langues des etiquettes reellement remplaces sont affectes. Par exemple, en remplacant les etiquettes globales les etiquettes de pistes existantes ne sont pas affectees. La meilleure solution pour normaliser toutes les etiquettes existantes d'un fichier est de le remixer avec mkvmerge(1) en definissant son option << --normalize-language-ietf >> selon le mode souhaite. --command-line-charset character-set Definit le jeu de caracteres utilise pour la conversion des chaines fournies en ligne de commande. Par defaut, celui-ci correspond a celui donne par la << locale >> du systeme. --output-charset character-set Definit le jeu de caracteres dans lequel les chaines en sortie sont converties. Par defaut, celui-ci correspond a celui donne par la << locale >> du systeme. -r, --redirect-output file-name Ecrit tous les messages vers le fichier file-name plutot que vers la console. Bien que ceci puisse etre realise facilement en redirection de sortie, il y a des cas dans lesquels cette option est requise : quand le terminal reinterprete la sortie avant de l'ecrire vers un fichier. Le jeu de caracteres defini avec --output-charset est honore. --ui-language code Force les traductions pour la langue code a utiliser (par ex. 'fr_FR' pour les traductions francaises). Saisir 'list' comme code obligera le logiciel a generer la liste des traductions disponibles. --abort-on-warnings Demande au programme d'abandonner apres le premier avertissement. Le code de fermeture sera egal a 1. --debug topic Activer le debogage pour une fonctionnalite specifique. Cette option est utile uniquement pour les developpeurs. --engage feature Active les fonctionnalites experimentales. Une liste des fonctionnalites disponibles peut etre demandees avec mkvpropedit --engage list. Ces fonctionnalites ne devraient pas etre utilisees en situations normales. --gui-mode Active l'interface graphique utilisateur. Dans ce mode, des lignes specialement formatees peuvent etre generees et informer une GUI de la situation. Ces messages suivent le format '#GUI#message'. Le message peut etre suivi d'une paire cle/valeur comme '#GUI#message#key1=value1#key2=value2...'. Ni les messages ni les cles ne sont traduits, et sont toujours generes en anglais. -v, --verbose Mode verbeux qui affiche tous les elements Matroska(TM) importants a 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 supplementaires en ligne de commande depuis le fichier options-file. Pour une explication complete sur les formats pris en charge pour de tels fichiers, voir la section nommee << Fichiers d'options >> sur la page man de mkvmerge(1). SELECTEURS DEDITION L'option --edit definit la section de fichier Matroska(TM) (informations de segment ou certaines entetes de pistes) sur lesquelles operent toutes les actions add, set et delete. Ceci reste valide jusqu'a temps que l'option suivante --edit soit trouvee. L'argument de cette option est appele le selecteur d'edition. Par defaut mkvpropedit(1) editera la section d'informations de segment. Informations de segment L' information de segment peut etre selectionnee avec de ces trois mots : 'info', 'segment_info' ou 'segmentinfo'. Il contient des proprietes comme le titre de segment ou l'UID de segment. Entetes de piste Les entetes de pistes peuvent etre selectionnees avec un selecteur un peu plus complexe. Toutes les variations debutent avec 'track:'. Les proprietes d'entete de piste comprennent des elements comme le code langue, l'indicateur << Piste par defaut >> ou le nom de piste. track:n Si le parametre n est un chiffre, alors la nieme piste sera selectionnee. L'ordre des pistes est le meme que l'option --identify de mkvmerge(1). La numerotation demarre a 1. track:tn Si le parametre debute avec un unique caractere t suivi par un n alors la nieme piste d'un type de piste specifique sera selectionnee. Le parametre de type de piste t doit etre un de ces quatre caracteres : 'a' pour une piste audio, 'b' pour une piste bouton, 's' pour une piste de sous-titre et 'v' pour une piste video. L'ordre des pistes est le meme que celui de l'option --identify de mkvmerge(1). La numerotation demarre a 1. track:=uid Si le parametre debute avec un signe << = >> suivi par un chiffre uid, la piste dont l'element UID est egal a l'uid donne sera selectionnee. Les UIDs de pistes peuvent etre obtenus avec mkvinfo(1). track:@number Si le parametre debute avec un signe << @ >> suivi par un chiffre chiffre, la piste dont le numero est egal a ce chiffre sera selectionnee. Les numeros de pistes peuvent etre obtenus avec mkvinfo(1). Notes Du fait de la nature des selecteurs d'edition de piste, il est possible que plusieurs selecteurs correspondent reellement aux memes entetes de piste. Dans ces cas-la, toutes les actions pour ces selecteurs d'edition seront combinees et executees dans l'ordre dans lequel ils sont fournis en ligne de commande. SELECTEURS DE PIECE JOINTE Un selecteur de piece jointe est utilise avec ces deux actions --replace-attachment et --delete-attachment. Il peut avoir une des quatre formes suivantes : 1. Selection par l'ID de piece jointe. Dans cette forme, le selecteur est simplement un chiffre, l'ID de piece jointe tel que donne par la commande d'identification de mkvmerge(1). 2. Selection par l'UID (ID unique) de piece jointe. Dans cette forme, le selecteur est le signe egal = suivi par un chiffre, l'UID de piece jointe tel que donne par la commande d'identification verbeuse de mkvmerge(1). 3. Selection par le nom de piece jointe. Dans cette forme, le selecteur est le mot litteral name: suivi par le nom de la piece jointe existante. Si ce selecteur est utilise avec --replace-attachment alors les deux-points dans le nom a correspondre devront etre echappees avec \c. 4. Selection par le type MIME. Dans cette forme, le selecteur est le mot litteral mime-type: suivi par le type MIME de la piece jointe existante. Si ce selecteur est utilise avec --replace-attachment alors les deux-points dans le type MIME a correspondre devront etre echappees avec \c. GESTION DES LANGUES Globalement, mkvpropedit(1) essaie de faire les choses correctement par defaut : lors de modifications de la propriete de langue, mkvpropedit(1) applique les memes modifications a l'element << LanguageIETF >> qu'a l'ancien element << Language >>, de la meme facon que mkvmerge(1) applique la langue a ces deux elements. Par exemple, avec mkvpropedit movie.mkv --edit track:2 --set language=zh-TW l'element << LanguageIETF >> sera defini en zh-TW et l'ancien element << Language >> en chi. De plus il existe une nouvelle propriete d'entete de piste nommee language-ietf qui peut etre definie ou retiree. Les modifications de cette propriete s'appliquent seulement au nouvel element d'entete de piste << LanguageIETF >>. Il faut noter ici que l'ancien element d'entete de piste << Language >> est un element requis pour Matroska -- ce qui signifie que meme absent du fichier, il a une valeur implicite. Quand l'utilisateur definit seulement la propriete language-ietf mais pas la propriete language, mkvpropedit(1) ajoute l'ancien element << Language >> dans certains cas, et la defini a und (<< undetermined >>, c'est-a-dire indetermine) si l'utilisateur n'en a pas specifie une valeur. Lors de la lecture de fichiers XML de balises ou de chapitres, mkvpropedit(1) fonctionne comme mkvmerge(1). La creation des nouveaux elements peut etre completement desactivee avec l'option en ligne de commande << --disable-language-ietf >>. Elle prend effet sur les trois nouveaux elements. Il est possible de choisir la methode de normalisation appliquee aux sous-balises de langue etendue avec le parametre --normalize-language-ietf. EXEMPLES L'exemple suivant edite un fichier nomme 'movie.mkv'. Il definit le titre du segment et modifie le code de langue d'une piste audio et d'une piste de sous-titres. Noter que cet exemple peut etre simplifie en omettant la 1ere option --edit parce que l'edition de l'element d'information du segment est dans tous les cas l'action par defaut pour toutes les options trouvees avant la 1ere option --edit. $ mkvpropedit movie.mkv --edit info --set "title=The movie" --edit track:a1 --set language=fre --edit track:a2 --set language=ita Le deuxieme exemple retire l'indicateur << Piste par defaut >> de la 1ere piste de sous-titres et le definit pour la 2nde. Noter que mkvpropedit(1), a la difference de mkvmerge(1), ne definit pas l'indicateur << Piste par defaut >> des autres pistes a << 0 >> s'il est definit automatiquement a << 1 >> pour une autres piste. $ mkvpropedit movie.mkv --edit track:s1 --set flag-default=0 --edit track:s2 --set flag-default=1 Remplacer les balises pour la 2nde piste de sous-titres dans un fichier ressemble a ceci : $ mkvpropedit movie.mkv --tags track:s2:new-subtitle-tags.xml Supprimer toutes les balises necessite d'omettre le nom de fichier : $ mkvpropedit movie.mkv --tags all: Remplacer les chapitres dans un fichier ressemble a ceci : $ mkvpropedit movie.mkv --chapters new-chapters.xml Suppression de tous les chapitres necessite d'omettre le nom de fichier : $ mkvpropedit movie.mkv --chapters '' Ajout d'un fichier de police (Arial.ttf) en piece jointe : $ mkvpropedit movie.mkv --add-attachment Arial.ttf Ajout d'un fichier de police (89719823.ttf) en piece jointe et de quelques informations comme quoi ce n'est juste qu'Arial : $ mkvpropedit movie.mkv --attachment-name Arial.ttf --attachment-description 'La police Arial comme police TrueType' --attachment-mime-type application/x-truetype-font --add-attachment 89719823.ttf Remplacement d'un fichier de police (Comic.ttf) en piece jointe avec un autre (Arial.ttf) : $ mkvpropedit movie.mkv --attachment-name Arial.ttf --attachment-description 'La police Arial comme police TrueType' --replace-attachment name:Comic.ttf:Arial.ttf Suppression du second fichier en piece jointe, quel qu'il soit : $ mkvpropedit movie.mkv --delete-attachment 2 Suppression de toutes les polices en pieces jointes de type MIME : $ mkvpropedit movie.mkv --delete-attachment mime-type:application/x-truetype-font CODES DE FERMETURE mkvpropedit(1) ferme avec l'un de ces 3 codes de fermeture : o 0 -- Ce code de sortie signifie que la modification s'est correctement terminee. o 1 -- Dans ce cas mkvpropedit(1) a emis au moins un avertissement, mais la modification a continue. Un avertissement est prefixe avec le texte 'Avertissement :'. Selon le probleme les fichiers resultants pourront etre OK ou pas. L'utilisateur est vivement conseille de verifier et l'avertissement et les fichiers resultants. o 2 -- Ce code de fermeture est utilise lorsqu'une erreur survient. mkvpropedit(1) abandonne juste apres le message d'erreur. Les messages d'erreurs vont des arguments errones en ligne de commande aux fichiers corrompus en passant par les erreurs en lecture/ecriture. FICHIERS TEXTE ET CONVERSIONS DE JEUX DE CARACTERES Pour une discussion approfondie sur la gestion des conversions de jeux de caracteres 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 nommees pareillement des pages man de mkvmerge(1). VARIABLES DENVIRONMENT mkvpropedit(1) utilise les variables par defaut qui determinent la << locale >> du systeme (par ex. LANG et la famille LC_*). Variables additionnelles : MKVPROPEDIT_DEBUG, MKVTOOLNIX_DEBUG and its short form MTX_DEBUG Le contenu est traite comme s'il a ete passe par l'option --debug. MKVPROPEDIT_ENGAGE, MKVTOOLNIX_ENGAGE and its short form MTX_ENGAGE Le contenu est traite comme s'il a ete passe par l'option --engage. VOIR AUSSI mkvmerge(1), mkvinfo(1), mkvextract(1), mkvtoolnix-gui(1) WWW La derniere version peut toujours etre trouvee a la page d'accueil de MKVToolNix[1]. AUTEUR Moritz Bunkus Developpeur NOTES 1. la page d'accueil de MKVToolNix https://mkvtoolnix.download/ MKVToolNix 83.0 2024-03-10 MKVPROPEDIT(1)