January 12, 2022

Server playlist support for live steams input

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:

Let's see what we've got.


Live streams input

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.

{
  "SyncInterval": 5000,
  "Tasks":
  [
    {
      "Stream": "live/playlist",
      "Blocks": [
        {
          "Id":"1", "Start":"2022-01-17 08:00:00",
          "Streams":[
            {
              "Type":"vod", "Source":"/var/mp4/sample.mp4", "Duration":20000"
            },
            {
              "Type":"live", "Source":"live/stream", 
"Duration":600000"
            }
          ]
        }
      ]
    }
  ]
}

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.

{
  "SyncInterval": 5000,
  "Tasks":
  [
    {
      "Stream": "live/playlist",
      "Blocks": [
        {
          "Id":"1", "Start":"
2022-01-17 08:00:00",
          "DefaultStream": {
            "Type":"live",
            "Source": "live/default"
          },

          "Streams":[
            {
              "Type":"live", "Source":"live/stream"
            },
            {
              "Type":"vod", "Source":"/var/mp4/sample.mp4", "Duration":20000
            }
          ]
        }
      ]
    }
  ]
}

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.


Playlist Generator

You can use our Playlist Generator to create a simple playlist using our UI wizard


Let us know if you have any further feedback regarding the server playlist.


Related documentation

Server playlistGenerate NDI stream from local files via Server PlaylistWeb UI for Server Playlist