miércoles, 5 de agosto de 2009

Crear vídeos para YouTube desde Ubuntu

En la anterior entrada hemos visto cómo volcar nuestros vídeos desde una cámara MiniDV al disco duro del ordenador.

A continuación vamos a ver el proceso para publicar estos vídeo en YouTube. Si echamos un vistazo a las recomendaciones sobre los formatos de vídeo vemos los códecs tanto de audio como de vídeo que recomiendan utilizar.

Nuestro objetivo es utilizar unos códecs que proporcionen una buena calidad y con un tamaño de fichero final resultante razonablemente pequeño. En particular, elegiremos trabajar con los códecs más avanzados de tipo mpeg4 soportados: H.264 para vídeo (también conocido como AVC) y AAC para el audio.

Además, dado que estos son los codecs utilizados actualmente en la mayor parte de los portales de vídeo para la publicación de éstos, es posible incluso (aunque no tengo ninguna constancia de esto) que evitemos algún paso adicional de reencodado, consiguiendo así una mejor calidad en el resultado final.

Para realizar la conversión, utilizarems la herramienta ffmpeg, disponible en los repositorios de Ubuntu 9.04 e incluida en la instalación por defecto. Con respecto al codec de vídeo, tenemos que instalar el paquete libx264-65 que es donde se encuentra el código para codificar en formato H.264; por último, en lo referente al audio, deberemos de reemplazar el paquete libavcodec52 por libavcodec-unstripped-52 dado que éste último es el que incluye lo necesario para convertir audio a formato AAC.

En definitiva, es suficiente con hacer lo siguiente:


$ sudo apt-get install libx264-65 libavcodec-unstripped-52


Una vez que contamos con la herramienta de conversión, así como con los codecs adecuados, obtenemos la línea de comando en cuestión que realizará la acción deseada:


ffmpeg -i captureTest.dv -acodec libfaac -ab 64k -vcodec libx264 -b 720k -threads 0 -deinterlace -r 25 -s 640x480 -aspect 4:3 captureTest.mp4


En nuestro caso particular:
  • El fichero de entrada es captureTest.dv (volcado de un vídeo grabado en una cámara MiniDV) y el fichero generado (salida) es captureTest.mp4
  • Generamos audio en formato AAC con una tasa (bitrate) de 64kbps
  • Generamos vídeo en formato x264/h264 con una tasa de 720kbps
  • Dado que el contenido inicial está entrelazado, indicamos que se realice un proceso de desentrelazado
  • Deseamos un resultado final con un tamaño de 640x480 a 25fps
  • La proporción (aspect ratio) final debe ser 4:3

Con este comando, aplicandolo al vídeo de ejemplo conseguimos pasar de 69.5MB a 2.75MB, pero dado que utilizamos codecs mpeg-4 muy eficientes, mantenemos una calidad razonablemente buena, tal y como se aprecia en el ejemplo:



Como dato anecdótico, el video muestra la entrada a la Cartuja de Miraflores, en Burgos.

2 comentarios:

josean dijo...

Por desgracia, la actualización a Ubuntu 9.10 trae consigo muchos cambios y algunos efectos no deseables.

Uno de estos efectos es una redistribución de las librerías de codecs en diferentes paquetes.

En definitiva: Tras actualizar a Ubuntu 9.10, por ahora no soy capaz de reproducir el comando en cuestión. En cuento tenga ocasión de resolver el problema ya indicaré los pasos a seguir.

josean dijo...

Es oficial:

Right now there is no way to encode AAC audio with FFmpeg from the Karmic Koala repository. You will have to compile FFmpeg yourself to do so (http://ubuntuforums.org/showpost.php?p=7020421&postcount=1)