Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



sábado, 12 de marzo de 2016

Trucos: Breve manual de ffmpeg



Trucos: Breve manual 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 el archivo "sin_audio.avi", solo hay un video 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 -aspect 4:3 video_compatible.mpg

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


Fuentes: