【发布时间】:2020-08-12 12:24:12
【问题描述】:
最终目标是捕获常规网络摄像头提要,以某种方式对其进行操作(模糊面部、替换背景等),然后以某种方式输出结果,以便可以选择经过处理的提要作为任何需要网络摄像头的应用程序(Discord、Teams 等)。
我在一台 Windows 机器上工作,并且更喜欢在 Python 中执行此操作。目前,这种组合让我迷失了方向。
- 使用https://pypi.org/project/opencv-python/ 可以轻松捕获和操作
- 公开 feed 步骤似乎过于复杂
显然,在 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++ 中工作)
我得到的强烈印象是我需要 C++ 或必须在 Linux 上工作。然而,由于缺乏 Linux 机器和任何设置以及 C++ 编程经验,这对于本应是的“玩具项目”来说似乎是大量工作。但也许我只是在某处遗漏了一个明显的库或功能?
因此,问题是:有没有办法在 Windows 上通过 Python 公开“网络摄像头”流?
最后一个想法:如果我使用带有 Linux Python 环境的 docker 容器来实现我想要的功能会怎样。然后该容器能否将“虚拟网络摄像头”流式传输到主机?
【问题讨论】:
标签: python windows opencv webcam