AWS IVS Broadcasting with Webview

0

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.

fzet
asked 7 months ago235 views
1 Answer
1

Hello

In general, the Starvation represents the broadcast device throttle due to insufficient network or hardware processing power. While we are unsure what and how the application logic has been designed to stream into IVS, one initial thing the you could check is where the channel type is standard that supports up to 8.5 Mbps while the basic is 3.5 Mbps. With that said, IVS recommends using the Mobile Broadcast SDKs relevant to mobile devices and operating systems. Although the Web Broadcast SDK works in all web browsers regardless of operating system, it is more optimized for desktop/laptop computers than handheld devices. There are several samples of code and/or prebuilt demo applications available according to the type of device/OS at https://ivs.rocks/examples.

AWS
SUPPORT ENGINEER
answered 7 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions