新手求助:如何批量对多组图片执行ffmpeg命令生成视频
Windows 批量生成视频操作方案
前置准备
- 确保 ffmpeg 已添加到系统环境变量,或将 ffmpeg.exe 放在所有图片文件夹的上级根目录中
- 所有存放图片的文件夹统一放在上述根目录下,不要嵌套更深层级
批量处理脚本使用方法
- 在根目录下新建文本文档,复制下方代码后将文件后缀修改为
.bat,命名为批量生成视频.bat
@echo off setlocal enabledelayedexpansion :: 遍历所有子文件夹 for /d %%f in (*) do ( cd "%%f" echo 处理文件夹: %%f :: 按名称排序收集所有png文件 set /a count=0 for /f "delims=" %%i in ('dir /b /on *.png 2^>nul') do ( set "file[!count!]=%%i" set /a count+=1 ) :: 每7张为一组处理 set /a group_count=count/7 for /l %%g in (0,1,!group_count!-1) do ( set /a start=%%g*7 :: 截取组名 set "first_file=!file[%start%]!" set "group_name=!first_file:.0_=|!" for /f "delims=|" %%a in ("!group_name!") do set "group_name=%%a" echo 处理组: !group_name! :: 生成临时序号文件 for /l %%n in (0,1,6) do ( set /a idx=start+%%n copy "!file[!idx!]!" "%%n.png" >nul ) :: 执行ffmpeg命令 ffmpeg -y -framerate 10 -i %%d.png -vf "split=2[head][loop];[head]trim=end_frame=4[head];[loop]trim=start_frame=3,setpts=PTS-STARTPTS,loop=6:4:0,shuffleframes=1 2 3 2[tail];[head][tail]concat=n=2:v=1:a=0" "!group_name!.mp4" :: 清理临时文件 del ?.png >nul ) cd .. ) echo 所有处理完成! pause
- 双击运行
批量生成视频.bat,等待执行完成即可,每个组对应的视频会保存在对应图片所在的文件夹中,文件名和组前缀一致。
可选调整
- 如需修改帧率,可调整ffmpeg命令中
-framerate 10后的数值 - 如需生成无损视频,可在ffmpeg命令末尾添加
-c:v libx264 -crf 0参数
内容的提问来源于stack exchange,提问作者Ethan Kendrick
相关产品推荐
相关产品推荐

