3.02.2009

Archivos Matroska o MKV en Linux - Parte II

En la parte I vimos cómo introducir subtítulos. Ahora, partiendo de un contenedor mkv que ya contiene una pista de subtítulos en otro idioma, vamos a ver como extraerla, iniciar su traducción y luego introducir esta nueva pista de subtítulos en nuestro archivo MKV.

Para realizar esta tarea debemos tener instalado un reprodutor como MPlayer y las herramientas mkvtoolnix. Esto se puede lograr con:

$sudo aptitude install mplayer mkvtoolnix mkvtoolnix-gui

Lo primero que necesitamos hacer es extraer los subtítulos del contenedor, pero antes siempre es útil darle una mirada a su contenido ;)

/ubicacion/del/contenedor$ mkvinfo proyecto.mkv

Con esto obtenemos los detalles del contenedor. Por ahora lo que nos interesa son los subs:

| + A track
|  + Track number: 4
|  + Track UID: 588088495
|  + Track type: subtitles
|  + Enabled: 1
|  + Default flag: 1
|  + Forced flag: 0
|  + Lacing flag: 0
|  + MinCache: 0
|  + Timecode scale: 1.000000
|  + Max BlockAddition ID: 0
|  + Codec ID: S_TEXT/UTF8
|  + Codec decode all: 1
|  + Language: eng
|+ EbmlVoid (size: 1024)
|+ Cluster

Esto nos indica que los subs están la pista 4, también nos es util saber la codificación de texto que en este caso es UTF8 y que es el que el programa maneja por defecto. Ahora bien, sabiendo el número de la pista, ejecutamos lo siguiente para extraerlos.

/ubicacion/del/contenedor/$ mkvextract tracks "proyecto.mkv" 4:en_subs.ass

Actualmente el proyecto mkvtoolnix cuenta con soporte para SRT, SSA/ASS y Kate desde Ogg.

En este caso se ha usado el Advanced Substation Alpha con lo que hemos obtenido el archivo en_subs.ass

Si lo que queremos es traducir estos subtítulos, disponemos de un muy buen programa de código abierto (por supuesto :D) llamado Subtitle Editor.

Como probablemente lo estemos imaginando, basta el siguiente comando para tenerlo a nuestra disposición:

$ sudo aptitude install subtitleeditor

Subtitle Editor es un programa bastante completo y en constante actividad. De momento mostraré en pocos pasos cómo tener listo el programa para empezar a traducir, el resto se lo dejo a ustedes xD

Abrimos el subtitle editor y tendremos una pantalla como la de más abajo, nos vamos al menu Video y abrimos el video mkv.




Ahora en el menu Archivo seleccionamos abrir y le damos a nuestro archivo de subtítulo recién extraído:



El siguiente paso es seleccionar la vista que más se acomode a nuestra tarea que por ahora es la de traducir ;) para ello en el menu Ver elegimos Traducción.

Una vez que tengamos nuestra traducción lista, mediante el menu Archivo y Guardar Traducción, la guardamos como un nuevo archivo .ass.




Cabe señalar que es importante que la codificación de caracteres sea UFT-8, con el salto de línea para Unix no he tenido problemas hasta ahora entre Subtitle Editor y Subtitle Workshop no se con los demás programas :(
 
Lo que nos queda por hacer ahora es meter la traducción en el contenedor como una nueva pista, para ello vamos a hacer uso de otra de las herramientas que vienen con mkvtoolnix llamada mkvmerge.

La línea de comando para realizar la tarea es:

/ubicacion/del/contenedor/$ mkvmerge -o con_es_subs.mkv es_subs.ass proyecto.mkv

Ahora tendríamos un nuevo contenedor llamado con_es_subs.mkv el cual tiene, además de todas las pistas que tenga el contenedor fuente, nuestro flamante archivo de ass.

Lo siguiente que recomendaría, ya que no es obligatorio, es especificar el idioma de la pista que introdujimos y si lo deseamos, ponerla como predeterminada y de paso decirle la codificación de caracteres. Para ello ejecutamos la siguiente línea, donde el número 3 significa el ID de la pista que queremos configurar (un mkvmerge -i archivo.mkv nos indica esto muy claramente):

/ubicacion/del/contenedor/$ mkvmerge -o langcode_charset.mkv --language 3:spa --sub-charset 3:UTF-8 --default-track 3 con_es_subs.mkv
Listo, nuestro contenedor final (por ahora :P) está listo.

A manera de resumen y para tener todo en una sola línea de comandos:

/ubicacion/del/contenedor/$ mkvmerge -o proyecto_final.mkv --language 0:spa --sub-charset 0:UTF-8 --default-track 0 subs.ass archivo.mkv

Espero que les sea de utilidad.

Saludos!


Powered by ScribeFire.