使用FFmpeg提取前20帧制作无停顿/末尾暂停3秒循环GIF的方法问询
FFmpeg 生成指定帧范围GIF操作方案
指定帧范围的核心参数
无需逐个输入1-20帧的文件名,通过两个参数即可直接限定读取wrist_0001.png到wrist_0020.png:
-start_number 1:指定序列文件的起始帧编号为1-frames:v 20:指定仅读取前20帧输入
需求1:前20帧无停顿无限循环GIF
先生成适配这20帧的专属调色板:
ffmpeg -start_number 1 -i wrist_%04d.png -frames:v 20 -vf palettegen=16 palette.png
再生成无停顿无限循环GIF,默认无末尾停留:
ffmpeg -start_number 1 -i wrist_%04d.png -frames:v 20 -i palette.png -filter_complex "fps=20,scale=720:-1:flags=lanczos[x];[x][1:v]paletteuse" -loop 0 no_delay_loop.gif
-loop 0为强制无限循环参数,默认也为该值,添加后逻辑更明确
需求2:前20帧末尾暂停3秒无限循环GIF
调色板生成命令和需求1完全一致,生成GIF时通过tpad滤镜实现末尾停留效果即可:
ffmpeg -start_number 1 -i wrist_%04d.png -frames:v 20 -i palette.png -filter_complex "fps=20,scale=720:-1:flags=lanczos,tpad=stop_mode=clone:stop_duration=3[x];[x][1:v]paletteuse" -loop 0 delay_loop.gif
tpad参数中stop_mode=clone表示用最后一帧内容填充停留时段,stop_duration=3设置停留时长为3秒
内容的提问来源于stack exchange,提问作者Rick T
相关产品推荐
相关产品推荐

