我正在构建一个创建视频的应用程序。问题是,有时(嗯......大部分时间)帧获取过程不够快。
如果我迟到了,我目前正在做的是跳过当前帧采集,但是 FFMPEG/libavcodec 将我传递给它的每一帧都视为下一帧,所以如果我从 2 帧中删除 1 帧,则为 20 秒视频只会持续 10 个。一旦我添加声音,就会出现更多问题,因为声音处理速度更快......
我想告诉 FFMPEG:“最后一帧应该比最初预期的持续时间长两倍”,或者任何可以让我实时处理的东西。
我试图将帧堆叠在一个点上,但这最终会杀死我所有的内存(我还尝试在硬盘驱动器中“堆叠”我的帧,这很慢,正如我所料)
我想我将不得不手动使用 pts,但我所有的尝试都失败了,并且阅读其他一些使用 ffmpeg 的应用程序代码(例如 VLC)并没有太大帮助......所以任何建议都会很多赞赏!
提前非常感谢!