windows 在批处理脚本中向FFMPEG发送图像序列的start_number

vngu2lb8  于 2023-02-05  发布在  Windows
关注(0)|答案(1)|浏览(103)

我正在创建一个批处理脚本,每天将屏幕截图转换为视频,除了我不能让屏幕上限每天从0001开始,所以我当前的脚本失败。
在FFMPEG中有没有一种方法可以只读取一个文件夹中的所有文件(例如,如果我有一个文件夹,其中有500个文件,以01234.jpg开头,另一个文件夹中的文件以87654.jpg开头)?
如果没有,我可以使用批处理脚本找到起点和终点并将其发送到ffmpeg吗?
我的剧本

@echo off
setlocal enabledelayedexpansion

rem Check if a new folder has been added to the watched folder
for /f "tokens=*" %%a in ('dir "Y:\fastone_timelapse" /B /AD') do (
   set "new_folder=%%a"

   rem Check if jpeg files are present in the new folder
   if exist "Y:\ft\!new_folder!\*.jpg" (
         
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"

   )
)
endlocal
xqk2d5yq

xqk2d5yq1#

if exist "Y:\ft\!new_folder!\*.jpg" (
    set "first="
    for /f %%y in ('dir /on /b /a-d "Y:\ft\!new_folder!\*.jpg"') do set "last=%%~ny"&if not defined first set "first=%%~ny"
    echo First=!first! Last=!last!
    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"

顺便说一句,你似乎不需要new_folder,因为!new_folder!的每个外观都可以被%%a替换。

相关问题