Вы используете BASH в Windows, и он не будет работать без надлежащей настройки.
Создайте командный файл со следующим:
for %%a in ("*.mp4") do ffmpeg.exe -i "%%a" -vcodec copy -acodec copy "%%~dpna.mov"
Это должно получить результаты, которые вы хотите.
Убедитесь, что вы используете прямой путь к ffmpeg, как d:\ffmpeg\bin\ffmpeg.exe
Например, вот некоторые из строк в моем encode.bat
файле:
REM for /R %%c in ("*.mkv") do D:\ffmpeg\bin\ffmpeg.exe -i "%%c" -c:v copy -c:a copy -flags +global_header "%%~dpnc.mp4" && del "%%c"
REM for /R %%d in ("*.mpg") do D:\ffmpeg\bin\ffmpeg.exe -i "%%d" -c:v hevc_nvenc -rc vbr -qmin 16 -qmax 60 -cq 32 -preset hq -profile:v main -pix_fmt yuv420p -flags +global_header -c:a aac -b:a 128k -ar 44100 -movflags +faststart "%%~dpnd.mkv"
REM for /R %%a in ("*.mp4") do D:\ffmpeg\bin\ffmpeg.exe -y -i "%%a" -c:v hevc_nvenc -r 24 -rc vbr -qmin 16 -qmax 60 -q:v 1 -cq 28 -preset hq -profile:v main -pix_fmt yuv420p -flags +global_header -c:a aac -b:a 128k -ar 44100 -movflags +faststart "%%~dpna.mkv" && del "%%a"
REM for /R %%b in ("*.avi") do D:\ffmpeg\bin\ffmpeg.exe -i "%%b" -c:v hevc_nvenc -rc vbr -qmin 16 -qmax 60 -cq 32 -preset hq -profile:v main -pix_fmt yuv420p -flags +global_header -c:a aac -b:a 128k -ar 44100 -movflags +faststart "%%~dpnb.mkv"
REM for /R %%a in ("*.mp4") do D:\ffmpeg\bin\ffmpeg.exe -y -i "%%a" -c:v hevc_nvenc -rc vbr -qmin 16 -qmax 60 -cq 28 -preset hq -profile:v main -pix_fmt yuv420p -flags +global_header -c:a aac -b:a 128k -ar 44100 -movflags +faststart "%%~dpna.mkv" && del "%%a"
Я выбираю, какие строки я хочу использовать по мере необходимости, и делаю корректировки.
Имейте в виду, что /R
это для рекурсивного, и del "%%a"
удаляет исходный файл после преобразования. Будьте очень осторожны с этим.
-vcodec copy -acodec copy
на-c copy
.