如何使用FFmpeg选择带有序列后缀的图像序列指定范围生成GIF?
使用ffmpeg选取指定范围图片生成GIF
要从001.png到100.png中选取第20至70张生成GIF,有两种常用的实现方式:
方式一:用起始序号+帧数指定范围
直接通过参数定义起始图片序号和要处理的总帧数,命令如下:
ffmpeg -f image2 -framerate 30 -start_number 20 -i %03d.png -vframes 51 -vf scale=-2:480 myAnim_partial.gif
-start_number 20:设置读取的起始图片序号为20(对应020.png)-vframes 51:指定处理的总帧数,20到70共51张图(70-20+1=51)
方式二:用滤镜选择帧范围
借助select滤镜匹配帧索引,适合更灵活的帧筛选场景:
ffmpeg -f image2 -framerate 30 -i %03d.png -vf "select='between(n,19,69)',scale=-2:480" -vsync vfr myAnim_partial.gif
between(n,19,69):n是从0开始的帧索引,第20张图对应索引19,第70张对应索引69-vsync vfr:避免因丢弃帧导致的时间轴异常,保证GIF播放速度正常
两种方式都能满足需求,第一种参数更直观,适合连续序号的简单范围;第二种滤镜方式扩展性更强,可用于非连续帧或复杂条件的筛选。
内容的提问来源于stack exchange,提问作者J. SungHoon
相关产品推荐
相关产品推荐

