Conversor de archivos de imagen y vídeo gratis en Linux y Windows
Convertir formatos de archivos de imagen y vídeo es más fácil que nunca. Lo siento por las webs en las que pueden pegar tu archivo y convertirlo, pero realmente no las necesitamos. Solo tienes que entender un par de cosas que te explico en este post. Contenido:Si eres uno de esos que aprendió algo de libros como “la semana de 4 horas” y “hábitos atómicos”, sabrás que el batching o dosificación de tareas es algo realmente práctico para dar salida a todos esos temas recurrentes.
En este caso vamos a ver como convertir todos los archivos de un directorio en un formato distinto. Tanto imágenes como vídeos. Tanto en linux como en windows. De cualquier formato a cualquier formato. Todas estas herramientas parten
El reto en linux
A fecha de publicación de este post, estoy en Ubuntu 22.04, aunque todavía le sigo dando vueltas a si debo dar el salgo a 24.04. Temo que no funcionen las dos gráficas de Nvidia, por lo que prefiero estarme quietecito. Si alguien ya ha hecho las pruebas y me puede dar feedback se lo agradeceré eternamente.
El preceso simplificado:
- Entrar en terminal con [Ctrl+Alt+T]
- Instalar
ffmpeg
si no lo tienes con:sudo apt install ffmpeg
- Ejecuta el código que corresponda desde el directorio donde tienes los archivos.
El funcionamiento general de ffmpeg es bien sencillo. Tenéis tropecientos manuales de ffmpeg
aquí. Por ejemplo:
- Convertir un archivo JPG en WEBP:
ffmpeg -i imagen.jpg imagen.webp
- Convertir un archivo MP4 en MKV: Para convertir un video video.mp4 a formato MKV, usa el siguiente comando:
ffmpeg -i video.mp4 video.mkv
Esta estructura te permite convertir los archivos uno a uno, pero aquí lo interesante está en la iteración. Es decir, que convierta todos los archivos de un directorio, independientemente de si hay 1 o 1 millón. Así que aquí van los scripts y vídeos que permiten hacer esto a lo grande.
Conversor de vídeo a webp
for i in *.mp4; do ffmpeg -i "$i" -vf "scale=600:-1" -c:v libwebp -quality 60 -loop 0 "../${i%.*}_s.webp" -y; done
Compresor general de vídeos
Si tienes linux ejecutarás esto:
for i in *.mp4 *.webm; do ffmpeg -i "$i" -c:v libx264 -crf 23 -c:a aac -strict experimental -b:a 192k "./${i%.*}_reduced.mp4" -y; done
Ejemplo de cómo ejecutar esto en linux
En este vídeo verás como símplemente hay que tener copiada la línea que corresponda y después abrir el terminal, pegar y ejecutar. Veréis como se van convirtiendo los archivos de forma iterativa.
Lo que considero más interesante de estos scripts es que están escritos en una sola línea, por lo que copiarlos de vuestro sistema de notas favorito es tan sencillo como hacer un triple clic. Esto, aunque parezca que no, elimina la fricción de copiar mal y luego ir a terminal y escribir caneladas.
El reto en Windows
Para poder hacer algo del corte de lo anterior, solo es necesario tener también instaladas las librerías de ffmpeg
. Para esto:
- Entrar en Windows terminal (power shell)
- Instalar ffmpeg con este comando:
winget install ffmpeg
- Ejecutar el código cambiando lo que corresponda, desde el directorio donde tienes los archivos.
Un apunte. Las opciones de ffmpeg
deben adaptarse a la realidad de nuestro pc. Tendremos dos formas generales de utilizar este código: en pc con gráfica (nvidia) o en pc sin gráfica (portátil chusquero).
Con gráfica NVIDIA y CUDA o lo que sea:
$extensions = @("*.mkv", "*.mov")
foreach ($ext in $extensions) {
foreach ($i in Get-ChildItem -Filter $ext) {
$output = [System.IO.Path]::ChangeExtension($i.FullName, ".mp4")
ffmpeg -i $i.FullName -c:v h264_nvenc $output -y
}
}
Sin gráfica (pc portátil por ejemplo):
$extensions = @("*.mkv", "*.mov")
foreach ($ext in $extensions) {
foreach ($i in Get-ChildItem -Filter $ext) {
$output = [System.IO.Path]::ChangeExtension($i.FullName, ".mp4")
ffmpeg -i $i.FullName -c:v libx264 $output -y
}
}
El ejemplo de lo que esta herramienta hace:
En este vídeo podemos ver el proceso general para convertir todo desde un directorio concreto. El truco para simplificar código es símplemente ejecutar el terminal desde la ubicación. Mira mira:
Conclusiones
FFmpeg destaca como una herramienta versátil y eficiente tanto en Linux como en Windows, permitiendo la conversión de cualquier archivo multimedia de un formato a otro mediante comandos simples. Esto es especialmente útil en el procesamiento masivo de archivos, donde la iteración a través de directorios completos reduce significativamente el esfuerzo. En lugar de convertir archivos uno a uno, puedes ejecutar scripts que realicen este proceso para cientos o miles de archivos en un solo paso, con la misma eficacia.
El poder de estas herramientas iterativas no solo radica en la automatización, sino también en la flexibilidad que ofrecen. Ya sea en un entorno Linux o Windows, puedes ajustar los parámetros según tus necesidades (por ejemplo, calidad de vídeo, tamaño de imagen, etc.), adaptando el proceso a los recursos de tu sistema, como la presencia o ausencia de una tarjeta gráfica dedicada. Esto permite que tanto en equipos de alta gama como en portátiles más modestos, se puedan realizar las conversiones sin grandes complicaciones.
Por último, la conversión de archivos es solo un ejemplo de cómo la automatización puede integrarse en flujos de trabajo más amplios. Ya sea que trabajes en diseño gráfico, producción audiovisual o simplemente necesitas gestionar grandes volúmenes de datos, herramientas como FFmpeg se vuelven indispensables. Y cuando combinas estos scripts con la simplicidad de los terminales de Linux y Windows, consigues un entorno potente donde puedes optimizar el tiempo y esfuerzo, enfocándote en tareas de mayor valor añadido.
Espero que hayas apreciado el esfuerzo en todo esto. Podrías apoyarme de muchas formas: contratándome, contactándome o símplemente compartiéndolo.