Streaming engine for live video streaming mobile app like bigo live with react native
Hi,
I\’m working on developing a live video streaming mobile app like Bigo Live. I will be using react native for building the mobile app.
To be frank, I\’m trying to choose a media server Evostream or wowza for this. My requirement is to video streaming with 20 concurrent broadcasters with 200 viewers for each broadcaster.
My comparision points are integration with react native, API, documentation, features, performance, quality etc. We would like the solution to be vertically scalable as horizontal scaling requires more licenses.
I would like to know if evostream supports the following:
1) Live video streaming (multicast), multiple concurrent broadcast with multiple viewers for each broadcast
2) Displaying animations, images, text overlay on the video
3) API to get broadcast, view, get list of broadcasters, list of viewers for a broadcast
4) Integration with react native
My requirement is: 20 concurrent broadcasts with avg of 100 viewers (720p or 360p) for each broadcast. We would like this to be vertically scalable. Is this achievable with one instance of streaming engine. What is the recommended hardware configuration for this requirement?
Thank you,
Sash
6 Answers
Hi Raj,
Thank you for the clarification.
RE: Adding animation, text, etc.
First, must know that transcoding operations are CPU-intensive. How much CPU power used depends on many variables such as:
http://docs.evostream.com/ems_quick_start_guide/quick_start_guide_for_azureloadbalancer RE: In that case, can i use webrtc on mobile app (with react native) and ERS to stream? That is correct. Your mobile app will need to interface with our ERS app to get the ICE protocol parameters (stun server, turn server, etc.) that your webrtc library will need in order to establish a peer connection with EMS.
- Video bitrate of the source video
- How many animations you wish to add
- How complex the text you wish to add (e.g. is the text static? or is it moving like in news broadcasts?
http://docs.evostream.com/ems_quick_start_guide/quick_start_guide_for_azureloadbalancer RE: In that case, can i use webrtc on mobile app (with react native) and ERS to stream? That is correct. Your mobile app will need to interface with our ERS app to get the ICE protocol parameters (stun server, turn server, etc.) that your webrtc library will need in order to establish a peer connection with EMS.
Hi Eric,
Thanks for your reply.
Based on your inputs, we have decided to separate chat, animations etc out of video streaming.
So, we will use EMS only for video streaming.
Here is our requirement:
- 20 streams with up to 100 viewers per stream (up to 2020 streams) – 480p
Hi Raj,
If you will only be doing pure video streaming, then the main metric that you would want to measure for estimating the hardware that you would need.
A 480p video would probably have 2.5Mbps. So an Intel machine with a 1Gbps adapter (1000Mbps) should be able to handle up to 400 streams of 480p.
2020/400 would be approximately 5 machines. (Well, the division was not exact at 5.05… but let’s leave this at 5 for now.)
The typical machine you would want to use would be an i5 or i7 with 8gb of ram.
So you may need 5 ems instances.
I hope this helps.