Hello,
We want to use the IVS service in a mobile application that includes a webview, but we’re encountering some issues. Before diving into those, let’s provide some brief information:
We are broadcasting from a React app within a WebView on both iOS and Android platforms, using the IVS Web Broadcast Client v1.5.2. We play the broadcast on both platforms by playing the associated .m3u8 file.
Here are the problems we are facing:
On the Android platform, we are getting different responses for different streamConfig settings.
a. streamConfig->maxResolution -> We set width and height as 412*880, which we get from window.innerWidth and window.innerHeight,
b. streamConfig->maxFramerate -> 30
c. streamConfig->maxBitrate -> With resolution and FPS being constant; we have tried this with many values ranging from 1000 to 8500.
In the above case, the broadcast doesn’t start at all. A session is created under the channel in IVS, but it cannot switch to LIVE status because;
According to IVS, video bitrate appears as 0 kbps, FPS is 0. Audio bitrate varies between 0-20kbps.
11 seconds after reaching “Session Created” status, it enters the “Starvation Start” status.
In this case, we tried many different values for maxResolution; the broadcast starts and flows smoothly with some, but the above situation occurs in others.
Additionally, we couldn’t find a pattern among these values. Some examples are;
720x1440 -> OK
720x1350 -> FAIL
600x1280 -> OK
599x1280 -> FAIL
720x1340 -> OK
We conducted similar tests using a pure JS proof-of-concept (POC) on 6 different Android devices from various brands, such as Samsung, Xiaomi, and Oppo. Interestingly, some resolutions that generally fail were able to broadcast for a short duration (30-40 seconds) before entering “Starvation” status and dropping to 0 kbps bitrate. This was observed on a high-end Xiaomi Mi 12 Pro and a lower-end Samsung A33.
We need to find solutions for these problems as soon as possible and we would be very happy if you could help us.