Wowza Community

Wowza WebRTC playback failure on iPad


We have been using WebRTC for our live streaming solutions. We were using Windows and MacOS devices so far. We also have a requirement to support iOS devices.

When I am trying to play a WebRTC stream in iPad air 4th gen (iOS 14.5.1) on Safari browser. I am facing issues. In WebRTC playback, the initial WebSocket connection is failing to the Wowza server. I am using the Wowza WebRTC playback page - to play the stream and I see the following logs:

[Log] WowzaPeerConnectionPlay.start: sdpURL:wss://************/webrtc-session.json streamInfo:{"applicationName":"live","streamName":"","sessionId":"[empty]"} (WowzaPeerConnectionPlay.js, line 245)

[Log] WowzaPeerConnectionPlaywsConnect: wss://***********/webrtc-session.json (WowzaPeerConnectionPlay.js, line 108)
[Error] WebSocket network error: The operation couldn’t be completed. (OSStatus error -9807.)
[Log] WowzaWebRTCPlay ERROR: (WowzaWebRTCPlay.js, line 140)

[Log] Event {isTrusted: true, type: "error", target: WebSocket, currentTarget: WebSocket, eventPhase: 2, …} (WowzaWebRTCPlay.js, line 141)

[Log] typeof object (WowzaWebRTCPlay.js, line 146)

**[Error] WebSocket network error: The operation couldn’t be completed. (OSStatus error -9807.)**

[Log] wsConnection.onclose (WowzaPeerConnectionPlay.js, line 231)

I do remember testing WebRTC on iPad back in 2020, at that time I was able to play WebRTC videos. The device that I used at that time was iPad Air 3rd generation, iOS 13.5.1.

has anything been changed in WebRTC workflow in Wowza wrt to iOS devices? is there any specific configuration needed to support WebRTC playback in newer iOS versions?

Wowza Streaming Engine version => 4.8.5
Java - 11.0.2

I have the following suggestions:

  1. Have you tried enabling both UDP and TCP as the Ice Candidates? You can do this in the Engine UI. This has been resolved for some folks who tried UDP or had it in addition to TCP. You can have both and adjust the priority. For example, if TCP doesn’t work first, it will try over UDP. You can change the priority using the up/down arrows after you click ADD ICE CANDIDATE.

  1. Have you made sure your browser supports the WebRTC API’s for this 14.5.1 version and there are no restrictions?

  1. Have you tried lowering the bitrate and framerate to make sure it’s not too high for the iPAD?

  2. Are you sure you are using H.264?

  3. Do you have the proper ports configured? Note: Port 554 isn’t supported for TCP ICE candidates.

If still having issues, we can only accurately diagnose through a support ticket. Hope the info above helps though. We do have customers streaming webrtc over 14.5.1 though.

Thanks for the reply. I would respond to your suggestions as following.

  1. Ice candidates exchange happens once Wowza server sends the initial ‘getoffer’ response. in my case, the initial connection to Wowza server over WebSocket is failing.
  2. Same as 1st
  3. Same as 1st as I am stuck in the initial getoffer request from Wowza server
  4. Yes
  5. Yes I am using 443 SSL port for streaming.

This issue is only happening on iPAD. I would create a support ticket as well.