Objective c 直接在Mac上录制屏幕

Objective c 直接在Mac上录制屏幕,objective-c,macos,cocoa,Objective C,Macos,Cocoa,好的,我想把Mac的屏幕直接记录到.mov或.m4v上。我看了一下苹果公司的Grab之子,但我更愿意不处理屏幕截图和个人图像,而只处理视频 我以为QTKit里应该有东西,但我找不到。我知道这可以在OpenGL中实现,但1)我不知道如何实现,2)如果可能的话,我希望避免这种情况 为了详细说明,我正在使用QTCaptureDeviceInput和(显然是一个QTDevice)从iSight录制,因为我需要一个解决方案来处理雪豹 似乎应该有一种方法将屏幕作为QTMediaTypeVideo的输入设备

好的,我想把Mac的屏幕直接记录到.mov或.m4v上。我看了一下苹果公司的Grab之子,但我更愿意不处理屏幕截图和个人图像,而只处理视频

我以为QTKit里应该有东西,但我找不到。我知道这可以在OpenGL中实现,但1)我不知道如何实现,2)如果可能的话,我希望避免这种情况

为了详细说明,我正在使用QTCaptureDeviceInput和(显然是一个QTDevice)从iSight录制,因为我需要一个解决方案来处理雪豹

似乎应该有一种方法将屏幕作为QTMediaTypeVideo的输入设备


任何帮助都将不胜感激

您可以使用AVFoundation在Mac上进行屏幕录制。不过,它仅在10.7版上可用。

您可以使用CGDisplayCreateImage/CGDisplayCreateImageFromRect API(10.6+)获取屏幕的静态图像,然后用它们制作电影


不过,我不确定它的性能会有多好。

我发现,当面对这个问题时,它是否足够快,试一试吧。做一个快速测试,一帧接一帧地说1000次,然后计时。CGDisplayCreateImageFromRect根本不难调用。当鼠标被点击时,我把它称为全屏幕的单屏截图,它几乎不会减慢我的mac(只是一台基本的双核机器)

苹果有两个样本,展示了实现这一目标的两种主要方法:-

屏幕快照 索诺夫格拉布


这将是很容易修改这些做它说1000次循环

好吧,我放弃。我找到的每一个使用OpenGL的解决方案似乎都会导致苹果网站上的链接中断。我将如何使用AVFoundation实现这一点?一个链接到一个示例就太棒了。好吧,所以我现在才结束制作Lion应用程序,但这并不是我所认为的最干净的解决方案