letmaik / pyvirtualcam

🎥 Send frames to a virtual camera from Python
GNU General Public License v2.0
452 stars 49 forks source link

Issue with Selecting Specific UnityCapture Devices in pyvirtualcam #121

Open Mo18769 opened 3 months ago

Mo18769 commented 3 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()
zeeblaze commented 3 days 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()
  1. Running a script intended for the first UnityCapture device subsequently affects all devices:
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()

To use a specific unity virtual camera, you have to install different ones with different names...if you install different cameras with same name, you will encounter this kind of error, pyvirtualcam send to the specific name, so if the names are the same, all will have same mirrored output.