如何获取 Mac OS 上的视频捕获设备(网络摄像头)列表? (C++)
所以我需要的很简单 - 当前可用的视频捕获设备(网络摄像机)的列表。我需要它在简单或 C++ 控制台应用程序中。我所说的列表是指类似控制台输出的内容:
1) Asus Web Camera
2) Sony Web Camera
看起来很简单,但我有一个要求 - 尽可能多地使用本机操作系统 api - 没有外部库 - 毕竟 - 我们想要的只是打印出一个列表 - 不是飞行登上月球!)(请不要使用 Objective-C - 纯 C/C++)
如何做这样的事情?
也来自本系列:
- 如何获取 Linux 上的视频捕获设备列表? 和 有关获取相机名称的特殊详细信息以及经过测试的正确答案
- 如何获取 Mac OS 上的视频捕获设备列表? 正确,不正确尚未通过我的答案进行测试
- 如何获取 Windows 上的视频捕获设备列表? 提供经过测试的正确答案
- 如何使用 Qt(跨平台)获取视频捕获设备名称列表?
So all I need is simple - a list of currently avaliable video capture devices (web cameras). I need it in simple or C++ console app. By list I mean something like such console output:
1) Asus Web Camera
2) Sony Web Camera
So It seems simple but I have one requirement - use of native OS apis as much as possible - no external libs - after all - all we want is to print out a a list - not to fly onto the moon!) (and no use of objective-C, please - pure C/C++)
How to do such thing?
also from this series:
- How to get a list of video capture devices on linux? and special details on getting cameras NAMES with correct, tested answers
- How to get a list of video capture devices on Mac OS? with correct, not yet tested by my answers
- How to get a list of video capture devices on windows? with correct, tested answers
- How to get a list video capture devices NAMES using Qt (crossplatform)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要使用 SGGetChannelDeviceList,它是 QuickTime C API 的一部分。每个设备可以有多个输入。解析它的正确方法是这样的:
You need to use SGGetChannelDeviceList, which is part of the QuickTime C API. Each device can have multiple inputs. The proper way to parse it is like this:
显然你可以在终端中使用
system_profiler SPUSBDataType
这就是答案:
clearly you can use
system_profiler SPUSBDataType
in terminalthat is the answer: