我正在使用ffmpeg将.avi文件转换为.png图像序列。这一个非常有效:ffmpeg视频图像序列批处理文件
@ 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.
我是一个完全的门外汉,并欢迎每一位的帮助。
产生请求输出的固定代码。 –
感谢詹姆斯的彻底回应。对于像我这样的完整小菜鸟来说,批量脚本就像是仔细地走过雷区。当我回家时,我会试用这些代码,并且可以访问我的电脑,而不仅仅是我的电话。 –
@DaleCooper如果我的答案适合您,请将其选为答案。 :) –