pyvirtualcam icon indicating copy to clipboard operation
pyvirtualcam copied to clipboard

Issue with Selecting Specific UnityCapture Devices in pyvirtualcam

Open jostmoritz opened this issue 1 year ago • 4 comments

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()

jostmoritz avatar Mar 18 '24 08:03 jostmoritz

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.

zeeblaze avatar Jul 04 '24 14:07 zeeblaze

Hello @Mo18769 , same problem here. Did you find a solution?

thiv31 avatar Oct 07 '24 14:10 thiv31

Hello @Mo18769 , same problem here. Did you find a solution?

You have to use the one pull request of unity Capture and build it yourself...

https://github.com/schellingb/UnityCapture/pull/36

I think i hosted it on this subdomain: webcam.mrtz.nl

jostmoritz avatar Oct 09 '24 06:10 jostmoritz

Thank you so much @Mo18769 . It works !!

thiv31 avatar Oct 09 '24 07:10 thiv31