OverconstrainedError on iPad

Hello :slight_smile:

I’m using openvidu-browser 2.10.0 and I have problem making video calls on iPads.

Everything works fine on iPhones and desktop but whenever I try to stream video on an iPad I get the following error: OverconstrainedError and the video does not load.

I’ve tried replacing my own implementation with a demo provided by OpenVidu resulting in the same error. Also noticed that the demos on openvidu.io results in the same errors when I’m connecting with an iPad.

It seems to have something to do with MediaStreamTrack or getUserMedia()!?

Is this a know bug and is there any workaround?

Thanks

Hello,

I guess you are refering to OpenVidu on Safari browser, right? And you are stating that openvidu.io/demos work fine on Safari for iPhone, but they do not work on Safari for iPad?

I’ve just tested this scenario with an iPad Air with iOS 12.4.1 (16G102) and it works fine, just as in iPhone. I’ve used Getaroom demo (https://demos.openvidu.io/getaroom), being one user a dekstop Chrome and other Safari on iPad. Maybe in more recent versions of iOS it doesn’t work properly on Safari for iPads? We have also tested that same scenario in iPhone 7 Plus 13.1.3 and it also works fine. Image below shows iPad screenshot:

Can you give us some further feeback of an application of openvidu.io/demos that doesn’t work in Safari for iPad? The nature of the other participant connected for the test is also important.

Regards.

Hi

Previously I used the Basic Videoconference demo. I tried with getaroom demo now with the same result. Video on iPad won’t stream. However streams from other participants gets initialised but the stream seems to fail and the video freezes. No error is displayed in the browser log when the stream freezes.
Screenshot from ipad (other participant is showing):

Other participants can see all other participants except for iPad.

On the iPad I get this error message in the console when I join the room:


Error expanded:

I use an iPad 6 with iOS 13.3 and safari

Well, that OverConstranied error is usually caused when calling getUserMedia with invalid audio/video source properties (https://developer.mozilla.org/en-US/docs/Web/API/OverconstrainedError). In openvidu-browser, getUserMedia is called by OpenVidu.initPublisher method. Maybe in iOS 13.3 for iPad the properties provided to OpenVidu.initPublisher method in OpenVidu demos are not valid, and are triggering this specific error.

May I suggest you modify any of the apps to call OpenVidu.initPublisher with different properties? Maybe you can even directly try calling native Web API method MediaDevices.getUserMedia, to figure out some constraints that work fine on Safari for iOS 13.3 on iPad.

Also, you must take into account this tricky stuff related to audio playing on Safari for iOS: https://openvidu.io/docs/troubleshooting/#12-videos-are-freezing-on-safari-for-ios

For a 1:1 call shouldn’t be a problem. For more complex sessions you might have to mess around until you get with a proper multiple-audio playback on Safari for iOS. Apple made this decission of complicating multiple audio streams playback on its browser at the same time, and usually applications must be modified to support it. Google is our frind when doing so :slight_smile:, there are some soultions out there.

If you’d be so kind as to share here any findings you make for everyone to take advantage of, we’d all appreciate it. Regards!

Great! Thanks for all the help :slight_smile:

I’ll keep debugging and see if I can find a solution. I’ll let you know!

Hi, It turns out that our MDM had camera restrictions on all our iPads. So, even though Safari allowed camera access the camera could not be accessed.

After our MDM admin changed the restrictions everything works as expected.

So the bug was on our side! Thanks for all your help :slight_smile:

1 Like