强制FFMPEG重新使用gif帧

强制FFMPEG重新使用gif帧,ffmpeg,gif,Ffmpeg,Gif,我正在使用ffmpeg从mov文件导出gif,代码如下: ffmpeg -i movie.mov -i mypalette.png -lavfi "paletteuse,scale=600:-1" -r "25" -loop "0" movie.gif 这部电影在画面不变的地方有很多停顿。我注意到,当在Photoshop中打开gif时,它使用的是同一帧的副本,而不是在该帧上暂停2秒钟。 有没有办法强制FFMEG重新使用相同的帧?使用 ffmpeg-i movie.mov-i mypalete

我正在使用ffmpeg从mov文件导出gif,代码如下:

 ffmpeg -i movie.mov -i mypalette.png -lavfi "paletteuse,scale=600:-1" -r "25" -loop "0" movie.gif
这部电影在画面不变的地方有很多停顿。我注意到,当在Photoshop中打开gif时,它使用的是同一帧的副本,而不是在该帧上暂停2秒钟。 有没有办法强制FFMEG重新使用相同的帧?

使用

ffmpeg-i movie.mov-i mypalete.png-lavfi“mpdecimate,palettuse,scale=600:-1”-vsync 0-r 25-loop 0 movie.gif


mpdecimate将从输入中删除重复帧。
-vsync 0
将防止ffmpeg使用重复帧填充mpdecimate创建的间隙。

谢谢,这确实会创建较小的gif,但最终帧上没有延迟,就像视频中一样。这可以在photoshopAdd
-final_delay 5
中将最终帧的延迟设置为500毫米秒。使用
ffmpeg-i movie.mov-i mypalete.png-lavfi“mpdecimate,paletteuse,scale=600:-1”-vsync 0-r 25-loop 0-final delay 5 movie.gif
为我提供了无法识别的选项“final”。哎呀,最终延迟以厘米为单位,因此,5导致最终帧持续时间为50毫秒。您必须使用setpts过滤器。基本模板如下所示: