web-dev-qa-db-fra.com

Conversion par lots de fichiers * .avi avec ffmpeg

J'essaie de convertir plus de 20 fichiers .avi en un lot à l'aide de ffmpeg.

J'ai le suivant

@echo off.

for file in *.avi
do
   ffmpeg -i "$file" -s 640x480 -vcodec msmpeg4v2 "'basename "$file" .avi'.mpg';
done

dans mon fichier .bat mais cela ne fonctionne pas. Comment puis-je le faire fonctionner sous Windows. Oh, et oui tous les fichiers sont dans le même dossier.

Le message d'erreur que je reçois:

Le fichier était inattendu à ce moment

13
Darius

Votre fichier de commandes n’est pas au bon format pour un script de batte Windows. Au lieu de cela, votre script semble être destiné à Linux. Vous devrez modifier le script pour utiliser une boucle for prise en charge par le shell Windows.

Vous trouverez ci-dessous un exemple de la manière d'accomplir cette tâche en utilisant une fenêtre pour une boucle. Il suffit de mettre la ligne ci-dessous dans votre fichier de commandes et de déplacer le script dans le même répertoire que les fichiers avi, puis de l'exécuter.

for %%A IN (*.avi) DO ffmpeg -i "%%A" "%%A.mpg"
25
Brett