Streaming media industry currently moves away from RTMP protocol to other real-time streaming technologies due to its future decline. The next generation of technologies tries not just to replace the protocol but also add new features like ABR or new codecs support.
Our team introduced SLDP - Softvelum Low Delay Protocol - as our vision of how real-time streaming should be implemented. Of course, we added capabilities that were missing in RTMP.
Adaptive bitrate (ABR) is one of the key features available as part of SLDP. It's supported on both sides of transmission:
ABR capabilities
Adaptive bitrate (ABR) is one of the key features available as part of SLDP. It's supported on both sides of transmission:
- Nimble Streamer server allows switching per player command among available bitrates which are set up as part of ABR stream
- SLDP Player provides controls for switching between bitrates if a stream has information about available sub-streams.
SLDP and ABR setup
General process of SLDP playback setup in Nimble Streamer doesn't differ from RTMP playback setup. This article shows step-by-step procedure which is pretty simple with WMSPanel control panel web UI.
If you don't have various renditions from and need to create them from your original stream, you may use our Live Transcoder, and try wildcard setup in particular to simplify this process. Also check this Transcoder video showing the setup process.
If you use Transcoder, you should also perform key frame alignment for all single-bitrate streams. 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 aligned differently, so each new GOP will start from different point. To avoid that, you need to perform key frame alignment. Use this article to set key frame alignment in your transcoding scenarios.
SLDP Player usage
Having SLDP stream, you can now use our players to provide the playback to your users.
You may use 3 options:
- HTML5 player provides playback in any browser which supports MSE. This includes basically any Windows or Linux platform. Even Android browsers will allow you to load and play SLDP via HTML5 SLDP player.
- Android native app provides playback in case you don't want to use web playback on user devices.
- iOS native app is needed in case you need to play SLDP on Apple mobile devices. You can use it as a fallback for browser player.
All players are free of charge. They also have respective SDKs so you could customize them for your user experience.
SLDP HTML5 player setup also needs these parameters to make full-featured ABR playback:
1. Enable ABR by setting
adaptive_bitrate = true2. Set initial resolution which you want your uses to see by this setting
initial_resolution = <resolution>3. If you use key frame alignment as described above, you need to use this parameter to obtain smooth rendition switching:
key_frame_alignment = true4. You may also use latency_tolerance parameter to tune the streaming latency as described in this article.
That's it. With steps described above you will have full-featured SLDP ABR playback on any platform you need.
Also, you can take a look at the SLDP frequent questions to improve your SLDP usage. And read Reliable Low Latency Delivery with SRT+SLDP post in Haivision blog describing a combination of both protocols for building reliable delivery networks.