pyvirtualcam envía fotogramas a una cámara virtual desde 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 utiliza la primera cámara virtual disponible que encuentra (consulte la sección siguiente).
Para obtener más ejemplos, incluido el uso de diferentes formatos de píxeles como BGR o la selección de un dispositivo de cámara específico, consulte la carpeta examples/
.
Consulte también la documentación de API.
Este paquete funciona en Windows, macOS y Linux. Instálelo desde PyPI con:
pip install pyvirtualcam
pyvirtualcam se basa en cámaras virtuales existentes que deben instalarse primero. Consulte la siguiente sección para obtener más detalles.
OBS incluye una cámara virtual incorporada para Windows (desde 26.0).
Para utilizar la cámara virtual OBS, simplemente instale OBS.
Tenga en cuenta que OBS proporciona una única instancia de cámara, por lo que no es posible enviar fotogramas desde Python a la cámara virtual integrada de OBS, capturar la cámara en OBS, mezclarla con otro contenido y enviarla nuevamente a la cámara virtual integrada de OBS. en cámara virtual. Para lograr dicho flujo de trabajo, use otra cámara virtual de Python (como Unity Capture) para que la cámara virtual incorporada de OBS pueda usarse de forma gratuita en OBS.
Unity Capture proporciona una cámara virtual originalmente diseñada para transmitir juegos de Unity. En comparación con la mayoría de las otras cámaras virtuales, admite fotogramas RGBA (fotogramas con transparencia) que a su vez se pueden capturar en OBS para su posterior procesamiento.
Para utilizar la cámara virtual Unity Capture, siga las instrucciones de instalación en el sitio del proyecto.
OBS incluye una cámara virtual incorporada para macOS (desde 26.1).
NOTA : A partir de pyvirtualcam 0.10, solo se admite OBS 28 o superior. Instale una versión anterior si necesita compatibilidad con OBS 26/27.
SE BUSCA AYUDA : pyvirtualcam requiere actualizaciones de código para ejecutarse en macOS 14 y superior. Si posee una Mac, considere contribuir: #111 (comentario).
Para usar la cámara virtual OBS, siga estos pasos de configuración únicos:
Tenga en cuenta que OBS proporciona solo una instancia de cámara única, por lo que no es posible enviar fotogramas desde Python, capturar la cámara en OBS, mezclarla con otro contenido y generarla nuevamente como cámara virtual.
pyvirtualcam usa cámaras virtuales v4l2loopback en Linux.
Para crear una cámara virtual v4l2loopback en Ubuntu, ejecute lo siguiente:
sudo apt install v4l2loopback-dkms
sudo modprobe v4l2loopback devices=1
Para obtener más información, consulte la documentación de v4l2loopback.
git clone https://github.com/letmaik/pyvirtualcam --recursive
cd pyvirtualcam
pip install .
Estas instrucciones son experimentales y no se proporciona soporte para ellas. Por lo general, no debería ser necesario compilar manualmente ya que las ruedas están alojadas en PyPI.
Debe tener Visual Studio instalado para compilar pyvirtualcam.
En una ventana de 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
Lo anterior descargará todas las dependencias de compilación (incluida una instalación de Python) y está completamente configurado a través de las cuatro variables de entorno. Establezca USE_CONDA = '0'
para compilar dentro de un entorno Python existente.