Code is not executed in Processing, but in p5.js Web Editor

I really don’t get why your original demo would get your both cameras and mine couldn’t. :confused:

The most notable difference is that b/c you have enumerateDevices() inside the preload() callback, the whole thing starts much later in comparison to my demo, which invokes it ASAP. :man_running:

Maybe if I change my demo to also call enumerateDevices() much later, after the whole page and its resources have been fully loaded, I wonder if I could get the same success result as yours on the Safari browser? :thinking:

So instead of straight invoking my getAvailableVideoDevices(), I’d register it as a load event callback:
addEventListener('load', getAvailableVideoDevices);