schellingb / UnityCapture

Streams Unity rendered output to other Windows applications as virtual capture device
420 stars 65 forks source link

Issue with Selecting Specific UnityCapture Devices in pyvirtualcam #41

Open Mo18769 opened 4 months ago

Mo18769 commented 4 months ago

Environment

Operating System: Windows 11 Python Version: 3.12.2 pyvirtualcam Version: Latest Virtual Camera Used: UnityCapture Virtual Camera Version: Latest

Describe the bug

I'm encountering a bug when using pyvirtualcam with multiple UnityCapture devices. Specifically, after installing 10 UnityCapture devices and attempting to select and use a device other than the first one through pyvirtualcam, none of the devices function as intended. Instead, all UnityCapture devices mirror the output designated only for the first device.

To Reproduce

  1. Install multiple UnityCapture devices (e.g., 10 devices).
  2. Attempt to use a specific device (other than the first one) using the following script:
    
    frame = np.zeros((480, 640, 3), np.uint8)  
    frame[:] = (255, 255, 0)  # yellow

with pyvirtualcam.Camera(width=640, height=480, fps=20, backend="unitycapture", device="Unity Video Capture #2") as cam: print(f'Using virtual camera: {cam.device}') while True: cam.send(frame) cam.sleep_until_next_frame()


3. Running a script intended for the first UnityCapture device subsequently affects all devices:

```py
frame = np.zeros((480, 640, 3), np.uint8)  
frame[:] = (255, 0, 0)  # red

with pyvirtualcam.Camera(width=640, height=480, fps=20, backend="unitycapture", device="Unity Video Capture") as cam:
    print(f'Using virtual camera: {cam.device}')
    while True:
        cam.send(frame)
        cam.sleep_until_next_frame()