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
คุณต้องติดตั้ง 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 ที่มีอยู่