We’re encountering an issue on the iOS 15 Beta when establishing a WebRTC connection through Safari, where we are not receiving the remote streams, either video or audio.
This has been working in iOS 14 with no issues, and a build of WebRTC (from commit
c830bd627f519b9dff95b04b6ac8c104f088e1ce) continues to work within our App, but not through either the Safari App or when launched as a SFSafariViewController.
The issue is present in Beta 8, however has been present since at least Beta 2, and presumably prior to that as well.
We have run the below test cases through http://www.appr.tc/, encountering the following results:
- iOS 15b8 iPhone Safari to iOS 15b8 iPad Safari: Connected, no remote stream visible.
- iOS 15b8 iPhone Chrome to iOS 15b8 iPad Chrome: Connected, no remote stream visible.
- MacOS Monterey Safari to iOS 15b8 iPad: Connected, both streams visible on iMac, no remote stream on iPad.
- macOS Big Sur Safari to iOS 15b8 iPhone: Connected, both streams visible on iMac, no remote stream on iPhone.
- macOS Big Sur Chrome to iOS 15b8 iPhone: Connected, both streams visible on iMac, no remote stream on iPhone.
- macOS Big Sur Chrome to iOS 15b8 iPhone Simulator: Connected, both streams visible on iMac, no remote stream on Simulator.
The above results mirror the issue we’ve been encountering in our own product where the stream from the device is sent to the remote, but the remote stream is not being shown on the device. Whether this is an issue with Safari or with the version of WebRTC used therein we aren’t sure.
It does seem that if we change the default Safari experimental settings below in Beta 8 we are seeing success:
- “VP9 SW Decoder on Battery” - Enabled
- “VP9 Decoder” - Disabled
Given the above, we suspect this issue may be related to Safari now using VP9?
AppRTC source: https://github.com/webrtc/apprtc
This update is going to heavily impact me as I rely on video broadcasting through Safari on my phone for my job. Without this, it will be a major **** to my income and I am afraid to update my phone until then.