我正在设置一个批处理文件,以便每天将一个文件夹中的屏幕截图转换为视频。
我可以指定屏幕截图的文件名,但我不能让它每天重置,所以说 2 可能从 03213 开始。不重命名文件是一种方法
- 让 ffmepg 找到起始编号并转到最旧的最新文件或
- 读取批处理文件中的开始和结束文件名并将其插入到 ffmpeg 命令中?
这是我当前的命令:
ffmpeg.exe -f image2 -framerate 25 -pattern_type sequence -start_number 00001 -i "Y:\ft\!new_folder!\%%05d.jpg" -c:v libx265 -b:v 5000k -g 100 "Y:\ft\!new_folder!.mp4"
答案1
不清楚你想要什么,但可以理解的是,你需要获取 jpg 文件名称中序列的起始和结束数字。除非有更好的版本解释,否则我建议使用以下方法来在变量中定义 jpg 文件的起始和结束数字。
@echo off && Setlocal EnableDelayedExpansion
set "_New_Folder=Some_Dir_Name"
set "_InOut=Y:\ft\!_New_Folder!"
for /f delims^= %%i in ('where "!_InOut!:*.jpg" ^| sort /r
')do if "!_end!" == "" (set "_end=%%~ni")else set "_start=%%~ni"
ffmpeg.exe -f image2 -framerate 25 -pattern_type sequence -start_number !_start! -i "!_InOut!\%%05d.jpg" ^
-c:v libx265 -b:v 5000k -g 100 -y "!_InOut!.mp4" -hide_banner -loglevel fatal -nostats 2>&1 | find "),"
timeout 5 | (echo\start = %_start% & echo\ end = %_end%) & endlocal