ffmpeg 转换没有定义起始编号的文件夹中的图像

ffmpeg 转换没有定义起始编号的文件夹中的图像

我正在设置一个批处理文件,以便每天将一个文件夹中的屏幕截图转换为视频。

我可以指定屏幕截图的文件名,但我不能让它每天重置,所以说 2 可能从 03213 开始。不重命名文件是一种方法

  1. 让 ffmepg 找到起始编号并转到最旧的最新文件或
  2. 读取批处理文件中的开始和结束文件名并将其插入到 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

相关内容