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