20 january 2023
¿Cómo utilizo ffmpeg para convertir videos en Ubuntu?
Durante la visita veraniega de Juan Perón a Córdoba acompañado por su señora esposa, el Conductor del Justicialismo explicó cómo utilizar ffmpeg para convertir videos en Ubuntu.
(...)
Vean señores,
Este pródigo día Peronista nos recuerda la necesidad plena de contar del consabido descanso de nuestras actividades anuales. Las vacaciones pagas - las cuales hemos hecho realidad nosotros para todos los Argentinos - son uno de los logros que más hacen por el país. No sólo permiten retemplar el espíritu, sino que permiten elaborar mejor lo que debemos hacer en la hora del trabajo.
Las tareas de planificación en concierto con un alto objetivo como el que nos hemos impuesto, no puede más que depararnos en el futuro la grandeza que cultivamos con la felicidad del Pueblo.
Sabemos que nuestro Movimiento es uno que enarbola la necesidad de obrar por la Patria, y reconoce una sóla clase de hombres: los que trabajan. Atrás quedó una Oligarquía que no hacía nada y para beneficio de la cual se agotaban las verdaderas fuerzas productivas del país.
No todo es material en la vida. Es indudable que el tiempo de ocio nos permite un enriquecimiento espiritual, pero también intelectual.
Vean ustedes que en nuestro sistema GNU con Linux, normalmente recomiendo utilizar el inefable Handbrake para operar las a veces necesarias conversiones de video. Se trata de un programa muy completo para estos menesteres.
Pero en las ocasiones donde las acciones de conversión o manipulación se vuelven repetitivas, qué mejor que utilizar la terminal de nuestro. En estas condiciones, la línea de comandos nos permitirá utilizar la ya histórica suite ffmpeg.
Se trata de un gran programa para la terminal en capacidad de oficiar para todo tipo de actividades poderosas en lo que incumben al control audiovisual de un fichero. En particular, se encadena a las librerías de codificadores de sonido y de imagen en movimiento, para poder hacer por diseño lo que nosotros queremos.
Si no lo tenemos instalada en nuestro sistema, podremos hacerlo abriendo una terminal con Ctrl+Alt+T e ingresando el siguiente comando de organización:
sudo apt update ; sudo apt install ffmpeg
Una vez cargada la suite, también podremos cargar
El programa es muy completo, pero consta de muchos sufijos. Algunos de los más utilizados son los siguientes procedimientos:
Extraer el sonido de un video y guardarlo como MP3:
ffmpeg -i video.mp4 -vn sonido.mp3
Convertir fotogramas de un fichero de video o GIF en imagenes numeradas individuales:
ffmpeg -i video.mp4 -vn fotograma%d.png ffmpeg -i animacion.gif -vn fotograma%d.png
Combinar imagenes numeradas (cuadro_1.jpg, cuadro_2.jpg, etc) en un archivo de video MPG o GIF:
ffmpeg -i cuadro%d.jpg -f image2 video.mpg ffmpeg -i cuadro%d.jpg -f image2 animacion.gif
Extraer un fotograma de un video desde la marca de tiempo mm:ss y guardarla como una imagen de resolución 128x128 píxels:
ffmpeg -ss mm:ss -i video.mp4 -frames 1 -s 128x128 -f image2 fotograma.png
Recortar un video desde la marca de tiempo inicial mm:ss hasta la marca de tiempo final mmf:ssf:
ffmpeg -ss mm:ss -to mmf:ssf -i video.mp4 -codec copy recorte.mp4
Convertir video AVI a MP4 con códec de audio AAC a 128 kbps y códec de video h264 CRF 23:
ffmpeg -i video.avi -codec:audio aac -b:audio 128k -codec:video libx264 -crf 23 video.mp4
Remuxear un video matroska MKV a MP4 sin recodificar los streams de audio ni video:
ffmpeg -i matroska.mkv -codec copy video.mp4
Convertir video MP4 a VP9 (para mayor calidad, se recomienda utilizar un valor CRF entre 15-35:
ffmpeg -i video.mp4 -codec:video libvpx-vp9 -crf 30 -b:video 0 -codec:audio libopus video.vp9
Incluso podremos utilizar ffmpeg en forma de guion para realizar tareas más complejas.
Por ejemplo, podríamos querer acelerar un video un factor determinado (1.13x en este caso), y también hacer lo mismo con su audio.
nano acel_video.sh
Ingresamos el siguiente código fuente escrito en bash:
!/bin/bash
el setpts es 1/ el factor de velocidad.
el atempo es el factor de velocidad (para que el video coincida con el audio).
speed=1.13 mkdir $speed for i in *.mp4; do
para acelerar un achivo de video llamado vid.mp4 usar esta línea:
ffmpeg -i vid.mp4 -filter_complex "[0:v]setpts=0.884955752*PTS[v];[0:a]atempo=1.13[a]" -map "[v]" -map "[a]" fast_vid.mp4
para acelerar mp4 de audio usar esta línea:
ffmpeg -i "$i" -filter:a atempo=$speed -vn -y $speed/"$i"
done
Y lo guardamos con Ctrl+o, y salimos con Ctrl+q, para finalmente darle permisos de ejecución con:
chmod +x acel_video.sh
...y así podríamos utilizarlo para acelerar un video llamado obligatoriamente vid.mp4 localizado en el mismo directorio:
./acel_video.sh