FFmpeg La Herramienta Definitiva para Convertir Formatos de Video y Audio en Linux + Script Bash
FFmpeg es una herramienta de código abierto extremadamente poderosa y versátil, utilizada ampliamente en sistemas Linux para la manipulación y conversión de archivos multimedia. Con FFmpeg, los usuarios pueden convertir videos entre diferentes formatos populares como MP4, AVI, MKV, WebM, y extraer audio en formatos como MP3. Esta herramienta soporta una amplia variedad de códecs y contenedores, lo que la convierte en una opción ideal para gestionar la compatibilidad entre dispositivos y plataformas.
En Linux, FFmpeg es valorado por su eficiencia y flexibilidad, permitiendo realizar conversiones de alta calidad mediante la línea de comandos. Además de convertir videos, permite tareas como la compresión de archivos, la extracción de pistas de audio, la edición de metadatos y mucho más. Su integración en scripts bash facilita la automatización de procesos, lo que resulta especialmente útil para desarrolladores y administradores de sistemas que buscan optimizar flujos de trabajo multimedia.
Página oficial de FFmpeg https://ffmpeg.org/
Instalación de FFmpeg
Lo primero que tenemos que hacer, obviamente, es instalar la aplicación FFmpeg si no la tenemos ya instalada
sudo apt update sudo apt upgrade sudo apt install ffmpeg
Ahora que lo tenemos instalado, lo más fácil me parece que es utilizar un script, aunque puedes fijarte en los comandos que usa, y verás que el uso de FFmpeg es muy sencillo, el script lo que consigue es agilizar el proceso y proporcionar un menú más amigable.
Crea un archivo con el nombre que quieras, en mi caso lo he llamado «convertersheep.sh». Cuando lo tengas, copia el código del script en su interior y guarda los cambios
#!/bin/bash # Verifica si se ha proporcionado un archivo de entrada if [ -z "$1" ]; then echo "Uso: $0 archivo_de_entrada" exit 1 fi input_file="$1" input_filename=$(basename "$input_file") # Nombre del archivo input_extension="${input_filename##*.}" # Extensión del archivo output_name="${input_filename%.*}" # Nombre sin extensión # Verifica si el archivo de entrada existe if [ ! -f "$input_file" ]; then echo "El archivo $input_file no existe." exit 1 fi # Menú de opciones echo "Selecciona el formato de salida:" echo "1) webm" echo "2) mp4" echo "3) mkv" echo "4) avi" echo "5) Extraer solo el audio a mp3" echo "6) Salir" read -p "Opción: " option case $option in 1) output_format="webm" ;; 2) output_format="mp4" ;; 3) output_format="mkv" ;; 4) output_format="avi" ;; 5) output_format="mp3" ;; 6) echo "Saliendo..." exit 0 ;; *) echo "Opción no válida." exit 1 ;; esac # Archivo de salida output_file="${output_name}.${output_format}" # Comando ffmpeg para convertir if [ "$output_format" == "mp3" ]; then echo "Extrayendo audio a $output_file ..." ffmpeg -i "$input_file" -q:a 0 -map a "$output_file" # Extrae solo el audio else echo "Convirtiendo $input_file a $output_file ..." ffmpeg -i "$input_file" "$output_file" # Convierte el video completo fi # Verifica si la conversión fue exitosa if [ $? -eq 0 ]; then echo "Conversión completada: $output_file" else echo "Error durante la conversión." exit 1 fi
Cuando lo tengas, para poder ejecutarlo como un comando mas de sistema, tenemos que añadirlo a nuestra carpeta de ejecutables, y darle permisos de ejecucion
##lo muevo a la carpeta, y le quito la extensión, para que el comando a utilizar luego sea solo "convertersheep" sudo mv convertersheep.sh /usr/local/bin/convertersheep ##le otorgo permisos de ejecución para todos los usuarios sudo chmod a+rx /usr/local/bin/convertersheep
Ahora ya podemos ejecutar nuestro script desde cualquier carpeta en nuestra terminal.
Para usarlo, solo tenemos que llamar al script, e indicarle cuál es el archivo a convertir.
convertersheep video_de_entrada.webm
Este mostrara un menu donde podremos escoger el formato de salida
Selecciona el formato de salida: 1) webm 2) mp4 3) mkv 4) avi 5) Extraer solo el audio a mp3 6) Salir Opción:
Proceso de conversión. Se mostrará abajo de la pantalla, el porcentaje de tarea completada. Según el tamaño del video, esto puede llegar a tardar bastante. Tenlo en cuenta 😀
Cuando el proceso termine, el archivo de salida se encontrará al lado del archivo de origen, con el mismo nombre, pero con distinto formato y extensión
Si te ha servido y te ha gustado, regálame un like, o deja tu comentario si tienes alguna duda!