2011-11-29 69 views
1

我正在进行桌面视频捕获。我实现了快速工作的截图抓取。然后我通过addImage将每个截图添加到QTMovie:forDuration:withAttributes:但它的工作速度非常慢,所以当我尝试创建全屏捕捉(例如1920x1080)时,我只有1.2 fps。我试图在主线程上收集屏幕截图并在其他线程上处理它们(添加到QTMovie),并且内存消耗非常快速增长(检索的屏幕截图是未压缩的)。有任何想法吗?谢谢。QTMovie addImage performance

回答

3

我同意addImage:forDuration:withAttributes:不是逐帧捕获的好方法。我们在使用QTKit框架进行多帧捕捉时也遇到了内存泄漏。

使用Quicktime框架可以获得更好的结果。特别是AddMediaSample2()功能可以将图像添加到电影中。

如果您使用一个线程获取帧并将另一个线程添加到影片中,则需要小心。当你有很多帧时,你可以快速到达这一点,但是你的对象不能以相同的速度将它们全部添加到电影中。继续下去,你可能需要放弃某些帧。

通常,捕获是一个棘手的过程。祝你好运。