viernes, 30 de abril de 2010

Conversión con FFMPEG y MENCODER

Hoy os traigo unas cuantas líneas para consola que os pueden resultar útiles a la hora de convertir diversos formatos de vídeo (WMV, ASF, MP4...) incompatibles con programas como el VirtualDub entre otros.

Para archivos ASF o WMV:
mencoder *.ASF -ofps 30 -ovc lavc -oac copy -o out.avi


Para archivos MP4:
mencoder in.MP4 -ofps 30 -ovc lavc -oac pcm -o out.avi


Para insertar subtítulos en un archivo de vídeo:
mencoder in.avi -sub insub.srt -oac copy -ovc lavc -o out.avi -subcp latin1 -font /usr/share/fonts/msttcorefonts/arial.ttf -subfont-text-scale 3.8

mencoder in.avi -sub 1.srt -sub 2.srt -sub 3.srt -oac copy -ovc lavc -o out.avi -subcp latin1 -font /usr/share/fonts/msttcorefonts/arial.ttf -subfont-text-scale 3.8


Para crear un archivo de vídeo a partir de imágenes:
ffmpeg -f image2 -i imagen%04d.jpg video.mpg


Para archivos MTS:
ffmpeg -i in.MTS -vcodec mpeg4 -b 23855k -acodec ac3 -ac 2 -ab 256k -deinterlace -s 1920x1080 out1080.avi


Como veis, las posibilidades son infinitas y estos son sólo algunos escasos ejemplos de todo lo que se puede hacer. Por ejemplo, se puede crear un script para que descargue y convierta automáticamente los archivos de tu videocámara. En mi caso, una Canon LEGRIA HF200, sería algo así:
#!/bin/bash

DIR=$(date +%F)__$(date +%T)

echo " "
echo "MOVING FILES"
echo "---------------"
mkdir /home/eglomer/Imágenes/Canon/$DIR
mv /media/CANON/DCIM /home/eglomer/Imágenes/Canon/$DIR
mv /media/CANON/PRIVATE /home/eglomer/Imágenes/Canon/$DIR
echo "Done"

echo " "
echo "CONVERTING TO AVI"
echo "------------------------"
cd /home/eglomer/Imágenes/Canon/$DIR/PRIVATE/AVCHD/BDMV/STREAM

for i in $(ls *.MTS) ;
do ffmpeg -i $i -f avi -vcodec mpeg4 -b 23855k -acodec ac3 -ac 2 -ab 256k -deinterlace -s 1920x1080 /home/eglomer/Imágenes/Canon/$DIR.-.$i.avi;
done

echo " "
echo " "
echo "DONE!"
sleep 2
exit


O para mi BenQ DC-S30 cuyo formato de vídeo es ASF:
#!/bin/bash

DIR=$(date +%F)__$(date +%T)

echo " "
echo "MOVING FILES"
echo "---------------"
mkdir /home/eglomer/Imágenes/Canon/$DIR
mv /media/disk/DCIM /home/eglomer/Imágenes/Canon/$DIR
echo "Done"

echo " "
echo "CONVERTING TO AVI"
echo "------------------------"
cd /home/eglomer/Imágenes/Canon/$DIR/DCIM/100MEDIA

for i in $(ls *.ASF) ;
do mencoder $i -ofps 30 -ovc lavc -oac copy -o /home/eglomer/Imágenes/Canon/$DIR.-.$i.avi;
done

echo " "
echo " "
echo "DONE!"
sleep 2
exit


Pan comido, ¿verdad?

2 comentarios:

Anónimo dijo...

Fantástico!.
Convertir los archivos de vídeo ".mts" me estaba dando muchos problemas.
Gracias Eglomer, me a sido muy útil tu blog.
jaumer2.

Eglomer dijo...

Me alegro, Jaumer2 ^^