我有这个批处理文件,可以批量处理一些视频文件。只要文件名中没有空格,一切就都正常。如果文件名(测试影片.avi)中有空格,它会说
测试:没有此文件或目录
因此,它似乎将空格视为分隔符。我该如何解决这个问题?
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
在调用 ffmpeg 时,需要在 %%a 周围加上一些引号。
~编辑:添加修改后的脚本
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))"
)