General questions, tips and troubleshooting for Softvelum Low Delay Protocol
HLS uses MPEG-TS format as a container for media, MPEG-DASH uses MP4 for this purpose. These container formats require additional data to wrap up the media. This gives significant data overhead.
Also, as HLS and MPEG-DASH are chunk-based protocols, each chunk has its own metadata used for describing each segment which needs extra data as well.
When you view ABR stream, your player continuously download chunks of one particular rendition, so if you switch the stream, your player starts downloading new rendition chunks and just abandons the already downloaded chunks of previous rendition - which is a waste of traffic. This would be especially significant of a mobile connection where you pay for traffic.
In case of SLDP these types of overhead simply do not exist. It doesn't chunk the media and it doesn't use any container to deliver the media. And it stops downloading data as soon as you initiate your player to switch to another rendition.
SLDP uses WebSockets to connect client and server and client software downloads the media without additional wrapping.
The main parameter that affects the latency in case of real-time protocols (such as SLDP) is key frame interval. It is set in your encoder which you use to prepare your live stream. The less key frame interval is, the sooner a player will start the playback.
As example, in case of Nimble Streamer Live Transcoder you may add Key frame alignment parameter and set interval value for it. Please read this article to get more details on the setup.
Sometimes when you switch between different stream's renditions you can see a some short glitch. This happens because a player need a new GOP to start the playback. Different streams may have their key frames be aligned differently, so each new GOP will start from different point.
To avoid that, you need to perform key frame alignment for all single-bitrate streams in your ABR stream. If you look at our Live Transcoder as an example, you can set this up using this article.
To make new protocol be produced for output from Nimble Streamer, the origin stream must be published again. So please republish the source stream.
If you run your stream on SSL-protected web page, i.e. delivered via HTTPS protocol, make sure you encrypt your stream with SSL as well. Modern browsers do not allow processing un-secure content on secure web pages. So ws:// stream will not play on https:// web page.
If you want to make sure your streaming is protected against re-streaming and grabbers, take a look at SLDP proprietary streaming protection article for more details.
All modern browsers are moving towards stricter autoplay. Starting from April of 2018 Google Chrome has introduced significant changes to its autoplay policy. There is one important note: muted autoplay is always allowed. So, the suggested practice is to use muted autoplay and let user choose to unmute it. SLDP player has 'muted' config parameter for such case.
This is a known issue. Hopefully it will be fixed soon.
Now try it in your own use cases.
Contact us if you have any questions.