The camera is failing at the USB hardware level, and neither the server nor sharing with Zoom is the cause. I can’t fix this in software; the fix is physical.
What I tested
• USB errors while video streams: the kernel log is full of USB “transaction error” faults from the camera, about 4,000 in the 12:00 hour alone. Several times today the camera dropped off the bus entirely (“hardware connection lost”) and came back. macOS also resets it after the errors.
• Not just the video channel: the errors also hit the camera’s control and pan/tilt channels. That points to the link itself (cable, port, power or the camera) rather than video bandwidth.
• Idle is clean: with the server stopped and nothing using the camera, there were zero errors in 90 seconds.
• Zoom alone fails too: I stopped the server and joined your Zoom meeting. Zoom asked for 1280×720 and within a minute got 66 errors on the video channel, a stream failure and a forced USB reset. That rules out the server and the sharing between Zoom and the server as the cause.
• A fresh server process also fails: it gets a few frames and then dies. That’s why it’s been restarting every 20–30 seconds since 15:17.
• Lower resolution didn’t help, and the server couldn’t set it anyway. Zoom’s 720p failed the same way. When I tried to make the server request 720p, OpenCV ignored it and stayed at 1920×1080, so I reverted that change.
Where it’s plugged in: the camera hangs off a USB 2 hub built into the Mac mini, probably the front USB-C ports, and shares it with the eMeet A300 adapter. The system log only goes back to 08:24 today, so I can’t tell when the errors started.
What to try, in order:
1. Power-cycle the camera. Unplug its power supply (not just the USB cable) for about 10 seconds. Firmware on old cameras can wedge into a state where streaming always errors.
2. Move the USB cable to one of the rear Thunderbolt ports, directly, with no adapter or hub. Those are on a separate controller from the front hub and the eMeet adapter.
3. Swap the USB cable, and any extender or adapter in the path. Transaction errors are classic signs of a marginal cable.
4. Check the camera’s power supply. Brownouts under the pan/tilt motors or streaming load can drop the camera off USB.
After each change I can rerun the same check: start a stream and count kernel errors. A healthy camera should show zero.