Estoy tratando de convertir más de 20 archivos .avi en un lote usando ffmpeg.
Tengo lo siguiente
@echo off.
for file in *.avi
do
ffmpeg -i "$file" -s 640x480 -vcodec msmpeg4v2 "'basename "$file" .avi'.mpg';
done
en mi archivo .bat pero no funciona. ¿Cómo puedo hacer que funcione bajo el sistema operativo Windows? Ah, y sí, todos los archivos están en la misma carpeta.
El mensaje de error que recibo:
El archivo fue inesperado en este momento
windows
conversion
ffmpeg
batch-file
Darius
fuente
fuente
cmd
) y luego ejecutar el archivo por lotes utilizando su ruta completa desde allí. ¿Qué es lo que realmente quieres hacer con los videos? ¿Qué tipo de videos son estos? ¿Solo necesita moverlos a un contenedor MPG? ¿O necesita cambiar su tamaño? ¿O necesitas específicamente elmsmpeg4v2
códec?ffmpeg -i input.avi -c:v libx264 -crf 23 -s 640x480 output.mp4
donde el valor CRF establece la calidad (menos es mejor, más es peor, valores correctos de 19 a 24). Consulte también: Convierta videos antiguos para que tengan tamaños más pequeños y ¿Qué parámetros debo tener en cuenta para reducir el tamaño de un archivo .MOV?Respuestas:
Su archivo por lotes no tiene el formato correcto para un script de Windows bat. En cambio, su script parece que estaba destinado a Linux. Deberá cambiar la secuencia de comandos para usar un bucle for que sea compatible con Windows Shell.
A continuación se muestra un ejemplo de cómo realizar esta tarea utilizando un bucle de Windows for. Simplemente coloque la línea a continuación en su archivo por lotes y mueva el script al mismo directorio que los archivos avi, luego ejecútelo.
fuente
[NULL @ 000000000037e360] Unable to find a suitable output format for 'outputfile.avi.mpg;' outputfile.avi.mpg:: Invalid argument