and*_*kov 9 python windows webcam opencv
最终目标是捕获常规网络摄像头源,以某种方式对其进行操作(模糊面部,替换背景,...),然后以某种方式输出结果,以便可以选择所操作的源作为任何应用程序期望的输入网络摄像头(Discord、Teams 等)。
我正在 Windows 机器上工作,并且更喜欢在 Python 中执行此操作。目前,这种组合让我迷失了方向。
显然,在 Linux 上有 Python 库只提供该功能,但它们在 Windows 上不起作用。一切听起来像是暗示一个好的解决方案的东西都直接进入了 C++ 国家。有一些程序基本上可以做我想做的事,例如 webcamoid ( https://webcamoid.github.io/ ),我可以一起破解一个通过 Python 捕获和处理提要的解决方案,然后使用 webcamoid 记录输出并提供它进入虚拟网络摄像头。但我更喜欢把整件事合二为一。
我一直在四处搜索,并在有关该主题的 stackoverflow 上发现了这些问题:
我的强烈印象是我需要 C++ 或者必须在 Linux 上工作。然而,由于缺乏 Linux 机器和任何设置以及 C++ 编程经验,这似乎是本应是“玩具项目”的大量工作。但也许我只是在某处缺少一个明显的库或功能?
因此,问题是:有没有办法在 Windows 上通过 Python 公开“网络摄像头”流?
而且,最后一个想法:如果我使用带有 Linux Python 环境的 docker 容器来实现我想要的功能会怎样。然后该容器可以将“虚拟网络摄像头”流式传输到主机吗?
小智 4
您可以使用pyvirtualcam来做到这一点
首先,你需要使用pip安装它
pip install pyvirtualcam
Run Code Online (Sandbox Code Playgroud)
然后转到此链接并下载最新版本的 zip 文件
解压并导航到 \bin\[您计算机的位]
在该目录中打开命令提示符并输入
regsvr32 /n /i:1 "obs-virtualsource.dll"
Run Code Online (Sandbox Code Playgroud)
这会将假相机注册到您的计算机上
如果您想取消注册相机,请运行以下命令:
regsvr32 /u "obs-virtualsource.dll"
Run Code Online (Sandbox Code Playgroud)
现在您可以使用 pyvirtualcam 将帧发送到相机
这是一个示例:
pip install pyvirtualcam
Run Code Online (Sandbox Code Playgroud)