NOMBRE
mkvpropedit - Modifica las propiedades existentes en archivos Matroska sin multiplexar
SINOPSIS
mkvpropedit [opciones] {archivo-origen} {acciones} |
DESCRIPCIÓN
Este programa analiza un archivo Matroska y modifica alguna de sus propiedades. Entonces escribe estas modificaciones en el archivo existente. Entre las propiedades que pueden ser modificadas están los elementos de la información del segmento (p.e. el título) y los encabezados de pista (p.e. el código del idioma, el flag de 'pista predefinida' o el nombre).
Opciones:
-l, --list-property-names
Enumera todos los conocidos y editables nombres, su tipo (texto, entero, booleano, etc...) y una pequeña descripción. El programa después sale. Por lo tanto, el parámetro nombre-archivo no tiene que ser suministrado.
-p, --parse-mode modo
Establece el modo de análisis. El parámetro 'modo' puede ser 'fast' (que es el predeterminado) o 'full'. El modo 'fast' no analiza el archivo entero pero usa los elementos de meta búsqueda para localizar los elementos necesarios del archivo original. En el 99% de los casos es suficiente. Sin embargo, para archivos que no contienen elementos de meta búsqueda o que están dañados, el usuario debería de usar el modo de análisis 'full'. Un análisis completo de un archivo puede llevar bastantes minutos mientras que un análisis rápido sólo lleva unos segundos.
Acciones que tienen que ver con las propiedades de información de la pista y segmento:
-e, --edit selector
Establece la sección del archivo Matroska (información del segmento o ciertos encabezados de pista) sobre la que se centrarán todas las acciones: add, set y delete. Esta opción puede ser múltiples veces de manera que puede ser modificado más de un elemento a la vez.
Por defecto, mkvpropedit(1) editará la sección de información del segmento.
Consulte la sección sobre selectores de edición para una completa descripción de la sintaxis.
-a, --add name=valor
Añade una propiedad name con el contenido de valor. Esta propiedad será añadida incluso si dicha propiedad ya existe. Tenga en cuenta que la mayoría de propiedades son únicas y sólo existe una instancia de ellas.
-s, --set name=valor
Establece todas las instancias de la propiedad name con el contenido valor. Si no existe dicha propiedad entonces será añadida.
-d, --delete nombre
Borra todas las instancias de la propiedad name. Tenga en cuenta que algunas propiedades son necesarias y no pueden ser eliminadas.
Acciones que tienen que ver con las etiquetas y capítulos:
-t, --tags selector:nombre
Reemplaza o añade las etiquetas del archivo llamado nombre o las elimina si nombre está vacío. mkvpropedit(1) lee el mismo formato de etiquetas XML que mkvmerge(1) también puede leer.
El selector debe ser una de estas palabras: all, global o track. Para all, mkvpropedit(1) reemplazará o eliminará todas las etiquetas del archivo. Con global sólo las etiquetas globales serán reemplazadas o eliminadas. Por ejemplo: mkvpropedit "nombre-archivo.mkv" --tags global:etiquetas.xml mkvpropedit "nombre-archivo.mkv" --tags global:
Con track, mkvpropedit(1) reemplazará las etiquetas de la pista especificada. Además, las etiquetas leídas desde nombre serán asignadas a la misma pista. La pista se especifica de la misma manera que con los selectores de edición (mire abajo). Por ejemplo: mkvpropedit "nombre-archivo.mkv" --tags track:a1:nuevas-etiquetas-audio.xml.
--add-track-statistics-tags
Calcula las estadísticas de todas las pistas en un archivo y añade nuevas etiquetas de estadística para ellas. Si el archivo ya contiene dichas etiquetas entonces serán actualizadas.
--delete-track-statistics-tags
Elimina las etiquetas de estadística de todas las pistas de un archivo. Si el archivo no contiene etiquetas de estadística, entonces no habrá ninguna modificación.
-c, --chapters nombre
Reemplaza o añade los capítulos del archivo llamado nombre o las elimina si nombre está vacío. mkvpropedit(1) lee el mismo formato de capítulos simple y XML que mkvmerge(1) también puede leer.
Acciones para manipular adjuntos:
--add-attachment nombre-archivo
Añade un nuevo adjunto a nombre-archivo.
Si la opción --attachment-name es usada antes de esta opción entonces su valor es usado como el nuevo nombre del adjunto. Por el contrario, se generará a partir del nombre-archivo.
Si la opción --attachment-mime-type es usada antes de esta opción entonces su valor es usado como el nuevo tipo MIME del adjunto. Por el contrario, es auto-detectado a partir del contenido del nombre-archivo.
Si la opción --attachment-description es usada antes de esta opción entonces su valor es usado como la nueva descripción del adjunto. Por el contrario, ninguna descripción será establecida.
Si la opción --attachment-uid se usa delante de esta opción entonces su valor se usará como el nuevo UID del adjunto. De lo contrario, un UID aleatorio se generará automáticamente.
--replace-attachment selector:nombrearchivo
Reemplaza uno o más adjuntos que coincidan con el selector del archivo nombre-archivo. Si más de un adjunto existente coincide con el selector entonces todo su contenido será reemplazado por el contenido del nombre-archivo.
El selector puede tener una de estas cuatro formas: ID, UID, Name y MIME type. Están explicadas más abajo en la sección selectores de adjuntos.
Si la opción --attachment-name se usa delante de esta opción entonces su valor se establece como el nuevo nombre para cada adjunto modificado. De lo contrario, los nombres no se modificarán.
Si la opción --attachment-mime-type se usa delante de esta opción entonces su valor se establece como el nuevo tipo MIME para cada adjunto modificado. De lo contrario, los tipo MIMES no se modificarán.
Si la opción --attachment-description se usa delante de esta opción entonces su valor se establece como la nueva descripción de cada adjunto modificado. De lo contrario, las descripciones no se modificarán.
Si la opción --attachment-uid se usa delante de esta opción entonces su valor se establece como el nuevo UID para cada adjunto modificado. De lo contrario, los UIDs no se modificarán.
--update-attachment selector
Establece las propiedades de uno o más adjuntos que coincidan con el selector. Si más de un adjunto coincide con el selector, entonces todas sus propiedades serán actualizadas.
El selector puede tener una de estas cuatro formas: ID, UID, Name y MIME type. Están explicadas más abajo en la sección selectores de adjuntos.
Si la opción --attachment-name se usa delante de esta opción entonces su valor se establece como el nuevo nombre para cada adjunto modificado. De lo contrario, los nombres no se modificarán.
Si la opción --attachment-mime-type se usa delante de esta opción entonces su valor se establece como el nuevo tipo MIME para cada adjunto modificado. De lo contrario, los tipo MIMES no se modificarán.
Si la opción --attachment-description se usa delante de esta opción entonces su valor se establece como la nueva descripción de cada adjunto modificado. De lo contrario, las descripciones no se modificarán.
Si la opción --attachment-uid se usa delante de esta opción entonces su valor se establece como el nuevo UID para cada adjunto modificado. De lo contrario, los UIDs no se modificarán.
--delete-attachment selector
Elimina uno o más adjuntos que coincida con el selector.
El selector puede tener una de estas cuatro formas: ID, UID, Name y MIME type. Están explicadas más abajo en la sección selectores de adjuntos.
Opciones para acciones sobre adjuntos:
--attachment-name nombre
Establece el nombre a usar en la operación --add-attachment o --replace-attachment.
--attachment-mime-type mime-type
Establece el tipo MIME a usar en la operación --add-attachment o --replace-attachment.
--attachment-description descripción
Establece la descripción a usar en la operación --add-attachment o --replace-attachment.
--enable-legacy-font-mime-types
Habilita el uso de tipos MIME heredados para ciertos tipos de fuentes adjuntas. Por ejemplo, 'application/x-truetype-font' se usará para fuentes TrueType en vez de 'fonts/ttf'.
Esto afecta tanto al añadir nuevos adjuntos como al reemplazar los adjuntos existentes, pero sólo si no se especifica el nuevo tipo MIME. Otros adjuntos existentes no serán modificados.
Los tipos MIME afectados son 'font/sfnt', 'font/ttf' y 'font/collection' los cuales están asignados a 'application/x-truetype-fonts' y 'font/otf', que está asignado a 'application/vnd.ms-opentype'.
Otras opciones:
--disable-language-ietf
Normalmente cuando el usuario solicita realizar cambios en la propiedad de cabecera de pista 'language' , mkvpropedit(1) aplicará el mismo cambio en el nuevo elemento de cabecera de pista LanguageIETF junto con el elemento heredado Language. Si se usa esta opción, el cambio sólo es aplicado en el elemento heredado Language.
Esta opción no afecta a los cambios solicitados mediante la propiedad de cabecera de pista 'language-ietf' .
--normalize-language-ietf modo
Habilita la normalización de todas las etiquetas de idioma IETF BCP 47 a su forma canónica con el modo 'canonical', a su forma de sub-etiquetas de idioma extendido con el modo 'extlang' o lo desactiva con el modo 'off'. Por defecto, se aplica la normalización a la forma canónica.
En la forma canónica todas las sub-etiquetas para las que existe valores preferidos se reemplazan por esos valores preferidos. Por ejemplo, convierte esto 'zh-yue-jyutping' a 'yue-jyutping' o 'fr-FX' a 'fr-FR'.
Para las sub-etiquetas de idioma extendido, primero se crea la forma canónica. Después se reemplazan por esa sub-etiqueta de idioma extendido y su prefijo todos los idiomas principales para los que existe una sub-etiqueta de idioma extendido. Por ejemplo, esto convierte 'yue-jyutping' a 'zh-yue-jyutping' y no sucede nada en 'fr-FR' ya que 'fr' no es una sub-etiqueta de idioma extendido.
Esta normalización sólo se aplica a elementos que realmente han cambiado:
• Al editar cabeceras de pista sólo se ven afectados los elementos del idioma de la pista que se establecen a través de las especificaciones de edición. Los idiomas de las pistas que no son editados no son modificados. Editar una pista y sólo configurar distintas propiedades del idioma tampoco afectará al idioma.
• Cuando se editan los capítulos todos los elementos del idioma, de todos los elementos del capítulo, se ven afectados; ya que los capítulos existentes siempre se reemplazan por completo.
• Al editar etiquetas sólo se ven afectados los elementos de idioma de las etiquetas que realmente son sustituidos. Por ejemplo, cuando se reemplazan las etiquetas globales no se ven afectadas las etiquetas de pista existentes.
La mejor forma de normalizar todas las etiquetas de idioma existentes en un archivo es volver a multiplexarlas con mkvmerge(1) y configurarles su opción '--normalize-language-ietf' al modo deseado.
--command-line-charset conjunto-caracteres
Establece el conjunto de caracteres a convertir las cadenas de texto dadas desde la línea de comandos. Por defecto, se ajusta al conjunto de caracteres dado por la configuración local del sistema.
--output-charset conjunto-caracteres
Establece el conjunto de caracteres para convertir las cadenas de texto que serán usadas en el archivo de salida. Por defecto, se ajusta al conjunto de caracteres dado por la configuración local del sistema.
-r, --redirect-output nombre-archivo
Escribe todos los mensajes al archivo nombre-archivo en vez de en la consola. Aunque esto se puede hacer fácilmente con la opción de redirección hay casos en los que es necesaria esta opción: cuando el terminal reinterpreta la salida antes de escribirlo al archivo. El conjunto de caracteres establecido con --output-charset se respeta.
--ui-language código
Fuerza la traducción al código de idioma que será usado (p.e. 'de_DE' para la traducción al Alemán). Introduciendo 'list' como código provocará que el programa muestre una lista de las traducciones disponibles.
--abort-on-warnings
Le dice al programa que cancele después de emitir la primera advertencia. El código de salida del programa será 1.
--debug topic
Habilita la depuración para una característica concreta. Esta opción sólo es útil para desarrolladores.
--engage característica
Habilita características experimentales. Una lista de características disponibles puede ser solicitada con la instrucción mkvpropedit --engage list. Estas características no están indicadas para ser usadas en situaciones normales.
--gui-mode
Habilita el modo GUI. En este modo las líneas especialmente formateadas pueden ser generadas para decirle a un control de la GUI lo que está pasando. Estos mensajes se rigen bajo el formato '#GUI#mensaje'. El mensaje puede ser continuado por pares de valores/claves como en '#GUI#mensaje#clave1=valor1#clave2=valor2...'. Ni los mensajes ni las claves pueden ser traducidas y siempre se generan en inglés.
-v, --verbose
Habilita el modo detallado y muestra todos los elementos Matroska importantes que pueden ser leídos.
-h, --help
Muestra información de uso y sale.
-V, --version
Muestra la información de la versión y sale.
@options-file.json
Lee argumentos adicionales de la línea de comandos desde el archivo archivo-opciones. Para más información sobre los formatos admitidos para esos archivos consulte la sección acerca de "archivos de opciones" en la página del manual de mkvmerge(1)
SELECTORES DE EDICIÓN
La opción --edit establece la sección del archivo Matroska (información del segmento o ciertos encabezados de pista) sobre la que se centrarán todas las acciones: add, set y delete. Esto es válido hasta que se encuentra el siguiente parámetro --edit. El argumento para esta opción se llama el selector de edición.
Por defecto, mkvpropedit(1) editará la sección de información del segmento.
Información
del segmento
La información del segmento puede ser seleccionada
con una de estas tres palabras: 'info', 'segment_info' o
'segmentinfo'. Contiene propiedades como el título o
el UID del segmento .
Encabezados
de pista
Los encabezados de la pista pueden ser seleccionados con un
selector ligeramente más complejo. Todas las
variantes comienzan con 'track:'. Las propiedades del
encabezado de pista incluye elementos como el código
de idioma, el flag de 'pista predefinida' o el nombre de la
pista.
track:n
Si el parámetro n es un número entonces la pista con número n será seleccionada. El orden de pista es el mismo que se genera con la opción --identify de mkvmerge(1).
La numeración empieza en 1.
track:tn
Si el parámetro empieza con el carácter t seguido por n entonces la pista con número n de un tipo específico de pista será seleccionada. El parámetro del tipo de pista t debe ser uno de estos cuatro caracteres: 'a' para una pista de audio, 'b' para un pista de botón, 's' para una pista de subtítulo y 'v' para una pista de video. El orden de pista es el mismo que se genera con la opción --identify de mkvmerge(1).
La numeración empieza en 1.
track:=uid
Si el parámetro empieza con un '=' seguido por un número de uid, se seleccionará la pista cuyo elemento UID coincida con este uid. Los UIDs de pista se pueden obtener con mkvinfo(1).
track:@número
Si el parámetro empieza con un '@' seguido por un número, se seleccionará la pista cuyo número de elemento coincida con este número. El número de pista puede ser obtenido con mkvinfo(1).
Notas
Debido a la naturaleza de los selectores de edición
de pista es posible que actualmente algunos selectores
coincidan con los mismos encabezados de pista. En muchos
casos, todas las acciones para estos selectores de
edición serán combinados y ejecutados en el
orden en el que fueron dadas en la línea de
comandos.
SELECTORES DE ADJUNTOS
Un selector de adjuntos se utiliza con las dos acciones --replace-attachment y --delete-attachment. Puede tener una de las cuatros formas siguientes:
1. Selección mediante el ID de adjunto. De esta forma el selector es un simple número, el ID del adjunto tal y como se genera con el comando de identificación de mkvmerge(1).
2. Selección mediante el UID de adjunto (Único ID). De esta forma el selector es el signo igual = acompañado por un número, el UID del adjunto tal y como se genera con el comando de identificación detallado (verbose) de mkvmerge(1).
3. Selección mediante el name (nombre) de adjunto. De esta forma el selector es la palabra literal name: seguida por el nombre del adjunto. Si el selector es usado con --replace-attachment entonces los dos puntos que pudiera contener el nombre deberán ser escapados con \c.
4. Selección mediante el MIME type (tipo MIME). De esta forma el selector es la palabra mime-type: seguida por el tipo MIME del adjunto. Si el selector es usado con --replace-attachment entonces los dos puntos que pudiera contener el tipo MIME deberán ser escapados con \c.
MANIPULADOR DE IDIOMAS
mkvpropedit(1) intenta hacer lo correcto por defecto. Por lo tanto, los cambios en la propiedad language harán que mkvpropedit(1) aplique el mismo cambio tanto al nuevo elemento "LanguageIETF" así como al antiguo elemento "Language" de forma similar a como mkvmerge(1) aplica el idioma a ambos elementos. Por ejemplo, al utilizar mkvpropedit movie.mkv --edit track:2 --set language=zh-TW el elemento "LanguageIETF" se establecerá en zh-TW y el antiguo elemento "Language" achi.
Además, hay una nueva propiedad de cabecera de pista llamada language-ietf que se puede establecer o eliminar. Los cambios en esta propiedad sólo se aplican al nuevo elemento de cabecera de pista "LanguageIETF". Hay que tener en cuenta que el antiguo elemento de cabecera de pista "Language" es un elemento obligatorio en Matroska — lo que significa que, aunque no esté presente en el archivo, tiene un valor implícito. Cuando el usuario sólo establece la propiedad language-ietf pero no la propiedad language, mkvpropedit(1) añadirá el antiguo elemento "Language" en algunos casos & lo establecerá en und (que significa "indeterminado") ya que el usuario no especificó un valor para él.
Al leer archivos XML de capítulos o etiquetas mkvpropedit(1) funciona como lo hace mkvmerge(1).
La creación de los nuevos elementos puede desactivarse por completo con la opción de línea de comandos ’--disable-language-ietf’, que actúa sobre los tres nuevos elementos.
Puedes elegir el método de normalización aplicado a las subetiquetas de idioma extendidas con el parámetro --normalize-language-ietf.
EJEMPLOS
El siguiente ejemplo edita un archivo llamado 'película.mkv'. Establece el título del segmento y modifica el código de idioma de una pista de audio y subtítulo. Tenga en cuenta que este ejemplo puede ser acortado al omitir la primera opción --edit ya que editar el elemento de información del segmento está incluido por defecto para todas las opciones encontradas antes de la primera opción --edit.
mkvpropedit película.mkv --edit info --set "title=La película" --edit track:a1 --set language=spa --edit track:a2 --set language=eng
El segundo ejemplo elimina 'flag de pista predefinida' de la primera pista de subtítulo y la establece para la segunda. Tenga en cuenta que mkvpropedit(1), a diferencia de mkvmerge(1), no establece automáticamente a '0' el valor de 'flag de pista predefinida' cuando otra pista se ha establecido a '1'.
mkvpropedit película.mkv --edit track:s1 --set flag-default=0 --edit track:s2 --set flag-default=1
Reemplaza las etiquetas para la segunda pista de subtítulos de un archivo:
mkvpropedit película.mkv --tags track:s2:nuevas-etiquetas-subtítulo.xml
Elimina todas las etiquetas que hay en el archivo:
mkvpropedit película.mkv --tags all:
Reemplaza los capítulos en un archivo:
mkvpropedit película.mkv --chapters nuevos-capítulos.xml
Elimina todos los capítulos del archivo:
mkvpropedit película.mkv --chapters ""
Añade un archivo de tipo fuente (Arial.ttf) como un adjunto:
mkvpropedit película.mkv --add-attachment Arial.ttf
Añade un archivo de tipo fuente (89719823.ttf) como un adjunto y proporciona información de como es la fuente Arial:
mkvpropedit
película.mkv --attachment-name Arial.ttf
--attachment-description "La fuente Arial como
TrueType"
--attachment-mime-type application/x-truetype-font
--add-attachment 89719823.ttf
Reemplaza el archivo adjunto (Comic.ttf) del archivo por otro (Arial.ttf):
mkvpropedit
película.mkv --attachment-name Arial.ttf
--attachment-description "La fuente Arial como
TrueType"
--replace-attachment name:Comic.ttf:Arial.ttf
Elimina el segundo archivo adjunto:
mkvpropedit película.mkv --delete-attachment 2
Elimina todos las fuentes adjuntas por tipo MIME:
mkvpropedit película.mkv --delete-attachment mime-type:application/x-truetype-font
CÓDIGOS DE SALIDA
Mkvpropedit(1) finaliza con uno de estos tres códigos de salida:
• 0 -- Este código de salida significa que la modificación se ha realizado correctamente.
• 1 -- En este caso mkvpropedit(1) genera una salida con al menos una advertencia, pero la extracción continuó. Una advertencia es prefijada con el texto 'Advertencia:'. Dependiendo de los fallos involucrados los archivos creados serán correctos o no. El usuario es instado a que revise tanto las advertencias como los archivos creados.
• 2 -- Este código de salida es usado después de que ocurra un error. mkvpropedit(1) aborta el proceso justo después de mostrar el mensaje de error. El rango de los mensajes de error va desde los argumentos de la línea de comandos, por delante de los errores de lectura/escritura, hasta los archivos erróneos.
CONVERSIÓN DE ARCHIVOS DE TEXTO Y CONJUNTO DE CARACTERES
Para una discusión en profundidad sobre como la suite de MkvToolNix manipula las conversiones de caracteres, la codificación entrada/salida y la codificación de la línea de comandos y consola, por favor consulte la sección llamada de igual manera en la pagina del manual para mkvmerge(1).
VARIABLES DE ENTORNO
mkvpropedit(1) usa las variables predefinidas que se determinan en la configuración local del sistema (p.e. LANG y la familia LC_*). Variables adicionales:
MKVPROPEDIT_DEBUG, MKVTOOLNIX_DEBUG y su forma abreviada MTX_DEBUG
El contenido se trata como si se hubiese pasado a través de la opción --debug.
MKVPROPEDIT_ENGAGE, MKVTOOLNIX_ENGAGE y su forma abreviada MTX_ENGAGE
El contenido se trata como si se hubiese pasado a través de la opción --engage.
VEA TAMBIÉN
mkvmerge(1), mkvinfo(1), mkvextract(1), mkvtoolnix-gui(1)
WWW
La última versión se puede encontrar siempre en la página de MKVToolNix [1] .
AUTOR
Moritz Bunkus <moritz [AT] bunkus.org>
Desarrollador
NOTAS
1. |
la página de MKVToolNix |