1

У меня есть этот пакетный файл, который обрабатывает некоторые видео файлы в пакете. Все работает отлично, пока имя файла не имеет пробелов. Если имя файла (test movie.avi) имеет пробел, оно говорит

test: нет такого файла или каталога

Так что, кажется, это трактует пространство как разделитель. Как мне обойти эту проблему?

for %%a in (%1\*.avi) do (
   ffmpeg -i %%a -c:v libx264 -movflags +faststart -preset slow -crf 22 -b:v 500k -vf "scale=480:trunc(ow/a/2)*2" -threads 0 -c:a libfdk_aac -b:a 128k "%2/%%~na.mp4" -vf select="not(mod(n\,10))"
)

Вот как я называю это:

Process.bat C:\FFMPEG\inputfiles C:\FFMPEG\outputfiles

1 ответ1

3

Вам нужны некоторые кавычки вокруг вашего %% a при вызове ffmpeg.

~ Edit: добавлен модифицированный скрипт

for %%a in (%1\*.avi) do (
   ffmpeg -i "%%a" -c:v libx264 -movflags +faststart -preset slow -crf 22 -b:v 500k -vf "scale=480:trunc(ow/a/2)*2" -threads 0 -c:a libfdk_aac -b:a 128k "%2/%%~na.mp4" -vf select="not(mod(n\,10))"
)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .