Hace un par de semanas me hice con una Xbox 360 y aprovechando que la tengo puesta en el salón (básicamente porque es el único sitio de la casa con sitio suficiente para el jugar al kinnet xD) he decido aprovecharlo como media center. Cuando tengo tiempo suelo ver bastantes series en inglés subtituladas y aquí surgió el problema, no he sido capaz de ver dichos subtitulos en la consola, solución: añadir los subtitulos a los ficheros. Para poder realizar esta tarea repetitiva de manera automática con linux, he escrito un pequeño script para ayudar a todo aquel que le pueda servir.
Realmente eso sirve tambien para verlo en el PC o en cualquier otro dispositivo que tenga los codecs necesario, en concreto este script está preparado para que el contenido sea reproducido por la consola.
Al lío, «requisitos»:
- Tener instalado mencoder (en Ubuntu sudo apt-get install mencoder)
- Video con extensión avi (en el script puede cambiarse)
- Tener el subtitulo, salvo la extensión .srt con el mismo nombre que el archivo de video en el mismo directorio.
- El subtitulo debe estar en ISO 8859-1 ( Latin 1), el script se encarga de pasarlo a UTF-8 y pegarlo bien al video.
Tras el salto, el código completo del script
#!/bin/bash #Fuente utilizada en el subtitulo, asegurarse que está instalada o utilizar otra FONT=/usr/share/vlc/skins2/fonts/FreeSans.ttf VIDEO_EXT=avi NAME_FILE=/tmp/filename.tmp SUB_FILE=/tmp/out.srt obtener_subtitulo(){ echo $1 > $NAME_FILE sed -i 's/'$VIDEO_EXT'/srt/g' $NAME_FILE SUB=`cat $NAME_FILE` rm $NAME_FILE if [ ! -e $SUB ]; then echo "[Error] No se encuentra el fichero de subtitulos: " $SUB exit -1; fi; echo $SUB } convertirIso2Utf8(){ iconv -f ISO-8859-1 -t UTF-8 $1 -o $SUB_FILE rm $1 mv $SUB_FILE $1 } rip(){ local MOVIE=$1 local SUB=`obtener_subtitulo $MOVIE` local OUT=$MOVIE.sub.$VIDEO_EXT convertirIso2Utf8 $SUB echo "rip "$1 if [ -e $OUT ]; then rm $OUT fi; mencoder $MOVIE -ffourcc XVID -sub $SUB -oac mp3lame -lameopts cbr:br=128 -ovc xvid -xvidencopts pass=1 -o $OUT -subcp utf-8 -font $FONT } case $# in 0) echo "[Error] Número incorrecto de parámetros." $0 "fichero_origen" " [fichero destino] " exit -1; ;; 1) echo "1: "$1 rip $1 ;; *) for item in $* do rip $item done ;; esac
Normalmente los script que suelo escribir, son para uso privado, pero al ser este bastante útil he decidido publicarlo, se admiten mejoras y críticas siempre que sean constructivas.
Para utilizarlo, copiar, pegar y dar permisos de ejecución a un fichero de texto:
$>chmod +x script
Y ejecutar
$>./script <fichero(s) .avi>
Por último un par de referencias que he utilizado:
Posted by Cómo ver vídeo con subtítulos en Xbox 360 y PS3 « Bitelia on 6 septiembre 2012 at 10:23 am
[…] ha escrito un script para añadir subtítulos a un AVI para Linux que pone generosamente a disposición de quien […]
Posted by How to watch video with subtitles on Xbox 360 and PS3 | Tech Crash on 6 septiembre 2012 at 10:54 am
[…] has written a script to add subtitles to AVI for generously putting Linux available to those who need to add subtitles […]
Posted by Cómo ver vídeo con subtítulos en Xbox 360 y PS3 | El Tenanpa on 6 septiembre 2012 at 11:38 am
[…] ha escrito un script para añadir subtítulos a un AVI para Linux que pone generosamente a disposición de quien […]
Posted by Cómo ver vídeo con subtítulos en Xbox 360 y PS3 | SoftMexico - (SinapsysMx) on 6 septiembre 2012 at 2:21 pm
[…] ha escrito un script para añadir subtítulos a un AVI para Linux que pone generosamente a disposición de quien […]
Posted by Cómo ver vídeo con subtítulos en Xbox 360 y PS3 Noticias on 6 septiembre 2012 at 6:22 pm
[…] ha escrito un script para añadir subtítulos a un AVI para Linux que pone generosamente a disposición de quien […]
Posted by 18minutos » Cómo ver vídeo con subtítulos en Xbox 360 y PS3 on 9 septiembre 2012 at 10:24 pm
[…] ha escrito un script para añadir subtítulos a un AVI para Linux que pone generosamente a disposición de quien […]
Posted by Bernat on 30 agosto 2014 at 10:34 am
Mil gracias por este script, lo he usado para PS3 i funciona perfecto.