1

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

4

1 回答 1

3

我同意addImage:forDuration:withAttributes:这不是逐帧捕获的好方法。QTKit当我们使用它来捕获大量帧时,我们也遇到了框架内部的内存泄漏。

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

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

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

于 2011-12-14T03:30:10.657 回答