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

如何使用ffmpeg将不同命名的图片合成为演示视频?

无统一命名规则图片通过FFmpeg合成视频方法

你提到的ffmpeg -i image-%03d.png video.webm是ffmpeg针对固定规则命名序列图的内置读取模式,仅能匹配带连续序号的文件名。要处理pilot.png、airplane.png这类自定义名称的无规则图片,可通过以下两种方案实现:

方案1:Concat分离器(推荐,支持自定义播放顺序、单张图片停留时长)

该方案灵活性最高,是自定义图片合成的首选方案:

  1. 先在图片所在目录新建纯文本文件(例如命名为img_list.txt),按照你需要的播放顺序逐行写入图片配置,格式参考如下:
    file 'pilot.png'
    duration 2.5
    file 'airplane.png'
    duration 3
    file 'landing_scene.png'
    duration 4
    file 'end_card.png'
    

    注意:最后一张图片不需要配置duration参数,但必须单独补一行对应文件的file 'xxx.png'条目,否则最后一帧会被ffmpeg截断,这是concat分离器的已知特性。
    如果不需要给每张图单独设置停留时长,可省略所有duration行,仅保留file条目,后续在命令中统一指定单图停留时长即可。

  2. 执行合成命令:
    ffmpeg -f concat -safe 0 -i img_list.txt -framerate 25 -c:v libvpx-vp9 -crf 30 -b:v 0 output.webm
    
    核心参数说明:
    • -f concat:指定使用concat分离器解析输入列表
    • -safe 0:关闭路径安全限制,支持任意命名的文件、相对/绝对路径引用
    • -framerate 25:设置输出视频的编码帧率,若已在列表中为每张图单独指定duration,该参数不影响单图停留时长,仅影响编码流畅度
    • -c:v libvpx-vp9 -crf 30 -b:v 0:webm格式的推荐编码参数,crf取值范围0-63,数值越小画质越高、输出文件体积越大

方案2:Glob模式匹配(无需额外配置文件,仅支持按文件名字典序播放)

如果不需要自定义播放顺序,接受所有图片按文件名的字典序排序播放,可以直接用glob匹配模式,无需创建额外列表文件:

ffmpeg -framerate 1/3 -pattern_type glob -i '*.png' -c:v libvpx-vp9 -crf 30 -b:v 0 output.webm

其中-framerate 1/3表示每张图片停留3秒,可根据需求调整,例如1/5为每张停留5秒,1为每张停留1秒。
注:Windows原生cmd环境对glob模式支持较差,该方案更推荐在Linux/macOS终端下使用

常见适配说明

  • 建议提前将所有图片调整为相同分辨率,否则ffmpeg会默认以第一张图片的分辨率为编码基准,后续尺寸不符的图片会被拉伸变形。如果图片尺寸不统一,可以添加缩放滤镜自动适配,例如要输出1920*1080分辨率、图片居中补黑边的效果,在命令中加上-vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2"即可。
  • 如果需要添加背景音乐,只需在输入参数中追加音频文件、指定音频编码即可,示例命令:
    ffmpeg -f concat -safe 0 -i img_list.txt -i bgm.mp3 -c:v libvpx-vp9 -c:a libopus -shortest output.webm
    
    其中-shortest参数表示视频长度以时长更短的输入为准,一般为音频播放结束后即终止视频。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 07:30:52