Diferencia entre revisiones de «Ffmpeg»
m (Categorizando) |
m (Usuario doméstico/Video/Conversión de formatos trasladada a Conversión de formatos: Nombres simples) |
(Sin diferencias)
|
Revisión de 17:37 3 ago 2006
Ya sabemos que en Windows hay un montón de programas para convertir entre formatos de audio y video. Pero... ¿es posible hacer esto en GNU/Linux? La respuesta es que si. Existen algunas utilidades gráficas que permiten hacer estas conversiones. Sin embargo la reina de todas es una aplicación de línea de comandos. Quizás no sea tan bonita pero admite un montón de formatos de entrada y de salida, y es muy rápida. Estamos hablando de ffmpeg. Esta utilidad tiene parámetros como para echar para atrás, pero la idea es ir poniendo ejemplos de uso para no tener que pelear mucho.
Contenido
Instalación
Este paquete está en el repositorio universe de modo que es sencillo de instalar. Sin embargo esta versión que hay en los repositorios no tiene soporte para muchos formatos de fichero. Por ejemplo no podrás convertir un fichero de audio a AMR para subirlo a tu móvil. En mi caso era una necesidad, por lo que estuve mirando una solución. Y estás de suerte :)
Hay dos formas de hacer esto, instalando desde los fuentes del paquete o instalando el paquete binario generado. Si tienes prisa y no quieres complicarte la vida elegirás la segunda opción. El paquete te lo puedes bajar de http://issaris.be/dapper/snapshots/.
Si por el contrario te gusta hacer las cosas tu mismo sigue estas instrucciones. Lo primero de todo es tener habilitado el repositorio multiverse. Si no sabes como hacer esto pásate por [Primeros pasos/Activar universe-multiverse|Activar universe-multiverse].
Las acciones que tienes que hacer a continuación tendrás que hacerla como usuario root |
Como vamos a compilar, serán necesarios una serie de paquetes de desarrollo:
$ aptitude install dpkg-dev libimlib2-dev texi2html liblame-dev libfaad2-dev libmp4v2-dev $ aptitude install libfaac-dev libxvidcore4-dev libtheora-dev libgsm1-dev libogg-dev libvorbis-dev $ aptitude install liba52-dev libdts-dev libsdl1.2-dev libraw1394-dev libdc1394-13-dev
Vamos ahora al directorio donde se baraján los fuentes del paquete ffmpeg:
$ cd /usr/local/src
Nos bajamos los fuentes del paquetes:
$ apt-get source ffmpeg
Hay que bajarse el parche para que funcione el soporte para AMR:
$ wget http://blogger.rukker.org/dl/ffmpeg_enable_amr.patch.bz2
Cambiamos al directorio con los fuentes de ffmpeg y aplicamos el parche:
$ cd ffmpeg-0.cvs20050918 $ bzcat ../ffmpeg_enable_amr.patch.bz2 | patch -p1
Ahora construimos el paquete con la opción risky (no preguntes por qué):
$ DEB_BUILD_OPTIONS="risky" dpkg-buildpackage
Volvemos al directorio /usr/local/src e instalamos el paquete generado:
$ cd .. $ dpkg -i ffmpeg_0.cvs20050918-5ubuntu1_i386.deb
Ahora ya tenemos ffmpeg con soporte para MP3 y AMR. Bien ya está casi completada la tarea. Tenemos que evitar que apt actualice nuestra versión compilada por una actualización que no tenga soporte para MP3 y AMR. A esto se le llama pinning. Hemos de editar las preferencias de apt:
$ gedit /etc/apt/preferences
Y añadir estas líneas:
Package: ffmpeg Pin: version 0.cvs20050918-5ubuntu1 Pin-Priority: 1001
Ejemplos de conversión
AVI -> FLV
$ ffmpeg -i movie.avi -acodec mp3 -ar 11025 movie.flv
3GP -> MPEG4
$ ffmpeg -i movie.3gp -vcodec mpeg4 -acodec mp3 movie.avi
MP3 -> AMR
$ ffmpeg -i music.mp3 -acodec amr_nb -ar 8000 -ac 1 -ab 32 music.amr
MPEG -> MP3
Extrae el audio de un fichero MPEG y lo pasa a MP3
$ ffmpeg -i video.mpg -f mp3 audio_track.mp3
AVI -> VCD
Añadiendo la opción -hq usa alta calidad.
$ ffmpeg -i myfile.avi -target pal-vcd myfile_vcd.mpg
WAV -> AMR
$ ffmpeg -i music.wav -acodec amr_nb -ar 8000 -ac 1 -ab 32 music.amr
MPEG -> 3GP
$ ffmpeg -i archivo.mpeg -s qcif -r 12 -ac 1 -ar 8000 -b 30 -ab 12 salida.3gp
MPEG -> XviD
$ ffmpeg -i pelicula.mpg -acodec mp3 -vcodec xvid -b 687 pelicula.avi
MPEG -> FLV
$ ffmpeg -i pelicula.mpg -vcodec flv -y pelicula.flv
El fichero resultante no contiene correctamente la información de meta datos. Esto implica que cuando utilices el fichero en un visualizador de videos flash como Flash Video PLayer el fichero se verá correctamente pero la barra de progreso no de actualizará. Para arreglar esto usa la utilidad flvtool2 que la encontrarás en http://inlet-media.de/flvtool2. Está hecha en Ruby de modo que tendrás que instalar el paquete correspondiente. Se usa así:
$ flvtool2 -U pelicula.flv
AVI -> DV
Este es el formato Digital Video, el mismo que produce una cámara de video digital y es el que se puede usar para editar con Kino.
$ ffmpeg -i pelicula.avi -target pal-dv -y pelicula.dv
Esto me da unos errores de sincronismo del audio que no veo que se noten. Si quieres evitarlos tendrás que hacerlo de esta forma:
$ mencoder pelicula.avi -ovc lavc -oac pcm -o pelicula-new.avi && ffmpeg -i pelicula-new.avi -s pal -r pal -ac 2 -ar 48000 pelicula.dv && rm pelicula-new.avi
AVI -> PNG
$ ffmpeg -i swing.avi -vcodec png -vframes 1 -an -f rawvideo -s 320x240 swing1.png
Comprobar el resultado
Si el formato de destino no lo soporta Totem (ya sea con el backed Xine o GStreamer) pudes usar la aplicación ffplay que viene en el paquete ffmpeg que reproducirá cualquier formato soportado por ffmpeg. Esto es útil, por ejemplo, para el formato de audio de móvil AMR.