다음 코드를 실행하려고 하면 위의 오류가 발생합니다.
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()
저는 이것을 라즈베리 파이(커널 버전: 5.10, raspberrypi-kernel-headers 버전은 1:1.20210527-1)에서 실행하고 있습니다.
오류:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/pi/.local/lib/python3.7/site-packages/pyvirtualcam/camera.py", line 219, in __init__
raise RuntimeError('\n'.join(errors))
RuntimeError: 'v4l2loopback' backend: std::exception
해결됨:
이 문제를 일으킨 어떤 이유로 v4l2loopback이 충돌했습니다. 코드 시작 부분에 있는 다음 줄을 사용하면 문제가 해결되었습니다.
import os
if "raspberrypi" in str(os.uname()):
os.system("sudo modprobe -r v4l2loopback")
os.system("sudo modprobe v4l2loopback")