Я пытаюсь конвертировать более 20 файлов .avi в пакетном режиме, используя ffmpeg.
У меня есть следующее
@echo off.
for file in *.avi
do
ffmpeg -i "$file" -s 640x480 -vcodec msmpeg4v2 "'basename "$file" .avi'.mpg';
done
в моем .bat файле, но он не работает. Как я могу заставить его работать под ОС Windows. Да, и да, все файлы находятся в одной папке.
Сообщение об ошибке я получаю:
Файл был неожиданным в это время
windows
conversion
ffmpeg
batch-file
Darius
источник
источник
cmd
), а затем запустить пакетный файл, используя его полный путь оттуда. Что вы на самом деле хотите сделать с видео? Что это за видео? Вам просто нужно переместить их в контейнер MPG? Или вам нужно изменить их размер? Или вам конкретно нуженmsmpeg4v2
кодек?ffmpeg -i input.avi -c:v libx264 -crf 23 -s 640x480 output.mp4
где значение CRF устанавливает качество (чем меньше, тем лучше, чем хуже, тем вменяемые значения от 19 до 24). См. Также: Преобразование старых видео, чтобы иметь меньшие размеры и Какие параметры я должен смотреть, чтобы уменьшить размер файла .MOV?Ответы:
Ваш пакетный файл имеет неправильный формат для сценария Windows bat. Вместо этого ваш скрипт выглядит так, как будто он предназначен для Linux. Вам нужно будет изменить скрипт, чтобы использовать цикл for , поддерживаемый оболочкой Windows.
Ниже приведен пример того, как выполнить эту задачу с помощью цикла Windows for. Просто поместите следующую строку в ваш пакетный файл и переместите скрипт в тот же каталог, что и avi-файлы, а затем запустите его.
источник
[NULL @ 000000000037e360] Unable to find a suitable output format for 'outputfile.avi.mpg;' outputfile.avi.mpg:: Invalid argument