首先出现两个问题,即1)在从avi或mp4转换为gif的过程中丢失的最后一个视频帧,并显示错误消息“错误从文件的缓冲区接收端获取帧”; 2)如果将过滤器的缩放比例设置为高级别(例如1920x1080)和通常的fps(例如15、25),所消耗的内存会爆炸到大于1.8G(源视频持续时间约为20+秒)。
正在运行的代码来自问题How to use palettegen and paletteuse filters with FFmpeg in C++?的答案。
几种解决方案未能解决问题。例如更改解码源视频和对gif逻辑进行编码(以循环的方式),它甚至无法编码一帧。
那么链接页面中的代码或逻辑是否存在问题?甚至任何线索都可能感激不尽!
除了“强大的” ffmpeg库外,还有没有可以将avi或mp4转换为gif的库?我已经尝试过基于ffmpeg的ImageMagick库,基于CxImage的功能少且不足以满足需求的库,以及令人困惑的GIFLIB,我需要一些演示代码等等...
任何线索都很感激:)