如何解决捕获和处理网络摄像头提要并将其作为“虚拟网络摄像头”公开-在Windows中使用Python
最终目标是捕获常规的网络摄像头供稿,以某种方式对其进行处理(模糊面部,替换背景,...),然后以某种方式输出结果,以便可以将经处理的供稿选择为任何应用程序都需要网络摄像头(Discord,Teams ...)。
我正在Windows机器上工作,并且希望使用Python进行此操作。此刻,我迷失了。
- 通过https://pypi.org/project/opencv-python/捕捉和操作很容易
- 暴露提要步骤似乎过于复杂
显然,在Linux上,只有Python库提供了该功能,但它们在Windows上不起作用。听起来可能暗示着一个好的解决方案的所有内容都直接进入了C ++国家。有些程序基本上可以满足我的要求,例如webcamoid(https://webcamoid.github.io/)和我可以一起破解一个解决方案,该解决方案通过Python捕获和处理供稿,然后使用webcamoid记录输出并将其供入虚拟网络摄像头。但是我更喜欢将整个事情合而为一。
我一直在搜索,发现有关以下主题的stackoverflow这些问题:
- Using OpenCV Output as Webcam(使用C ++,但也提供了Python解决方案-但是,pyfakewebcam在Windows上不起作用)
- How do I stream to a new video source?(未真正回答,仅链接到其他问题)
- How to simulate a webcam device(更多C ++提示,指向msdn的“编写自定义媒体源”的链接)
- Artificial webcam on windows(基本上是我想要的,但是再次使用C ++)
- Writing a virtual webcam?(有关在C ++中如何工作的更多说明)
我得到 strong 的印象,我需要C ++或必须在Linux上工作。但是,由于既缺乏Linux机器,也缺乏任何设置,也缺乏C ++编程经验,这似乎应该为“玩具项目”做大量工作。但是也许我只是在某个地方缺少明显的库或功能?
因此,问题是:是否可以在Windows上通过Python公开“网络摄像头”流?
最后一个想法:如果我在Linux Python环境中使用docker容器来实现所需的功能,该怎么办。然后,该容器可以将“虚拟网络摄像头”流式传输到主机吗?
解决方法
您可以使用pyvirtualcam
首先,您需要使用pip安装它
pip install pyvirtualcam
然后转到This Link并从最新版本下载zip文件
解压缩并导航到\ bin \ [您计算机的烦恼]
在该目录中打开命令提示符,然后键入
regsvr32 /n /i:1 "obs-virtualsource.dll"
这会将假冒的相机注册到您的计算机
,如果要注销相机,请运行以下命令:
regsvr32 /u "obs-virtualsource.dll"
现在您可以使用pyvirtualcam将帧发送到相机
这是一个示例:
import pyvirtualcam
import numpy as np
with pyvirtualcam.Camera(width=1280,height=720,fps=30) as cam:
while True:
frame = np.zeros((cam.height,cam.width,4),np.uint8) # RGBA
frame[:,:,:3] = cam.frames_sent % 255 # grayscale animation
frame[:,3] = 255
cam.send(frame)
cam.sleep_until_next_frame()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。