Manual de FFmpeg con ejemplos – Parte 2 de 2.
Continuamos con el manual de FFmpeg, que recordemos que consta de dos partes, en cada una vemos lo siguiente:
- Instalar ffmpeg: Parte 1 de 2
- Como usar ffmpeg – básico: Parte 1 de 2
- Uso de ffmpeg – avanzado: Parte 2 de 2
- Como usar los filtros de ffmpeg: Parte 2 de 2
Vamos a la segunda parte.
Manual de FFmpeg con ejemplos
Uso de ffmpeg – avanzado
Dividir un archivo multimedia:
Para dividir un archivo en varias partes independientes que sean operativas, especificamos las horas de inicio y de finalización (o duración).
Por ejemplo:
ffmpeg -i mivideo.mp4 -t 00:00:30 mivideo_1.mp4 -ss 00:00:30 mivideo_2.mp4
Según lo especificado, el primer vídeo será de 30 segundos, el segundo el resto del archivo a partir de la finalización del primer vídeo. Puedes crear todas las divisiones que quieras.
Concatenar archivos:
La herramienta ffmpeg es capaz de concatenar archivos multimedia (audio, video, etc…), ademas realiza está operación de manera muy simple.
Creamos un archivo de texto con nuestro editor preferido.
nano mis-videos.txt
Agregamos las rutas completas de los archivos que queremos concatenar, por ejemplo:
/home/sololinux/vídeos/video1.mp4
/home/sololinux/vídeos/video2.mp4
/home/sololinux/vídeos/video3.mp4
Guarda el archivo y cierra el editor.
Ejecuta lo siguiente:
ffmpeg -f concat -i mis-videos.txt video-completo.mp4
Vídeo concatenado.
Grabar la pantalla en vídeo:
Muy útil para grabar demostraciones en vídeo, ejemplos, etc… . Debes especificar la resolución de tu monitor (por ejemplo 1280 x 720), y el numero de monitor que usas (es por si estas usando más de un monitor) que normalmente es «0.0»
ffmpeg -f x11grab -s 1280x720 -i :0.0 video.mp4
Puedes evitar tener que ingresar la resolución, con:
-s $(xdpyinfo | grep dimensions | awk '{print $2;}')
El resultado del comando completo es:
ffmpeg -f x11grab -s $(xdpyinfo | grep dimensions | awk '{print $2;}') -i :0.0 video.mp4
El vídeo se reproducirá a pantalla completa independientemente de la resolución del monitor.
Grabar la WebCam:
Detecta donde está conectada la webcam u otro dispositivo similar. Normalmente la puedes encontrar en /dev: /dev/video0, /dev/video1, etc…
Ejecuta.
ffmpeg -i /dev/video0 video.mkv
Para detener la grabación pulsa «Q» o «CTRL+C«.
Grabar audio:
Las distribuciones linux manejan el audio de un sistema a través de ALSA y pulseaudio. La herramienta ffmpeg puede manejar cualquiera de los dos, pero en este caso nos decantaremos por pulseaudio.
Para poder usar pulseaudio ejecutaremos ( -f ) alsa, ademas indicaremos el valor de la entrada de audio, normalmente ( -i ) default.
ejemplo de uso…
ffmpeg -f alsa -i default musica.mp3
Grabar vídeo y audio:
En este ejemplo que te propongo grabamos el vídeo y el audio de forma independiente, ademas puedes modificar el codec y seleccionar los frames.
ffmpeg -i /dev/video0 -f alsa -i default -c:v libx264 -c:a flac -r 30 salida.mkv
También es posible que mientras se graba un vídeo, ir añadiendo audio de un archivo definido.
ffmpeg -f x11grab -s $(xdpyinfo | grep dimensions | awk '{print $2;}') -i :0.0 -i audio.wav -c:a copy video.mp4
Como usar los filtros de ffmpeg:
Los filtros de ffmpeg son su característica más poderosa. Existen multitud de filtros disponibles para su uso, lamentablemente no podemos hablar de todos, pero si veremos los más habituales y útiles.
La sintaxis de los filtros es la siguiente:
ffmpeg -i entrada.mp4 -vf "filter=setting_1=value_1:setting_2=value_2,etc" salida.mp4 ffmpeg -i entrada.wav -af "filter=setting_1=value_1:setting_2=value_2,etc" salida.wav
Especificar filtros:
- De vídeo: -vf
- De audio: -af
Los filtros se insertan entre comillas dobles ( “ ) y se pueden encadenar separándolos por comas ( , ). Los filtros y sus valores se deben separar unos de otros con dos puntos ( : ), se permite insertar todos los filtros que necesites en un mismo comando.
Escalado de un vídeo:
Tan solo ajustamos el ancho y el alto.
ffmpeg -i video.mp4 -vf "scale=w=800:h=600" video2.mp4
Rotar vídeo:
La rotación siempre es en sentido de las agujas del reloj, y se calcula por un valor en radianes (PI rad = 180 grados). Para que la operación resulte un poco mas simple puedes especificar un valor en grados y convertirlo a radianes multiplicando el valor con PI / 180.
Por ejemplo: rotar 90 grados a la derecha.
ffmpeg -i video.avi -vf "rotate=90*PI/180"
Otro ejemplo: rotar 180 grados (el vídeo estará al revés).
ffmpeg -i input.mp4 -vf "rotate=PI"
Reasignar canales de audio:
Muy útil si en una grabación dañada o muy antigua, escuchas por ejemplo solo el canal de la derecha.
ffmpeg -i input.mp3 -af "channelmap = 1-0 | 1-1" output.mp3
Aumentar o disminuir el volumen de un archivo:
Para modificar el volumen de un archivo tan solo debes modificar el valor multiplicador.
Aumentar: por ejemplo 1.75%.
ffmpeg -i audio.wav -af "volume=1.75" audio2.wav
Disminuir (bajar): por ejemplo 0.5%.
ffmpeg -i audio.ogg -af "volume=0.5" audio1.ogg
TIP – Velocidad de reproducción:
En formato vídeo.
El filtro que modifica la velocidad de reproducción en un video es setpts (PTS), y tiene una particularidad… su función es inversa, a mayor valor se obtiene una reproducción más lenta.
Por ejemplo, para doblar la velocidad de reproducción:
ffmpeg -i video.mkv -vf "setpts=0.5*PTS" video1.mkv
Para disminuirla a la mitad…
ffmpeg -i video.mp4 -vf "setpts=2*PTS" video1,mp4
En formato audio.
El filtro que modifica la velocidad de reproducción de un audio es «atempo«.
OJO!!!, este filtro solo toma valores entre 0.5 (la mitad de la velocidad) y 2 (el doble de la velocidad). Para solventar este inconveniente podemos encadenar varios filtros atempo.
En este ejemplo ralentizamos 1/4 la velocidad de reproducción habitual.
ffmpeg -i musica.wav -af "atempo=0.75" musica2.wav
Ahora aumentamos la velocidad por cuatro, y como el filtro no permite 4, ejecutamos 2 x 2.
ffmpeg -i audio.mp3 -af "atempo=2.0,atempo=2.0" audio1.mp3
Y con este ultimo tip damos por concluido el articulo:
«Manual de FFmpeg con ejemplos»
Espero te resulte de gran utilidad.
Compártelo en tus redes sociales.