Script para recodificar vídeo a DivX

Script para recodificar vídeo a DivX

Diseñé este script para recodificar casi cualquier tipo de vídeo a un DivX estándar que sea leído por la mayoría de reproductores.
La única dependencia la tiene con la aplicación mencoder (que debes tener instalada). En Ubuntu, se puede instalar con:

sudo apt-get install mencoder

o con el gestor de paquetes Synaptic.

Su uso es bastante sencillo. Los parámetros que acepta el script se pueden ver ejecutando:

recode -h
Uso:
 recode [-c canal] [-a | -3] [-q] [-s subtitulos [-e escala]] [-h] [-b bitrate] -i input -o output
       -c canal Selecciona canal de audio.
       -a Copia audio.
       -3 Usa AC3 en lugar de MP3.
       -q Alta calidad.
       -s subtitulos Archivo de subtitulos.
       -e escala Escala del texto de los subtitulos.
       -b bitrate Forzar bitrate.
       -i Archivo a recodificar.
       -o Archivo recodificado.
       -h Esta ayuda.

La llamada más sencilla que se puede hacer es:

recode -i video-a-convertir.ext -o video-convertido.avi

Donde “video-a-convertir.ext” es el nombre del archivo de vídeo que quieres recodificar (admite todos los formatos que entienda mencoder). Y “video-convertido.avi” es el nombre que deseas darle al nuevo archivo. Con los nombres de los archivos se pueden especificar rutas (tanto absolutas como relativas al directorio desde donde ejecutas el script). Por ejemplo:

recode -i /home/usuario/video/mi-video.mp4 -o /tmp/video-convertido.avi

El script, por defecto, calcula el bitrate adecuado para que el archivo convertido ocupe 700 Mb (con un mínimo de 700 Kbs y un máximo de 1200 kbs). Para hacer esto, se ejecuta una primera pasada sobre el vídeo de entrada con lo que el script tarda algo más que si se especifica un bitrate fijo pero no llega al doble. Se puede acelerar esta primera pasada (¡hasta 10x!) haciendo un pequeño cambio en el script:

# Usando -nosound y estimando un audio de 100Mb es mucho más rápido (10x) pero menos preciso al calcular el tamaño del archivo de salida
BITRATE=`mencoder ${INPUT}${CANAL} -ovc frameno ${AUDIO} -o /dev/null -quiet 2>/dev/null | grep "for 800MB" | cut -d ' ' -f 7`
# Le resto los 100Mb de audio estimados
#BITRATE=$(( $BITRATE - 100 ))

Se debe cambiar la variable ${AUDIO} por -nosound y descomentar la última línea de este fragmento del código.

Los parámetros usados por defecto, producen un archivo de salida de 700 Mb, con audio MP3 estéreo a un bitrate medio de 64 Kbs (incluyendo todos los canales del archivo original) y un canal de vídeo en formato DivX a un bitrate entre 700 y 1200 Kbs.

Si el archivo original tiene más de un canal de audio, puedes especificar el canal que quieres pasar al archivo de salida con el parámetro -c:

recode -c 2 -i archivo-de-entrada.ext -o archivo-de-salida.avi

Para saber qué número de canal es, puedes abrir el archivo de entrada con VLC y mirar en las opciones de audio el orden de los canales. Se puede codificar el audio en AC3 estéreo con un bitrate medio de 128 Kbs usando el parámetro -3. (En las pruebas que he hecho, el archivo resultante, si se reproduce con VLC, no tiene sonido :( sin embargo, en otros reproductores sí. ¿Problema de mencoder? No sé. O puedes copiar el canal de audio directamente desde el archivo de entrada (sin recodificarlo) usando el parámetro -a.

En cuanto al canal de vídeo, uso unos parámetros que producen una calidad más que aceptable. Pero, si se quiere más, se puede usar el parámetro -q. Se puede forzar el bitrate del vídeo con el parámetro -b número donde “número” es el bitrate que quieres en Kbs (un bitrate de 1200 ya es bueno).

Por último, también es posible añadirle subtítulos al vídeo final. El archivo de subtítulos debe estar en formato SRT y se especifica con el parámetro -s:

recode -i archivo-de-entrada.ext -s archivo-de-subtitulos.srt -o archivo-de-salida.avi

El texto se sitúa en la parte inferior de la pantalla y la escala por defecto es 2 (a mayor número el texto será más grande). Puedes cambiar la escala con el parámetro -e número donde “número” debe estar entre 1 y 9.

El script lo puedes poner en /home/tu-usuario/bin para que esté disponible desde cualquier directorio.

Aquí tienes el código: recode. Guárdalo (quita la extensión .txt) y dale permisos de ejecución con:

chmod u+x recode

¡Hala! a ver pelis.

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Antes de enviar el formulario: