需求:遍历子文件夹中的视频文件,每个视频文件每秒提取n张图片,保存到新建的以视频名命名的文件夹
echo off & color 0A
::指定视频文件夹
set DIR="D:\video\"
echo DIR=%DIR%
:: 参数 /R 表示需要遍历子文件夹,去掉表示不遍历子文件夹
:: %%f 是一个变量,类似于迭代器,但是这个变量只能由一个字母组成,前面带上%%
:: 括号中是通配符,可以指定后缀名,*.*表示所有文件
:: %%~nxI,表示仅将 %I 扩充到一个文件名和扩展名,不包含路径)
:: 第一层循环遍历所有子文件夹下的文件,第二层循环提取文件名(包含扩展名.xxx),第三层循环分割文件名和扩展名,提取文件名(不包含扩展名)
for /R %DIR% %%x in (*.mp4) do (
echo %%x
set string=%%x
for %%a in ("%%x") do (
echo %%~nxa
for /f "tokens=1,* delims=." %%i in ("%%~nxa") do (
echo %%i
mkdir %%i
ffmpeg -i %%x -filter:v "select=(gte(t\,1))*(isnan(prev_selected_t)+gte(t-prev_selected_t\,1))" -frames:v 25 -y "D:\%%i\image_%%05d.jpg"
)
)
)
pause