Diferencia entre revisiones de «Ffmpeg»
(→Enlaces externos) |
(→Enlaces externos) |
||
Línea 141: | Línea 141: | ||
* [http://maemo.org/maemowiki/VideoEncoding Encoding videos for Nokia 770] | * [http://maemo.org/maemowiki/VideoEncoding Encoding videos for Nokia 770] | ||
* [http://blogs.s60.com/s60multimedia/2006/11/video_transcoding_using_ffmpeg.html Video transcoding using ffmpeg] | * [http://blogs.s60.com/s60multimedia/2006/11/video_transcoding_using_ffmpeg.html Video transcoding using ffmpeg] | ||
+ | * [http://www.aozeo.com/blog/40-linux-convertir-videos-3gp-ffmpeg-telephone-portable Convertir des vidéos en 3gp avec ffmpeg] | ||
[[Categoría:Multimedia]] | [[Categoría:Multimedia]] |
Revisión de 16:17 14 dic 2006
Ffmpeg es un programa sin interfaz gráfica que permite convertir o transformar entre formatos multimedia, tanto de video como de audio. Aunque existen otros programas, algunos sin necesidad de usar comandos, es una de las opciones con más posibilidades y es muy rápida.
El paquete viene con tres programas:
- ffmpeg: ffmpeg es una herramienta en línea de comandos para convertir ficheros de vídeo, flujos de red o la entrada de una tarjeta de TV a varios formatos de vídeo.
- ffserver: es un servidor de flujo para todo lo que ffmpeg pueda usar como entrada (ficheros, flujos, entrada de la tarjeta de TV, cámara web, etc).
- ffplay: es un reproductor de medios muy simple y portable que utiliza las librerías ffmpeg y la librería SDL.
Contenido
Instalación
Existe una versión inicial en universe (véase activar universe y multiverse). Sin embargo esta versión esta algo limitada para algunos tipos de formatos multimedia.
Para obtener esta versión puedes conseguirlo de dos maneras distintas: instalando desde los fuentes del paquete o desde el paquete binario generado. Si tienes prisa elige la segunda opción. El paquete te lo puedes descargar de Issaris.be.
Otra opción mas manual va a necesitar de que ya tengas activados los repositorios universe y multiverse de Ubuntu.
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:
$ sudo aptitude install dpkg-dev libimlib2-dev texi2html liblame-dev libfaad2-dev libmp4v2-dev $ sudo aptitude install libfaac-dev libxvidcore4-dev libtheora-dev libgsm1-dev libogg-dev libvorbis-dev $ sudo 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, descarga 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. Hay que 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
También tenemos otra utilidad llamada FLV MetaData Injector que aunque sea para Windows, funciona perfectamente con [Wine] (por lo menos la versión de línea de comandos). Se usa así:
$ wine flvmdi.exe pelicula.flv
Otra forma de convertir a formato FLV es usando [Memcoder]:
$ mencoder pelicula.avi -o pelicula.flv -of lavf -oac mp3lame -lameopts br=32 -af lavcresample=22050 -srate 22050 -ovc lavc -lavcopts vcodec=flv:vbitrate=340:autoaspect:mbd=2:trell:v4mv -vf scale=320:240 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames
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 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
Otra forma de hacerlo:
$ ffmpeg -i pelicula.avi -vcodec dvvideo -acodec copy -f dv pelicula.dv -hq
Kino también lee el formato AVI generado de esta forma (por ejemplo a partir de un FLV):
$ mencoder -oac mp3lame -ovc xvid -of avi -xvidencopts bitrate=1350 -o output.avi input.flv
AVI -> PNG
$ ffmpeg -i swing.avi -vcodec png -vframes 1 -an -f rawvideo -s 320x240 swing1.png
WMA -> MP3
Tras el parametro ab especificaremos el bitrate del MP3 (192 en el ejemplo).
$ ffmpeg -i ficheroEntrada.wma -f mp3 -ab 192 ficheroSalida.mp3
JPG -> DivX
$ mencoder -mf on:w=800:h=600:fps=0.5 -ovc divx4 -o output.avi \*.jpg
Así te muestra una foto cada dos segundos, si quieres cada cuatro segundos deberías poner 0.25 en fps=.
Comprobar el resultado
Si el formato de destino no lo soporta el reproductor multimedia Totem puedes usar la aplicación ffplay que viene en el paquete ffmpeg, reproducirá cualquier formato soportado por ffmpeg. Esto es útil, por ejemplo, para el formato de audio de móvil AMR.