Ocupando el Vacío II. Nueva ubicación del Patio MaravillasReportaje sobre la concentración en protesta por el desalojo del Patio Maravillas y posterior inauguración del nuevo centro social en la calle del pez nº 21. ¡Nos vemos allí!
Mas tutorial de ffmpegffmpeg para las principales tareas de video y audio, como sacarle jugo al programa.
Esto es una continuación del breve tutorial de ffmpeg que publiqué anteriormente.
Nota: Normalmente estoy usando para los ejemplos videos .dv que son los que tienes al capturar de una video camara, pero casi todos los ejemplos se pueden hacer con cualquier tipo de archivo de video como .avi, .flv, mpg, etc.
1) Para pasar a camara lenta (hace falta mjpegtools):
-------------------------------------------------------------------------
ffmpeg -i original.dv -f yuv4mpegpipe - | yuvfps -s 15:1 -r 15:1 | ffmpeg -f yuv4mpegpipe -i - -r 25 -y lento.dv
Explicación:
-i video de entrada
-f formato, en este caso yuv4mpegpipe
Luego los parámetros yuvfps: -s y -r son los frames por segundo, es decir 15:1 15 frames por segundo, para mas lento 10:1 o 7:1
-r son los frames por segundo
-y para que sobre escriba el archivo de salida
lento.dv es el nuevo video a camara lenta.
2) Para recortar partes de un video cambiando el tamaño:
-----------------------------------------------------------------------------
ffmpeg -i entrada.dv -croptop 150 -cropbottom 150 -sameq recortado.mpg
Explicación:
-i video de entrada
-croptop recorta de arriba 150px en este caso
-cropbottom recorta de abajo 150px en este caso
-sameq es para mantener la misma calidad que el original (same quality)
También existe-cropleft, recorta a la izquierda, y -cropright, recorta a la derecha.
He probado con salida recortado.avi en vez de recortado.mpg, pero el avi me sale deformado.
3) Para recortar partes de un video SIN cambiarlo de tamaño:
--------------------------------------------------------------------------------------
ffmpeg -i entrada.dv -padtop 150 -padbottom 150 -sameq recortado-mismo-tamaño.mpg
Explicación:
-i video de entrada
-padtop borra de arriba 150px en este caso
-padbottom borra de abajo 150px en este caso
-sameq es para mantener la misma calidad que el original (same quality)
También existe -padleft, borra a la izquierda, y -padright, borra a la derecha.
El video no cambia de tamaño como en el ejemplo anterior y pone bandas negras.
Puedes indicar el color que quieras para las bandas con '-padcolor color_hexadecimal', si añades '-padcolor ff0000' las bandas serían rojas.
4) Para añadir otra pista de audio al video (por ejemplo para tener un video con audio en español e inglés):
---------------------------------------------------------------------------------------------------------------------------
ffmpeg -i video-ingles.dv -i audio-español.mp3 -sameq -acodec libmp3lame -acodec libmp3lame peli-con-dos-audios.mpg -newaudio
Explicación:
-i el primero es el video de entrada, el segundo es el audio que quieres añadir
-sameq para que mantenga la misma calidad que el original
-acodec el codec de audio, se indica dos veces, una para cada pista
peli-con-dos-audios.mpg es el archivo de salida
-newaudio añade una nueva pista de audio al archivo de salida
5) Para sacar trozos de un video o audio:
----------------------------------------------------------
ffmpeg -i entrada.dv -t 180 -ss 60 -sameq tres-minutos.dv
Explicación:
-i video de entrada
-t es el tiempo en segundos que quieres procesar en este caso 3 minutos
-ss es desde donde quieres procesar en segundos en este caso 1 minuto
-sameq para que mantenga la misma calidad
6) Para unir varios videos o audios en uno:
--------------------------------------------------------
Primero hay que pasarlos a mpg con:
ffmpeg -i video1.avi -sameq video1.mpg
ffmpeg -i video2.avi -sameq video2.mpg
ffmpeg -i video3.avi -sameq video3.mpg
Los unes con
cat video1.mpg video2.mpg video3.mpg > todos-juntos.mpg
Para archivos .dv o .VOB NO hay que pasarlos a mpg
Ahora si quieres puedes convertir el archivo final al formato que quieras.
Para audio en mp3 puedes hacer directamente:
cat audio1.mp3 audio2.mp3 audio3.mp3 > todos-juntos.mp3
7) Para pasar de wav a mp3:
---------------------------------------------
ffmpeg -i audio.wav -ar 22050 -ab 128k un-mp3.mp3
Explicación:
-i el audio que quieres convertir
-ar la frecuencia en este caso 22050 Hz
-ab el bitrate
8) Resolución de problemas (algunos)
----------------------------------------------------
Muchas veces lo que encuentras en internet y funciona para algunos no te funciona a ti. Cada cual tiene su versión de ffmpeg y cada versión viene con unas u otras opciones.
Siguiendo los ejemplos que he puesto te pueden salir el siguiente error al intentar hacer un mp3:
Unsupported codec for output stream ....
Esto es porque con las distribuciones oficiales de Ubuntu no viene ninguna libreria que tenga algo de código propietario. Por ejemplo Ubuntu Karmic Koala 9.10 no viene con codificadores para mp3, xvid, h264 y bastantes mas y no hay manera de hacer nada con ellos. La solución está en instalar la librería libavcodec-extra-52 del repositorio de Medibuntu.
Para poder instalar desde Medibuntu primero tienes que añadir los repositorios de ellos escribiendo en consola:
sudo wget http://www.medibuntu.org/sources.list.d/`lsb_release -cs`.list --output-document=/etc/apt/sources.list.d/medibuntu.list && sudo apt-get -q update && sudo apt-get --yes -q --allow-unauthenticated install medibuntu-keyring && sudo apt-get -q update
Te pedirá tu password.
Este chorizo de comando está adaptado de Medibuntu - Community Ubuntu Documentation visto en ubuntuforums
Luego puedes instalarte libavcodec-extra-52 desde el synaptic.
Otro tipo de errores que te puedes encontrar aún teniendo el codec para mp3 (libmp3lame) puede ser:
Error while opening codec for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height
Lo que te dice es que los parametros no valen, prueba cambiando el -ar a la mitad del original (de 48000Hz a 24000Hz) por ejem '-ar 24000', si no va también intenta meter solo 2 canales de audio con '-ac 2'. Si estás con un video prueba cambiando los fps o rate con 'r 25' para pal o tal vez sea por el tamaño prueba a cambiarlo con '-s ANCHOxALTO'
9) Para ver que codecs y formatos maneja la versión que tienes de ffmpeg:
------------------------------------------------------------------------------------------
ffmpeg -formats
Si escribes ffmpeg -format > formatos-ffmpeg.txt te creará un achivo que seguramente será mas amigable de consultar.
Te dice cosas como:
DEA ac3 ATSC A/52A (AC-3)
DEV D dvvideo DV (Digital Video)
D V D h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
DEVSD huffyuv Huffyuv / HuffYUV
EA libmp3lame libmp3lame MP3 (MPEG audio layer 3)
EV libtheora libtheora Theora
EA libvorbis libvorbis Vorbis
EV libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
DEVSDT mpeg2video MPEG-2 video
DEVSDT mpeg4 MPEG-4 part 2
Parece complicado por la cantidad de información,pero significa:
Primera columna:
D = decodifica
E = codifica
A = audio
V = video
S = subtítulos
D = render directo
T = maneja la entrada de lugares aleatorios
La segunda columna (ac3 o libmp3lame o mpeg4 etc) es elnombre del codec como debe pasarse para que lo reconozca.
Aquí vemos que h264 decodifica, pero para codificar tienes que poner libx264.
Y para terminar
10) Como hacerse un avi de varios VOB de un dvd (casero eso si, que sino está prohibido)
----------------------------------------------------------------------------------------------------
Primero juntamos todos los VOB en un solo video:
cat VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB VTS_01_5.VOB > todo-junto.mpg
Esto nos crea un archivo de varios gigas, pero no nos asustemnos, lo borraremos nada mas terminar con el ffmpeg.
Ahora le pasamos a ffmpeg el archivo todo-junto.mpg
ffmpeg -i todo-junto.mpg -map 0:0 -vcodec libx264 -vpre hq -crf 22 -threads 0 -s 560x420 -map 0:1 -acodec libmp3lame -ar 24000 -ab 128k -f avi la-peli.avi
Explicación:
-i video de entrada
-map 0:0 indica el canal que quieres en este caso es el del video
-vcodec el videio codec que utilizamos
-vpre indica la preconfiguración que queremos que es hq (hight quality o alta calidad)
-crf el factor constante del rate (o cantidad de bits por segundo) a menor número mejor la calidad y mayor los bits/segundo
-threads el número de procesos 0 o auto
-s el tamaño en píxeles en este caso partiendo de 720x576 de PAL lo he reducido un poco manteniendo la proporción 4:3
-map 0:1 indica el canal que quieres en este caso es el primero de audio, si hay mas de un audio puedes poner '-map 0:2' si quieres la segunda pista de audio
-acodec el codec de audio
-ar la frecuencia de audio en Hz
-ab el bitrate del audio
-f para forzar el formato
Breve tutorial de ffmpegPrimero 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".
Isaac.t-ve
Una televisión que empieza su andadura en Internet y en la que tenemos puesta la mirada, pero no la mirada plana que caractiza al medio televisivo sino la mirada activa y creativa. Y no sólo la mirada, también la visión, colaborativa y colectiva. isaac.t-ve
Un saludo para Isaac Hacksimov y las gentes del Hamlab.
Agua viva, código libre. Una nueva cultura del agua

De manantiales, pozos, ríos y lagos, fluyendo y componiendo nuestros tejidos, AGUA lavándote la cara en una lluviosa mañana en la ciudad, fluido vital del planeta, sistema sanguíneo portador de energía, de vida y también de información.
A RAS DEL SUELO. Documental Lavapiés.Largometraje muy especial sobre el barrio de Lavapiés en el que se construyen varios retratos de personas y procesos del barrio. El documental se para en cada persona, en cada imagen, sin prisas, convive y se hace parte del paisaje vital que registra.
A Ras del suelo de Agatha Macias Zek y Alberto García Ortíz, que han puesto a su trabajo una licencia copyleft está ya disponible en Internet en este enlace a través de Emule o en la página web de la película. También puedes comprar una estupenda edición en DVD, ya que ellos han financiado toda la película y están deseando abordar nuevos y creativos proyectos.
Puntos de venta en Madrid:
TRAFICANTES DE SUEÑOS, c/ Embajadores 35
PARSIMONIA, c/ San Simón 3
TÍO VINAGRE, c/ San Carlos 6
LA LUCIÉRNAGA, c/ Marqués de Toca 5
FIN DEL MUNDO, c/ Doctor Fourquet 28
BOTAS, c/ Fe 9
GRANDOLA, c/ Sombrerete 9
KIOSKO DE PRENSA, Pza. Lavapiés
TABACOS, c/ Lavapiés
LO MÁXIMO, c/ San Carlos
LA LIBRE RÍA, c/ Argumosa 39
LIBRERÍA CASA ENCENDIDA, Ronda de Valencia 2
ECOTIENDA, c/Carnero 4
FREEPRESS, c/Fe 10