2015-11-06 117 views
2

通过插入我的摄像头,我可以在我的MAC OS应用程序中操作视频/音频流。 现在我想输出它作为一个新的虚拟视频/音频设备,我可以选择作为像“Skype”或QuickTime应用程序的摄像头输入。MAC操作系统上的摄像头设备

我看着I/O Kit框架和参考网页这样说:“数字视频功能添加到您的软件,使用QuickTime的 的API”

我相信这需要更新,因为QuickTime API已被CoreMedia IO取代。

因此,我查看了CoreMediaIO,并从Apple dev网站找到了一个示例代码,该代码也已过时,并且不会在OS Yosemite +的XCode 7.x上运行。

我也看过AVFoundation,但它看起来像死胡同。

我迷失在这一点上。我知道这是可行的,因为CamTwist软件正在这样做。

任何人有一个想法如何解决这个问题?

回答

1

CoreMediaIO绝对是要走的路,因为这正是苹果目前在其硬件中所使用的。在我的系统(2015 rMBP)上,/Library/CoreMediaIO/Plug-Ins/DAL/包含AppleCamera.pluginiOSScreenCapture.plugin,用于摄像头并从iDevice进行捕获。

我假设你指的例子是this one

它并不是很好的开箱即用,但我最终用OSX 10.11 SDK来构建它。您需要Apple的Core Audio Utility Classes,将Xcode项目中的'Sources/Extras/CoreAudio/PublicUtility'组指向这些组,然后修复变量初始化(删除= NULL,它在此处抱怨私有构造函数),并在SamplePrefix中注释掉几行。H。我没有运行它,但我没有看到为什么它不会。如果您没有kext签名证书,则可能需要采取措施加载未签名的kexts以运行示例。

1

您的摄像头是否使用旧的video-digitaizer驱动程序(驱动程序.component文件位于/ Library/QuickTime中)?我能够在QuickTime播放器中看到我的UVC相机和DAL相机。我的理解是,用AVFoundation编写的应用程序不会识别旧的vdig驱动程序。相反,使用序列采集器(非常古老)/ QTCapture(旧)编写的应用程序将识别您的设备。

希望这会有所帮助。

+0

我使用内置的iMac 2015相机。不知道它是否使用旧驱动程序。我甚至不知道如何检查tbh。 – user1988824