如何让Cocoa检测USB网络摄像头设备

时间:2014-11-11 08:19:34

标签: macos cocoa usb webcam macos-carbon

无法从浏览器访问网络摄像头

我的目标是从OS X上的任何Web浏览器访问USB网络摄像头(视频/摄像头)设备。使用Flash,我看不到插入,打开和激活的USB网络摄像头。

Adobe Flash select webcam

同样,我无法使用HTML5 getUserMedia() https://www.webrtc-experiment.com/DetectRTC/检测网络摄像头视频源。虽然列出了来自USB设备的音频流

HTML5 getUserMedia

ImageSnap(Cocoa)

为了验证USB设备是否实际上可以在OSX中访问,我使用开源工具ImageSnap

$ imagesnap -l
Video Devices:
FaceTime HD Camera (Built-in)

仅检测到内置iSight摄像头,而不是连接的USB摄像头。

ImageSnap使用Cocoa框架。

wacaw(Carbon)

接下来,使用wacaw,我可以列出连接的USB摄像头,甚至可以正确拍摄快照。

$ wacaw -L
DVFreeThread - CFMachPortCreateWithPort hack = 0x116970, fPowerNotifyPort= 0x1158d0
There are 5 devices in the list.
The current selection is 0.
 0 - AVer Virtual Camera [is available] [has inputs]
    There are 1 inputs for this device (0).
    The current selection is 0.
   0 - AVer Virtual Camera [is available]
 1 - DV Video [is available] [has no inputs]
 2 - IIDC FireWire Video [is available] [has no inputs]
 3 - USB Video Camera for AverVision Digital Presenter 2 [is available] [has no inputs]
 4 - USB Video Class Video [is available] [has inputs]
    There are 1 inputs for this device (4).
    The current selection is 0.
   0 - FaceTime HD Camera (Built-in) [is available]

wacaw使用Carbon框架。

问题

如何通过Cocoa访问USB摄像头,这也可以通过网络浏览器访问?

1 个答案:

答案 0 :(得分:0)

显然,相机需要一个驱动程序才能使其正常工作。 Mac上的应用程序现在以64位运行,而碳驱动程序(应该使用序列抓取器框架实现)仅为32位。 如果相机制作人提供用可可写的驱动程序,或者只是使用UVC相机,它可能会有效。