El año pasado tuve un problema con un video webm cuando lo quise convertir a mp4, era por culpa del tamaño irregular que tenía en este formato (no anda la conversión si no es divisible por dos alguna de las dimensiones), ahora quería convertir muchos archivos de estos al mismo tiempo.
Pequeño tip para cuando están convirtiendo archivos de video y necesitan hacerlo en cantidad...
En su momento la solución para convertir un sólo video era la siguiente:
ffmpeg -i gato.webm -vf "crop=trunc(iw/2)*2:trunc(ih/2)*2" gato.mp4En este caso hace un crop del pixel de más en gato.webm y luego guarda como gato.mp4
Si quiero hacerlo para múltiples archivos en la línea de comandos de Windows puedo:
for %i in (*.webm) do ffmpeg -i "%i" -vf "crop=trunc(iw/2)*2:trunc(ih/2)*2" "%~ni.mp4"y ahora lo explico:
for %i in (*.webm) doEs simple, repasará todos los archivos que se encuentren bajo *.webm (el asterisco es "todos" los que lleven esa extensión) y se queda con el nombre en %i como variable.
Luego en la llamada a ffmpeg:
ffmpeg -i "%i"esto aplicará a todo archivo mencionado en el for, uno a uno irá ejecutando la acción, luego va el comando que ya conocemos para ajustar tamaño y proporción:
-vf "crop=trunc(iw/2)*2:trunc(ih/2)*2"y luego cómo los va a guardar
y listo!
¿Linux o MacOS? Es MUY parecido desde bash
Cambia apenitas la sintaxis, de hecho, se puede instalar bash en windows también como para usar una solución para todos, pero es medio overkill, jeje