Frequent questions about SLDP
General questions, tips and troubleshooting for Softvelum Low Delay Protocol
Q1: Why SLDP has less overhead than HLS or MPEG-DASH?
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.
Q2: How can I achieve lowest latency and zap time with SLDP?
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.
Zap time can also be decreased using buffer offset parameter in players.
Q3: How can I make ABR streams switch be more smoothly?
General SLDP ABR setup and usage is described in this article. 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.
Q4: I've enabled SLDP on server but the stream is not available.
To make new protocol be produced for output from Nimble Streamer, the origin stream must be published again. So please republish the source stream.
Q5: My ws:// stream is not working but wss:// does.
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.
Q6: How is SLDP supported in mobile browsers?
Q7: How secure are my streams with SLDP?
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.
Q8: I've set up autoplay, but it doesn't always start playing automatically. Why?
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.
Q9: Microsoft Edge seems to be always 2-3 seconds behind other browsers. Why?
This is a known issue. Hopefully it will be fixed soon.
Now try it in your own use cases.
- Install Nimble Streamer.
- Set up any live streaming scenario.
- Use one of our players to experience low latency streaming.
Contact us if you have any questions.