pyvirtualcam отправляет кадры на виртуальную камеру из Python.
import colorsys
import numpy as np
import pyvirtualcam
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 :
h , s , v = ( cam . frames_sent % 100 ) / 100 , 1.0 , 1.0
r , g , b = colorsys . hsv_to_rgb ( h , s , v )
frame [:] = ( r * 255 , g * 255 , b * 255 )
cam . send ( frame )
cam . sleep_until_next_frame ()
pyvirtualcam использует первую доступную виртуальную камеру, которую он находит (см. следующий раздел).
Дополнительные примеры, в том числе использование различных форматов пикселей, таких как BGR, или выбор конкретного устройства камеры, можно найти в папке examples/
.
См. также документацию по API.
Этот пакет работает в Windows, macOS и Linux. Установите его из PyPI с помощью:
pip install pyvirtualcam
pyvirtualcam использует существующие виртуальные камеры, которые необходимо установить в первую очередь. Подробности смотрите в следующем разделе.
OBS включает встроенную виртуальную камеру для Windows (начиная с версии 26.0).
Чтобы использовать виртуальную камеру OBS, просто установите OBS.
Обратите внимание, что OBS предоставляет только один экземпляр камеры, поэтому невозможно отправлять кадры из Python на встроенную виртуальную камеру OBS, захватывать камеру в OBS, смешивать ее с другим контентом и снова выводить во встроенную камеру OBS. в виртуальной камере. Чтобы реализовать такой рабочий процесс, используйте другую виртуальную камеру из Python (например, Unity Capture), чтобы встроенная виртуальная камера OBS была бесплатна для использования в OBS.
Unity Capture предоставляет виртуальную камеру, изначально предназначенную для потоковой передачи игр Unity. По сравнению с большинством других виртуальных камер он поддерживает кадры RGBA (кадры с прозрачностью), которые, в свою очередь, можно захватывать в OBS для дальнейшей обработки.
Чтобы использовать виртуальную камеру Unity Capture, следуйте инструкциям по установке на сайте проекта.
OBS включает встроенную виртуальную камеру для macOS (начиная с версии 26.1).
ПРИМЕЧАНИЕ . Начиная с pyvirtualcam 0.10, поддерживается только OBS 28 или выше. Установите более старую версию, если вам нужна поддержка OBS 26/27.
ТРЕБУЕТСЯ ПОМОЩЬ : pyvirtualcam требует обновлений кода для работы на macOS 14 и выше. Если у вас есть Mac, рассмотрите возможность внести свой вклад: № 111 (комментарий).
Чтобы использовать виртуальную камеру OBS, выполните следующие единоразовые действия по настройке:
Обратите внимание, что OBS предоставляет только один экземпляр камеры, поэтому невозможно отправлять кадры из Python, захватывать камеру в OBS, смешивать их с другим контентом и снова выводить как виртуальную камеру.
pyvirtualcam использует виртуальные камеры v4l2loopback в Linux.
Чтобы создать виртуальную камеру v4l2loopback в Ubuntu, выполните следующую команду:
sudo apt install v4l2loopback-dkms
sudo modprobe v4l2loopback devices=1
Дополнительную информацию см. в документации v4l2loopback.
git clone https://github.com/letmaik/pyvirtualcam --recursive
cd pyvirtualcam
pip install .
Данные инструкции являются экспериментальными и поддержка по ним не осуществляется. Как правило, нет необходимости собирать вручную, поскольку колеса размещаются на PyPI.
Для сборки pyvirtualcam вам необходимо установить Visual Studio.
В окне 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.