Greetings,
I have been asked to work on a project that requires live low-latency (under 1s best, up to 2s ok) video to be transmitted publicly to anywhere from 10-100 viewers. The current target is to embed the video in a web page that visitors can browse to and simply click “play” to start viewing the live stream. I’ve done this in the past with Wowza and JW Player. This was at least 4 years ago and we were able to get 1-2s quite reliably but it was mostly PCs. What I’m concerned about is that I’m reading that this is only reliable on devices/browsers that still support flash. Ideally we would need to keep all devices below 1-2s latency.
What I’m not sure about is if this can be done reliably for an HTML embedded player where the browser no longer supports flash. Is it reasonable to expect to get PCs, Macs, iPhone, iPads, Android Phones & Tablets, Windows Phones & Tablets all getting low-latency video through their web browsers?
If not, are apps like VLC able to provide this for mobile devices? If we have to tell viewers that the live stream is only fast on certain devices via web browser and that they should load up a link in VLC (etc.) for best performance on mobile devices that may be an acceptable option.
Thanks for any tips.
Hi,
RTMP is going to provide the lowest latency when streaming on a web page. It would be extremely difficult currently to get latency of 2 seconds using HLS (to target mobile devices). This is largely due to how HTTP streaming protocols work. We have heard of customers getting latency down to 10 or less seconds but certainly not down to 1-2 seconds. This article has some tips. As an example, you could try setting the keyframe on the source to 1 second set the cupertinoChunkDurationTarget to 1 second (1000 milliseconds). Note though that the HLS protocol requires 3 chunks before it starts streaming so it will always be somewhat behind the encoder output.
Paul
Hi Mike,
Your calculation looks fairly accurate, with the information above I got 66 GB (rounded up).
50 Mbps /8 = 6.25 MB/s
6.25 MB x60 = 375 MB/minute.
375 MB x60 = 2250 MB/hour
2250 MB x3 = 67500 MB/event
67500 MB /1024 = 65.9 GB
Regards,
Jason
Hello Paul,
It seems crazy that years later it has become harder to reduce latency than it was in the past (Thanks to Adobe Flash encoder and players). I’ve informed the decision makers that we may have no way to hit the latency targets and we’ll see what happens.
Now I just have to figure out how much bandwidth /Data Transfer in GB the live streaming viewers will take up. I’m looking at 512Kbps * 10 users = ~5Mbps | 512Kbps * 100 users = ~50Mbps. The time will be ~3hrs per live event I’m estimating that will use up to 70GB of data per event. 10 events per month would be up to 700GB of data. Does that sound about right?
Thanks!
Mike