我正在使用 ffmpeg 将 .avi 文件转换为 .png 图像序列。这个工作得很好:
@ ECHO OFF
FOR %%A IN (*.avi) DO CALL :avi2png "%%A"
:avi2png
ffmpeg.exe -y -i %* -sameq -f image2 -c:v png "%%03d.png"
ECHO.
GOTO :EOF
但我希望脚本从当前正在处理的 .avi 文件中提取不带扩展名的名称。这是图像序列的样子:currentavi001.png,currentavi002.png等。我想出的脚本不起作用:
@ ECHO OFF
FOR %%A IN (*.avi) DO CALL :avi2png "%%A"
:avi2png
ffmpeg.exe -y -i %* -sameq -f image2 -c:v png "%%~nA%%03d.png"
ECHO.
GOTO :EOF
%~nA
和都试过了%%~nA
,但无济于事。脚本返回这个:
Couldn't open file :
av_interleaved_write_frame(): Input/output error.
我是一个完全的外行,并欢迎每一点帮助。