So you can deliver your un-protected stream into Nimble Streamer, convert it into MPEG-DASH or HLS fMP4, record into DVR if needed, encrypt and then deliver to your viewers for further playback. And if you have any VOD files, you can define transmuxing rules and then set up DRM so they could be played via DRM-powered players.
On the viewers' side, Larix Player for Android allows running MPEG-DASH streams via embedded ExoPlayer in all streaming modes and decode Widevine and PlayReady streams. You can download it on Google Play and visit Player website to learn more.
Nimble Streamer has wide support for MPEG-DASH live streaming, including subtitles processing.
When CEA-608 subtitles are integrated into a video track, most players require those subtitles to be declared in the manifest, otherwise a viewer cannot select them at all.
This tag is used in a manifest for the declaration:
Each new application is separated by a space. Here's an example where all streams for "live_app" application will have first track with Russian subtitles:
For MPEG-DASH CEA-608 the setting is simply "live_app:1=rus". This is what you'll see in a manifest:
Server playlist feature set for Nimble Streamer was introduced to provide capabilities to create output live streams from a set of VOD files.
Now Server playlist got a couple of more features to improve it:
take live streams as input for playlist entries;
define default streams in case current playlist entry is not available.
Notice that new features do not change the playlist's basic principles and mechanics. They add new parameters as we describe below. So before reading about the updates, please get familiar with these materials:
You can specify any available live streams. So no matter where your live stream is coming from - RTMP, SRT input or a stream from Nimble Transcoder - you can use it as your source.
You need to prepare your content for playlist input and also additionally transcode it afterwards as we describe in section 2 "Preparing content" of Server playlist spec.
The semantics of live stream input is similar to VOD input: it's inserted among other entries in "Streams" block having "Type" parameter set to "live" as shown below.
The following parameters can be used for live stream entry:
Source - input stream name, defined as "application_name/stream_name" as seen in output streams at Nimble Streamer live streams page.
Duration - the duration of the current stream.
TotalDuration is also supported but it means the same as Duration. If both parameters are set, the one with the smallest value will be used.
Default streams
If the current live stream which is supposed to be playing now, is unavailable for some reason, you may specify a default stream which will be played instead. A DefaultStream parameter can be defined on a block level as shown below.
This default stream may have "Type" parameter be either "live" or "vod". The "Source" defines where the content is taken from, see server playlist spec for details.
For VOD mode, it also supports "AudioStreamId" and "VideoStreamId" parameters to select a respective track if a VOD file has several tracks.