Añadir subtítulos a un vídeo mediante ffmpeg

Veamos cómo incluir unos subtítulos a un vídeo de manera permanente utilizando la gran herramienta ffmpeg.

Imagen: MarkusFreak de FreakFashion4u

Un resumen de lo que quiero hacer:

  • Quiero descargar un vídeo de YouTube.
  • Quiero descargar sus subtítulos en inglés.
  • Quiero traducirlos yo mismo, quiero que esos subtítulos se incrusten en el vídeo de manera permanente sin necesidad de tener un archivo de subtítulos.
  • Quiero subirlos a otro sitio por ejemplo archive.org

¿También tu quieres o te interesa aprender hacer todo eso? pues entonces comenzamos.

Lo primero que vamos a hacer es descargar el vídeo en cuestión que se encuentra en YouTube, junto con los subtítulos originales en inglés. Para eso utilizaremos la gran herramienta desde la línea de comandos youtube-dl

Para eso ejecutaré el siguiente comando, sustituyendo <url_del_vídeo> por nuestro enlace:

youtube-dl --write-sub --sub-lang en <url_del_vídeo>

Esto nos descarga tanto el vídeo, como un archivo con el mismo nombre con extensión “.en.vtt”. Yo cambiado esa extensión por “.srt” que la reconocen muchos reproductores de vídeo (estoy pensando en VLC).

Con esto, ya podríamos traducir el archivo .srt y cuando reproduzcamos el vídeo podemos seleccionar ese archivo como fuente de subtítulos y se mostrarían.

Pero yo lo que quiero es que se incrusten de manera permanente en el vídeo, y que sólo reproduciendo este, sin más archivos se vean los subtítulos.

Para eso después de una búsqueda por la red (no recuerdo donde ví la solución) podemos utilizar ffmpeg para la tarea de unir vídeo y subtítulos en un solo archivo de vídeo. Para ello ejecutamos este par de comandos.

  fmpeg -i nombre_del archivo.srt sub.ass
  fmpeg -i nombre_del_archivo.mp4 -vf "ass=sub.ass" salida.mp4

Cambiando el nombre de archivo de subtítulos y de vídeo donde sea menester por los nuestros. Y el vídeo resultante será salida.mp4 que podremos cambiar por el que queramos.

Después de que ffmpeg procese el vídeo ya estará listo para subir a la plataforma que queramos o simplemente compartirlo de la manera que queramos.

Finalmente este es el resultado:

Disponible para descargar desde archive.org:

Aquí tienes los subtítulos del vídeo en español, por si a partir de estos quieres hacer tu propia traducción. Aunque te remito a los originales en inglés.

¿Ha cumplido con las expectativas el artículo? Creo que sí, ni más ni menos que lo que dije al comienzo del artículo. Espero que os haya resultado interesante y útil.

Por cierto os recuerdo que los desarrolladores del software de cifrado GPG están recaudando fondos para continuar su labor:

Herramientas de software libre como medio de promoción de más software libre. 🙂

Por cierto la gente de GnuPG ha incluido mis subtítulos en su vídeo de YouTube. 🙂

————————————————————-

3 pensamientos en “Añadir subtítulos a un vídeo mediante ffmpeg

  1. Hola Victor. He seguido tus instrucciones al pie de la letra y cuando quiero pasar el subtítulo .srt a .ass me aparecen mensajes de error del tipo:

    Error while decoding stream #0:0: Invalid data found when processing input
    [srt @ 0x9d3ce0] Invalid UTF-8 in decoded subtitles text; maybe missing -sub_charenc option

    El archivo .ass se genera, aparentemente, sin problemas, pero me quedan dudas. ¿Son normales esos mensajes de error? ¿Debo ignorarlos?

    Gracias!!!!

Me gustaría saber tu opinión. Deja un comentario (Puedes usar MarkDown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s