無法在批次檔中呼叫 ffmpeg

無法在批次檔中呼叫 ffmpeg

我在提示符號下使用以下命令使用 ffmpeg 重新編碼大量視訊檔案:

for %F in ("..\*.*") DO ffmpeg -n -i "%F" -c:v libx265 -c:a copy "%~nF.mkv"

我創建了一個包含此命令的批次檔並將其放入我的設定檔路徑中。但是當我運行它時,我得到以下資訊:

M:\>ff.bat
The following usage of the path operator in batch-parameter
substitution is invalid: %~nF.mkv"

For valid formats type CALL /? or FOR /?
The syntax of the command is incorrect.

M:\>for F" -c:v libx265 -crf 28 -c:a copy "F" -c:v libx265 -crf 28 -c:a copy "%~nF.mkv"

可能是引號有問題?

答案1

可能是引號有問題?

不,這是一個問題%。在命令列上使用單一%.在批次檔中將其加倍%%

因此,請使用以下內容:

for %%F in ("..\*.*") DO ffmpeg -n -i "%%F" -c:v libx265 -c:a copy "%%~nF.mkv"

如果您在命令列而不是在批次程式中使用該FOR命令,請僅使用一個百分號:%G而不是%%G

來源:For - 循環命令 - Windows CMD - SS64.com


進一步閱讀

答案2

確切地說,您必須使用雙百分號而不是單一百分號。還要確保 ffmpeg 路徑位於 %path% 變數中,您必須指定 ffmpeg 程式的整個路徑...

相關內容