pyvirtualcam sendet Frames von Python an eine virtuelle Kamera.
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 verwendet die erste verfügbare virtuelle Kamera, die es findet (siehe späterer Abschnitt).
Weitere Beispiele, einschließlich der Verwendung verschiedener Pixelformate wie BGR oder der Auswahl eines bestimmten Kamerageräts, finden Sie im Ordner examples/
.
Siehe auch die API-Dokumentation.
Dieses Paket funktioniert unter Windows, macOS und Linux. Installieren Sie es von PyPI mit:
pip install pyvirtualcam
pyvirtualcam basiert auf vorhandenen virtuellen Kameras, die zunächst installiert werden müssen. Einzelheiten finden Sie im nächsten Abschnitt.
OBS enthält eine integrierte virtuelle Kamera für Windows (seit 26.0).
Um die virtuelle OBS-Kamera zu verwenden, installieren Sie einfach OBS.
Beachten Sie, dass OBS nur eine einzelne Kamerainstanz bereitstellt. Daher ist es nicht möglich, Frames von Python an die integrierte virtuelle Kamera von OBS zu senden, die Kamera in OBS zu erfassen, sie mit anderen Inhalten zu mischen und sie erneut an die integrierte virtuelle Kamera von OBS auszugeben. in der virtuellen Kamera. Um einen solchen Workflow zu erreichen, verwenden Sie eine andere virtuelle Kamera von Python (wie Unity Capture), sodass die in OBS integrierte virtuelle Kamera in OBS kostenlos verwendet werden kann.
Unity Capture bietet eine virtuelle Kamera, die ursprünglich für das Streamen von Unity-Spielen gedacht war. Im Vergleich zu den meisten anderen virtuellen Kameras unterstützt sie RGBA-Frames (Frames mit Transparenz), die wiederum in OBS zur weiteren Verarbeitung erfasst werden können.
Um die virtuelle Unity Capture-Kamera zu verwenden, befolgen Sie die Installationsanweisungen auf der Projektseite.
OBS enthält eine integrierte virtuelle Kamera für macOS (seit 26.1).
HINWEIS : Ab pyvirtualcam 0.10 wird nur OBS 28 oder höher unterstützt. Installieren Sie eine ältere Version, wenn Sie OBS 26/27-Unterstützung benötigen.
HILFE GESUCHT : pyvirtualcam erfordert Code-Updates, um auf macOS 14 und höher zu laufen. Wenn Sie einen Mac besitzen, denken Sie über einen Beitrag nach: #111 (Kommentar).
Um die virtuelle OBS-Kamera zu verwenden, befolgen Sie diese einmaligen Einrichtungsschritte:
Beachten Sie, dass OBS nur eine einzelne Kamerainstanz bereitstellt. Daher ist es nicht möglich, Frames von Python zu senden, die Kamera in OBS zu erfassen, sie mit anderen Inhalten zu mischen und sie erneut als virtuelle Kamera auszugeben.
pyvirtualcam verwendet virtuelle v4l2loopback-Kameras unter Linux.
Führen Sie Folgendes aus, um eine virtuelle v4l2loopback-Kamera unter Ubuntu zu erstellen:
sudo apt install v4l2loopback-dkms
sudo modprobe v4l2loopback devices=1
Weitere Informationen finden Sie in der v4l2loopback-Dokumentation.
git clone https://github.com/letmaik/pyvirtualcam --recursive
cd pyvirtualcam
pip install .
Diese Anweisungen sind experimentell und werden nicht unterstützt. Normalerweise sollte keine manuelle Erstellung erforderlich sein, da die Räder auf PyPI gehostet werden.
Sie müssen Visual Studio installiert haben, um pyvirtualcam zu erstellen.
In einem PowerShell-Fenster:
$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
Das Obige lädt alle Build-Abhängigkeiten herunter (einschließlich einer Python-Installation) und wird über die vier Umgebungsvariablen vollständig konfiguriert. Setzen Sie USE_CONDA = '0'
um innerhalb einer vorhandenen Python-Umgebung zu erstellen.