Vista la mala calidad de los últimos vídeos subidos he decidido revisar el proceso para preparar los vídeos MTS que me da la la cámara de vídeo y poder editarlos posteriormente (openshot no pilla bien los MTS).

El primer paso es convertir los vídeos a AVI. Para eso seguí el manual de Tat: convertir vídeos .MTS a .AVI en GNU/linux. Con este tutorial llegamos a un script como este:
#!/bin/bash

for a in `ls *.MTS` ; do ffmpeg -i $a -vcodec libxvid -b 12000k -acodec libmp3lame -ac 2 -ab 256k -deinterlace -s 1440×1080 `echo “$a” | cut -d’.’ -f1`.avi ; done

exit
Lo malo es que este script no deja el vídeo fino y da fallos en openshot, por lo que lo tengo que pasar a .MP4 usando la siguiente línea:
ffmpeg -i <input file> -sameq <output file>
Con eso ya tengo el vídeo listo para editarlo…. Casi, el otro día la opción -deinterlace comenzó a fallar y me dejaba el vídeo con unas barras muy feas. Investigué y vi que ffmpeg tiene otra opción para “deinterlazar” : -vf “yadif=0:-1:0”.

Al mismo tiempo quería realizar todo en un comando, por lo que con la ayuda de Redy (vale, casi todo él), llegamos a este script:
#! /bin/bash

for a in *.MTS ;

do nombre=${a%.*}

ffmpeg -i ${nombre}.MTS -vcodec libxvid -b 12000k -acodec libmp3lame -ac 2 -ab 256k -vf “yadif=0:-1:0” -s 1920×1080 ${nombre}.avi

ffmpeg -i ${nombre}.avi -sameq ${nombre}.mp4

rm -f ${nombre}.avi

done

Con esto tenemos los vídeos pasados a .MP4 y ya podemos trabajar con ellos. Pero en algunos casos sacamos vídeos con algo de movimiento, y es posible eliminarlo. El comando ffmpeg tiene un filtro llamado deshake pero, incluso instalando la última versión, tal y como indica el manual de Tat, no he conseguido hacerlo funcionar. Para conseguir esto he tenido que usar el comando transcode. Basándome en el script de Redy, he escrito este otro:
#! /bin/bash
for a in *.mp4 ;
do nombre=${a%.*}
transcode -J stabilize -i ${nombre}.mp4
transcode -J transform -i ${nombre}.mp4 -y xvid4 -o ${nombre}_stable.mp4
rm -f ${nombre}.mp4.trf
done

Tenemos tres líneas. En la primera se genera un fichero con las correcciones a aplicar, en la segunda se recodifica el vídeo en base a este fichero y en la tercera borramos el fichero de corrección creado.

Lo primero que hay que tener claro es que al reducir el movimiento del vídeo perderemos calidad en el mismo. Por otro lado, la codificación usada comprime el vídeo (sigo investigando cómo mantener la calidad original). Si sumamos los dos efectos el resultado es que el vídeo se estabiliza pero pierde calidad. Mientras sigo buscando una solución hay que pensar si compensa o no sacrificar esa calidad por la estabilización.

 

Por otro lado es posible que transcode nos de algún problema de codecs si loo usamos tal y como viene. En ese caso deberemos descargarnos unos ficheros extras desde esta web.

Version 0.96, binary files (linux 32bit), for transcode with 1.1.X (thanks to Caleb for compilation)

Version 0.96, binary files (linux 64bit x86_64), for transcode with 1.1.X

Seleccionaremos la que mejor nos venga según nuestro procesador (o una versión posterior si tenemos una nueva). Al abrirlo encontraremos varios ficheros *.so, los cuales copiaremos al direcotrio: /usr/lib/transcode/ (viene con un ejecutable install.sh que no siempre funciona).

http://www.apratizando.com/wp-content/plugins/dn_iSocial/images/facebook_48.png http://www.apratizando.com/wp-content/plugins/dn_iSocial/images/linkedin_48.png http://www.apratizando.com/wp-content/plugins/dn_iSocial/images/twitter_48.png http://www.apratizando.com/wp-content/plugins/dn_iSocial/images/meneame_48.png http://www.apratizando.com/wp-content/plugins/dn_iSocial/images/barrapunto_48.png