python - 如何在 python 中获取计算机上存在的网络摄像头的名称?
问题描述
我有个问题。我需要在 python 中使用带有子进程的 ffmpeg 进行视频捕获。
为此,我需要识别计算机中存在的摄像机的名称,以便能够将此参数传递给 ffmpeg 进程。
到目前为止,我已经使用了 WMI 模块,但它只适用于 windows,并且不是很容易使用。
有没有更简单的方法来提取计算机上网络摄像头的名称并将它们保存到数组中?也许还使用 ffmpeg list-devices 并过滤结果?你能帮助我吗?
我不想再使用 WMI 模块,因为我想要一个适用于 windows 或 linux 的通用解决方案,可能使用 subprocess 和 ffmpeg list_devices 命令。谢谢
解决方案
视窗
在 Windows 中使用dshow:
ffmpeg -list_devices true -f dshow -i dummy
Linux
在 Linux 中使用v4l2-ctl
:
v4l2-ctl --list-devices
然后使用FFmpeg video4linux2/v4l2 demuxer连接。
另见
- FFmpeg Wiki:捕获/网络摄像头以获取更多信息和示例。
推荐阅读
- graphql - GraphQL :使用关键字搜索,提供存储库列表,并为每个存储库提供使用 github API 的协作者
- sql - 如何按日期编写每个部门的最低和最高工资的 SQL 查询?
- regex - 正则表达式与 [A-Z0-9]+ 中任意位置的单次破折号匹配,总共出现 20 个字符
- mysql - MySQL ON DELETE CASCADE 设置但不从其他表中删除行
- angular - 如何修复 Angular 中的连续 __webpack_hmr 调用?
- performance - Nginx TCP 流优化
- java - 年龄计算总是减一
- git - 签出 Azure DevOps Pipelines (GetSources) 中分支的一部分
- jestjs - 如何在模块工厂模拟中使用 resetMocks:true
- c# - 在c#中将图像拆分为n部分并转换为pdf