iconoOcupando el Vacío II. Nueva ubicación del Patio Maravillas

Reportaje 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í!

iconoMas tutorial de ffmpeg

ffmpeg 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

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".

Permalink  blog

iconoIsaac.t-ve

isaac_teveUna 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.

Permalink  blog

iconoUn clásico: Technologies To the People. Video Collection

Para nosotros un clásico que conserva toda su vigencia.

Video Collection

IRATIONAL

Permalink  blog

iconoAgua viva, código libre. Una nueva cultura del agua

Angkor Wat Cambodia 2004 Luang Prabang Angkor Wat Cambodia
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.

Permalink  blog

iconoA 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

Permalink  blog

iconoKPHB

kphb
ma page est ta page chien fou
ma radio est ta radio
mon espace est ton espace

ma vie n'est pas ta vie pour autant...

zap & biz

kphb

<< 1 2 3 >>