0
votes

I have a website where users can live video/audio stream to viewers in their "chat room". Currently I'm relying on RTMP/HLS and am using Wowza media server. I need a low latency option for mobile browsers.

RTMP provides that where flash is enabled, but HLS has an 8-10 second delay (optimized). I could implement WebRTC but playback isn't supported in any IOS browsers.

What are my options as far as protocols/techniques go?

  • RTMP - dying and only available with plugin
  • HLS (and other HTTP protocols) - too much latency
2

2 Answers

0
votes

HLS (and other HTTP protocols) - too much latency

You mean, HLS and other segmented protocols.

HTTP isn't the problem, the fact that you're writing out ~4 second chunks is.

You can use HTTP Progressive and easily get your latency down to 300ms.

I could implement WebRTC but playback isn't supported in any IOS browsers.

This is no longer the case. Safari 11 supports WebRTC, and I suspect all other iOS browsers (which are backed by Safari web views) do as well but I haven't personally tested.

1
votes

WebRTC is your only viable option at the current time for ultra-low latency video streaming.

RTMP, although not specifically tied to Flash, is outdated as a transport protocol for browsers because of the death of the Flash plugin and language support.

Segmented protocols like HLS and MPEG-DASH will inherently not work for live chat applications because they require the creation of the segments, which will always be an unreasonable amount of video time.

Android and iOS support WebR natively: https://webrtc.org/native-code/android/ https://webrtc.org/native-code/ios/

If you don't want to write a native app you can do this in pure JavaScript through Cordova:

i.e. https://github.com/BasqueVoIPMafia/cordova-plugin-iosrtc