You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批处理脚本中FFmpeg适配任意起始编号图片序列的问题

解决截图转视频的FFmpeg批处理编号问题

问题背景

编写每日截图转视频的批处理脚本时,因每日截图编号无法从0001开始,导致原脚本执行失败。需求是:要么让FFmpeg直接读取文件夹内所有图片(不管起始编号),要么通过批处理获取图片序列的起始/结束编号后传入FFmpeg。


方案一:让FFmpeg自动读取所有图片(无需指定编号)

FFmpeg的image2解复用器支持直接读取文件夹内所有符合格式的图片,无需依赖连续编号或指定起始值。只需修改输入路径写法,去掉-pattern_type sequence和-start_number参数:

修改后的FFmpeg命令片段:

ffmpeg.exe -framerate 25 -i "Y:\ft\!new_folder!\*.jpg" -c:v libx265 -b:v 5000k -g 100 "Y:\ft\!new_folder!.mp4"

说明:FFmpeg会按文件名的字典序读取图片,确保截图文件名的数字部分连续递增即可(无需从0001开始)。


方案二:通过批处理获取起始/结束编号传入FFmpeg

如果必须使用序列模式(比如需要严格保证编号顺序),可以通过批处理提取图片文件名中的数字,排序后得到起始和结束编号:

完整修改后的批处理脚本

@echo off
setlocal enabledelayedexpansion

rem 遍历监控文件夹下的子文件夹
for /f "tokens=*" %%a in ('dir "Y:\fastone_timelapse" /B /AD') do (
    set "new_folder=%%a"
    set "img_dir=Y:\ft\!new_folder!"
    
    rem 检查是否存在jpg文件
    if exist "!img_dir!\*.jpg" (
        rem 初始化起始和结束编号
        set "start_num="
        set "end_num="
        
        rem 遍历所有jpg文件,提取文件名中的数字
        for /f "tokens=*" %%f in ('dir "!img_dir!\*.jpg" /B /O:N') do (
            rem 提取文件名中的数字部分(假设文件名仅包含数字和.jpg后缀)
            set "fname=%%~nf"
            rem 判断是否为纯数字文件名
            echo !fname! | findstr /r "^[0-9][0-9]*$" >nul
            if !errorlevel! equ 0 (
                rem 初始化起始编号
                if not defined start_num set "start_num=!fname!"
                rem 更新结束编号为当前更大的数字
                if !fname! gtr !end_num! set "end_num=!fname!"
            )
        )
        
        rem 如果成功获取到编号,执行FFmpeg命令
        if defined start_num if defined end_num (
            ffmpeg.exe -f image2 -framerate 25 -pattern_type sequence -start_number !start_num! -i "!img_dir!\%%05d.jpg" -c:v libx265 -b:v 5000k -g 100 "Y:\ft\!new_folder!.mp4"
        )
    )
)
endlocal

说明:脚本会自动提取纯数字文件名的最小/最大值作为起始/结束编号,确保FFmpeg能正确识别序列。如果文件名包含非数字字符,可根据实际情况调整数字提取逻辑。


内容的提问来源于stack exchange,提问作者getho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 02:06:04