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.
私は完全な素人であり、あらゆる助けを歓迎します。