将帧发送到虚拟相机
项目描述
pyvirtualcam
pyvirtualcam 从 Python 向虚拟相机发送帧。
用法
import pyvirtualcam
import numpy as np
with pyvirtualcam.Camera(width=1280, height=720, fps=20) as cam:
print(f'Using virtual camera: {cam.device}')
frame = np.zeros((cam.height, cam.width, 3), np.uint8) # RGB
while True:
frame[:] = cam.frames_sent % 255 # grayscale animation
cam.send(frame)
cam.sleep_until_next_frame()
pyvirtualcam 使用它找到的第一个可用的虚拟相机(参见后面的部分)。
有关更多示例,包括使用 BGR 等不同的像素格式,或选择特定的相机设备,请查看examples/文件夹。
另请参阅API 文档。
安装
该软件包适用于 Windows、macOS 和 Linux。从 PyPI 安装它:
pip install pyvirtualcam
pyvirtualcam 依赖于必须先安装的现有虚拟摄像机。有关详细信息,请参阅下一节。
支持的虚拟摄像机
窗户:OBS
OBS包括一个内置的 Windows 虚拟摄像头(自 26.0 起)。
要使用 OBS 虚拟摄像头,只需安装 OBS即可。
注意OBS只提供了一个单一的相机实例,所以无法从Python发送帧到OBS内置的虚拟相机,在OBS中捕捉相机,与其他内容混合,然后再次输出到OBS的内置在虚拟相机中。要实现这样的工作流程,请使用 Python 中的另一个虚拟摄像头(如 Unity Capture),以便 OBS 的内置虚拟摄像头在 OBS 中免费使用。
Windows:统一捕获
Unity Capture提供了最初用于流式传输 Unity 游戏的虚拟相机。与大多数其他虚拟相机相比,它支持 RGBA 帧(具有透明度的帧),而这些帧又可以在OBS中捕获以进行进一步处理。
要使用 Unity Capture 虚拟摄像机,请按照项目站点上的安装说明进行操作。
macOS:OBS
OBS包括一个用于 macOS 的内置虚拟相机(自 26.1 起)。
要使用 OBS 虚拟摄像头,请执行以下一次性设置步骤:
- 安装 OBS。
- 启动 OBS。
- 单击“启动虚拟摄像机”(右下角),然后单击“停止虚拟摄像机”。
- 关闭 OBS。
请注意,OBS 仅提供单个相机实例,因此无法从 Python 发送帧,在 OBS 中捕获相机,将其与其他内容混合,然后再次将其作为虚拟相机输出。
Linux:v4l2loopback
pyvirtualcam 在 Linux 上使用v4l2loopback虚拟摄像机。
要在 Ubuntu 上创建 v4l2loopback 虚拟摄像头,请运行以下命令:
sudo apt install v4l2loopback-dkms
sudo modprobe v4l2loopback devices=1
有关详细信息,请参阅v4l2loopback 文档。
从源代码构建
Linux/macOS
git clone https://github.com/letmaik/pyvirtualcam --recursive
cd pyvirtualcam
pip install .
视窗
这些说明是实验性的,不为它们提供支持。通常,不需要手动构建,因为轮子托管在 PyPI 上。
您需要安装 Visual Studio 才能构建 pyvirtualcam。
在 PowerShell 窗口中:
$env:USE_CONDA = '1'
$env:PYTHON_VERSION = '3.7'
$env:PYTHON_ARCH = '64'
$env:NUMPY_VERSION = '1.14'
git clone https://github.com/letmaik/pyvirtualcam --recursive
cd pyvirtualcam
powershell .github/scripts/build-windows.ps1
以上将下载所有构建依赖项(包括 Python 安装),并通过四个环境变量进行完全配置。设置USE_CONDA = '0'为在现有 Python 环境中构建。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
内置发行版
pyvirtualcam -0.9.1-cp310-cp310-win_amd64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 08fd19714ff35200c1b609c03d3cfec26e09fbf3ec259b19dcc1b0b2e8084357 |
|
| MD5 | b8c1451b51296693f71c5c7c75491e91 |
|
| 布莱克2-256 | ca59e245e2d9832c6cefd212133d5c1ef988e66e7ccd93f4381017e844949334 |
pyvirtualcam -0.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | eab7ce52105973e02725d278f12a12360d2b335165609dcb7d55a70ce19802a0 |
|
| MD5 | 19c0879447b2f9f06a2a970a6d484f38 |
|
| 布莱克2-256 | fb1b4b32bbd5a5c0f6455044ff0589592e658fe3e0e2dea70f29efca684a7629 |
pyvirtualcam -0.9.1-cp310-cp310-macosx_10_9_x86_64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 51239623a6874d3c3cc5f170788c948ab41e6f4e254bb9dc3ab0fed60ba84584 |
|
| MD5 | df6dd8b2595b2b3d38057a2e7c17b3d9 |
|
| 布莱克2-256 | b3a800ada81d328ceb1d5d955918973b7989c3c8a361d60651c8d3483f1fc16b |
pyvirtualcam -0.9.1-cp39-cp39-win_amd64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | c01d83700cd074c9195f79d8664e86c3afa8cd4895d163d2021215bcfcf3d2a2 |
|
| MD5 | 3d6c8c64956e2563ac46c80efeacf4f9 |
|
| 布莱克2-256 | 396221da53e32ef29822e4602794d864a4c3e221a5e358b0697f9ff0df87b14b |
pyvirtualcam -0.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 035f7881629cb673d3e9167c2b801bb125e38673b711e0b4d2f6106f854d8ccd |
|
| MD5 | e6a647d41a81588f450d3d1bf48a7d3a |
|
| 布莱克2-256 | 6ac2fe866ef90da3c160f861046a48a8a2b92a428eaf7be3013e06752e6773d3 |
pyvirtualcam -0.9.1-cp39-cp39-macosx_10_9_x86_64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | a5a6088f15b6080438794b59ba21e6be949061b5848de504f91ccf444716c486 |
|
| MD5 | 3ee505e9336e4fef76bcc03976609dd5 |
|
| 布莱克2-256 | 8a72d1188c02041c7d28baa84e371fb78e7702daa116947c9d082638d3e8d943 |
pyvirtualcam -0.9.1-cp38-cp38-win_amd64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | c47cb64f810255134cbdd16134df162fea2cfabcdafd53131d438932b70a0f24 |
|
| MD5 | 8d0cc3e797cc66ccae4051fafcc64b6b |
|
| 布莱克2-256 | febca5c51a0700cea77d5e8a5f407cc01c451d336c67f60f0bfb7d54e2059f6f |
pyvirtualcam -0.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 2fd524e7139581151480f6ba8688e615148ac471f0716dbf3337042e4b6a0669 |
|
| MD5 | dede7d183955afd2ace753931e74b02e |
|
| 布莱克2-256 | abc2b8c93f070e2e858c9cae907c424a1798ae554ebfd8bc642af7ad6717d321 |
pyvirtualcam -0.9.1-cp38-cp38-macosx_10_9_x86_64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 196a021b9afd15de7b2c9eed6f1444d123897d3f014af567ee561c27caaadbf8 |
|
| MD5 | 7488b73e779bc494c95e3a7e84e87599 |
|
| 布莱克2-256 | 68ce8ad6b31a8bb960c95c0a3eede837508da2077e739229d910aabd989694b3 |
pyvirtualcam -0.9.1-cp37-cp37m-win_amd64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 206a9b10435f6e2ebc7ee0856b88fd67f1a9d3fd97463c698f57fd282e584785 |
|
| MD5 | 9bd143fc7067638fa5df4e147a4956b4 |
|
| 布莱克2-256 | 1c917820a1d27607ef922965ee1316323aae3437c92ae507eec54b8ef1665e57 |
pyvirtualcam -0.9.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | bdb366187e317d08f0ca73c0a30ede76db3c90f421da95af7e7be76b404df255 |