iconoBreve tutorial de ffmpeg

Primero se llama al programa por su nombre ffmpeg y se le pasan parámetros con '-' y al final se indica el archivo que queremos de salida.

1) Para saber los codecs de un video:
----------------------------------

ffmpeg -i tu_video.avi

Explicación:
El primer parámetro que nos encontramos es -i (de input en inglés) con ésto le decimos cual es el archivo de entrada.
Normalmente también se pasan mas parámetros para decirle codecs, video de salida, etc., como no se pasa mas que el -i (archivo de entrada), te devuelve algo así:

Input #0, avi, from 'el_video.avi':
  Duration: 00:01:00.1, start: 0.000000, bitrate: 305 kb/s
  Stream #0.0: Video: mpeg4, yuv420p, 624x336, 25.00 fps(r)
  Stream #0.1: Audio: mp3, 48000 Hz, stereo, 64 kb/s
Must supply at least one output file

En este caso aparte de la duración del video también te dice que es formato mpeg4, compresión yuv420p, tamaño 624x336 y 25 fotogramas/segundo y el audio es mp3, 48000Hz, estereo y 64kb/segundo.

Como no le hemos pasado archivo de salida nos dice eso de "Must supply at least one output file", pero vale, solo queríamos ver los codecs.

2) Para quitar el audio:
---------------------

ffmpeg -i el_video.avi -an sin_audio.avi

Explicación::
En este caso le pasamos -an (audio no) y le decimos el archivo de salida.

Si miramos a ver qué codecs tiene el archivo... (ver punto 1)

ffmpeg -i sin_audio.avi

Input #0, avi, from 'sin_audio.avi':
  Duration: 00:01:00.0, start: 0.000000, bitrate: 236 kb/s
  Stream #0.0: Video: mpeg4, yuv420p, 624x336, 25.00 fps(r)
Must supply at least one output file

Vemos que solo hay un video mondo y lirondo sin audio.

3) Para sacar el audio:
-----------------------

ffmpeg -i el_video.avi -vn solo_audio.mp3

Explicación:
Le pasamos -vn (video no) y lo pasamos a mp3

Miramos a ver que ha salido...

ffmpeg -i solo_audio.mp3

Input #0, mp3, from 'solo_audio.mp3':
  Duration: 00:01:00.2, start: 0.000000, bitrate: 64 kb/s
  Stream #0.0: Audio: mp3, 48000 Hz, stereo, 64 kb/s
Must supply at least one output file

No hay video, un mp3 puro y duro.

4) Para juntar un video y un audio:
-----------------------------------

ffmpeg -i sin_audio.avi -i solo_audio.mp3 todo_junto.avi

Explicación:
Pues le hemos pasado dos archivos como input con -i dos veces, una para el avi sin audio y otra para el mp3

Miramos la salida...

ffmpeg -i todo_junto.avi

Input #0, avi, from 'todo_junto.avi':
  Duration: 00:01:00.2, start: 0.000000, bitrate: 308 kb/s
  Stream #0.0: Video: mpeg4, yuv420p, 624x336, 25.00 fps(r)
  Stream #0.1: Audio: mp2, 48000 Hz, stereo, 64 kb/s
Must supply at least one output file

Tenemos un avi con sonido.

Pero ¡aja! nos ha colocado un audio mp2 en vez del mp3, a continuación vamos a ver como manejamos los codecs que queramos utilizar.

5) Para decir un codec de audio expecífico:
-------------------------------------------

ffmpeg -i sin_audio.avi -i solo_audio.mp3 -acodec mp3 todo_junto.avi

Explicación:
Le decimos que -acodec (audio codec) mp3

Miramos a ver que tenemos...

ffmpeg -i todo_junto.avi

Input #0, avi, from 'todo_junto.avi':
  Duration: 00:01:00.2, start: 0.000000, bitrate: 308 kb/s
  Stream #0.0: Video: mpeg4, yuv420p, 624x336, 25.00 fps(r)
  Stream #0.1: Audio: mp3, 48000 Hz, stereo, 64 kb/s
Must supply at least one output file

Ya está como en el punto anterior pero con el audio codec mp3

6) Para decir un codec de video expecífico :
--------------------------------------------
Para pasar videos a xvid

ffmpeg -i el_video.avi -vcodec mpeg4 -vtag xvid -resultado.avi

Explicación:
Decimos que -vcodec (video codec) sea mp4 y -vtag (video tag o etiqueta) xvid

Para pasar videos a flv

ffmpeg -i el_video.avi -ar 22050 -f flv resultado.flv

Explicación -ar (audio rate o frecuencia de audio) lo ponemos a 22050Hz ya que flv no permite 48000Hz y lo reducimos; con -f (forzar formato) le decimos que flv.

Pero lo realmente interesante es comprimir videos que tenemos de nuestra cámara y hayamos editado y queramos subirlos a internet o hacer un avi de buena calidad, para ello empezamos a pasar mas parámetros, veamoslo...

7) Para hacer un avi decente:
-----------------------------

ffmpeg -i original.dv -vcodec mpeg4 -vtag xvid -acodec mp3 -ar 22050 -ab 128k -qscale 4 -s 380x284 -f avi resultado.avi

Explicación:
-vcodec = video codec
-vtag = video tag o etiqueta (esto no afecta a la calidad solo lo etiqueta como xvid sin mas)
-acodec = audio codec
-ar = audio rate o frecuencia de audio
-ab = audio bit rate o frecuencia de bits por segundo
-qscale = quantum scale esto afecta a como comprime el video, a menor numero mejor calidad pero afecta al tamaño del video final a mi 4 me resulta aceptable
-s = size o tamaño
-f = format o formato

8) Para hacer un flv:
--------------------

ffmpeg -i original.dv -ar 22050 -qscale 4 -s 380x284 -f flv resultado.flv

Explicación:
-ar = audio rate o frecuencia de audio
-qscale = quantum scale esto afecta a como comprime el video, a menor numero mejor calidad pero afecta al tamaño del video final a mi 4 me resulta aceptable
-s = size o tamaño
-f = format o formato

9) Si queremos desentrelazar un video nada mas facil que:
--------------------------------------------------------

ffmpeg -i video-entrelazado.dv -deinterlace -acodec copy resultado-desentrelazado.dv

Explicación:
-deinterlace = desentrelaza
-acodec copy = copia el codec de audio

10) Para pasar un video a formato dvd compatible:
-------------------------------------------------

ffmpeg -i original.dv -target pal-dvd video_compatible.mpg

Explicación:
-target pal-dvd = objetivo pal-dvd (también puede ser "vcd", "svcd", "dvd", "dv", "dv50", "pal-vcd", "ntsc-svcd"...)


Si te ha interesado puedes continuar con "mas tutorial de ffmpeg".

5 commentarios

Comentario de: keagoaki [Visitante]
Gracias Gracias Gracias Gracias Gracias Gracias Gracias Gracias Gracias Gracias Gracias Gracias Gracias Gracias Gracias Gracias Gracias Gracias
08.02.10 @ 23:01
Comentario de: roy [Visitante]
Muchas gracias finisimo:)
habra alguno de mencoder por ahi?
:)
08.02.10 @ 23:05
Comentario de: Jorge Rubiano [Visitante]
Hola a todos, en este momento, estoy trabajando con esta excelente librería (FFmpeg) los ejemplos en esta página me han servido mucho, he realizado un pequeño editor de vídeo (http://picasaweb.google.com/lh.....directlink) en el cual el usuario realiza una serie de cortes.

Esto se ha realizado, debido a que se ha hecho una aplicación que ayudado con otro excelente recurso como es RED5 se hace la grabación de vídeos, pero hay momentos en que se el usuario se equivoca y se necesita tan sólo quitar algunas partes de ls vídeos realizados.

Mi problema es el siguiente:

A través de una aplicación en Flash envio los cortes que deseo realizar, como son el punto inicial y final, y guardo los vídeos de forma sucesiva: video_1, video_2

El video de origen en FLV, he leído que hasta el momento para realizar la acción de “combinación” de vídeos sólo es posible con MPEG, entonces hago lo siguiente:

Creo las partes de los videos:

ffmpeg -i video_a_partir.flv -ss 00 -t 10 video_1.mpeg
ffmpeg -i video_a_partir.flv -ss 80 -t 100 video_2.mpeg

Y así sucesivamente con los cortes que se requieran, luego los combino, leyendo encontré que para windows que es mi caso, se usa el comando copy

copy video_1.mpeg /b + video_2.mpeg /b video_unido.mpeg

Lo cual se hace correctamente, pero como el visor a mostrar el vídeo esta realizado en Flash, hago la conversión al formato FLV

ffmpeg -y -i video_unido.mpeg -f flv -vcodec flv -s 320×240 -ar 22050 video_final.flv

La conversión se hace de forma correcta, pero la duración del vídeo se pierde, por lo cual la reproducción no funciona de forma correcta

Viendo la información del vídeo

ffmpeg -i video_final.flv

Me da como respuesta lo siguiente

Duration: 00:00:00.00, start: 0.000000, bitrate: 64 kb/s

No sé si me hace falta algún paramétro, pero lo he intentado de varias formas y me sigue saliendo igual, espero haber sido claro en mi inquietud y agradecería cualquier ayuda que me puedieran prestar.

Muchas gracias.

Jorge Rubiano.
06.03.10 @ 06:08
Comentario de: Sensukho [Visitante]
Hola, muy buena info, pero tengo una pregunta:

Al ver la info de mi archivo avi (grabado de una IPCam DCS-2121) me arroja esto:


sensukho@sensukho-laptop:/opt/lampp/htdocs/Proyectos/Videos/videos/20100531/11$ ffmpeg -i 20100531-1149_D.avi
FFmpeg version 0.5-svn17737+3:0.svn20090303-1ubuntu6.2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --extra-version=svn17737+3:0.svn20090303-1ubuntu6.2 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --disable-stripping --disable-vhook --enable-libdc1394 --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-armvfp --disable-neon --disable-altivec --disable-vis --enable-shared --disable-static
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 0 / 52.20. 0
libavformat 52.31. 0 / 52.31. 0
libavdevice 52. 1. 0 / 52. 1. 0
libavfilter 0. 4. 0 / 0. 4. 0
libswscale 0. 7. 1 / 0. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on Apr 23 2010 15:08:34, gcc: 4.3.3
Input #0, avi, from '20100531-1149_D.avi':
Duration: 00:00:17.28, start: 0.000000, bitrate: 3298 kb/s
Stream #0.0: Video: mjpeg, 1024x768, 4.67 tbr, 4.67 tbn, 4.67 tbc
Stream #0.1: Audio: pcm_s16le, 8000 Hz, mono, s16, 128 kb/s

...como podras ver al video le falta el parametro yuv420p y cuando intento convertirlo a flv me convierte el video sin ningun error pero al reproducirlo se ve la pantalla en verde y el audio si se escucha, alguna idea de como pueda resolver esto?

de antemano gracias!
02.06.10 @ 22:15
Comentario de: juanjo [Visitante]
Hola es posible usar ffmpeg de forma oculta sin que salga la pantalla de MS-dos.
Gracias
29.08.10 @ 23:25

Deja un comentario


Tu email no será mostrado en esta web.
(Saltos de línea se convierten en <br />)
(Nombre & email)