October 27, 2021

Web UI for Server Playlist of Nimble Streamer

In our previous Playlist article, we have described a very basic playlist to run a set of files as the only live stream which is easy to write manually.

As playlists grow, more JSON tokens are needed and it's easy to stumble in numerous JSON brackets while adding just a couple of files forgotten to add earlier. Things can be a real mess if you add more than one stream and dozens of files. We have a better idea: you don’t have to edit the JSON files manually but use our server Playlist generator page instead.

Essentially, you need to fill the name of the application and stream to define a name of a live stream to output for your files, specify a full path to file located on Nimble Streamer or even multiple files at once, and receive a faultless playlist for Nimble. Then you either download it as a file or copy it to the clipboard to transfer. More details can be found below are in this article.

You should also watch this video demonstrating the entire process:


Requirements

We assume that Nimble Streamer is already installed on your server. Just to remind you, the Transcoder package and license are needed for running playlists. Please subscribe and install the Transcoder package first as described in our installation manual.

All the video files must have the same video and audio codecs and resolution. When the file is switched and the next file's parameters are different the most of the video players will react to it with glitches or interruptions in the playback. You may try SLDP output alternatively, as it is more loyal to codec changes, but still, we strongly recommend preparing files for the playlist as the first step.

We also consider you have read the full server playlist technical specification for complete understanding of all the features and requirements of this feature set.


Quick actions on the page

Let’s have a quick tour on Playlist generator page. Initially, it looks like below:


First, specify an application and stream which Nimble Streamer will use for generating a live feed.

If you've already defined an application in the WMSPanel and marked HTTP output protocols they will be used as the output protocols of your playlist, e.g. LL-HLS or SLDP, or any other. Otherwise, protocol settings on "General" tab will be used. We already explained how to get NDI output from a playlist, by the way.

Defining a stream is equivalent to adding a Task in a server playlists’ grammar. More Tasks can be added meaning you can have multiple named feeds via one playlist.

Next, a content Block is required and the first one is created initially. You can name a Block for easier navigation, or as a reminder, but this is not mandatory.

The second required action is adding files you want to playback.  The files must be located at the Nimble Streamer server and must be accessible by Nimble. Please check the permissions if Nimble is not running as root.

Fill the full file path and its name in the corresponding field. To add one more file, click "Add source file", a new input line will appear. For your convenience, we have "Add multiple files" button, to quick input of list of files.

One tip for having a quick list of files in a directory is to use "ls -d -1 "$PWD/"*.mp4" command in terminal and paste its output into "Add multiple files" popup.



After clicking "Add sources", all the positions will be filled with provided file paths.

Also, the download or copying to the clipboard is available to get a playlist. Choose the one that suits you the best. Preview is also possible by clicking on "Show playlist" button.

You may notice that the IDs of blocks are changing randomly. This is done on purpose. If you change or add a file in a block, but do not change the ID, it is considered no changes were made in a Block. Now if changes are made and the playlist is overwritten with a new one, Nimble will re-read within sync interval and apply its changes. Note, no Nimble restart is required for this.


Advanced

For each Block, the "Loop block" check box is available, making Block to repeat endlessly. Block is also having a "Start time" property, for specifying the exact starting time in GMT (not your server’s time zone).

Every added file has a dropdown menu to add advanced options. Starting time (Offset) and duration can be specified in seconds. If a file has several tracks in it, you can define which one needs to be played.


Final thoughts

Server-side playlists can be used for different applications such as simulation of a live feed, airing a pre-recorded stream at a specific time, as a backup program to show at air failures, or even as 24x7 radio made from your MP3 collection.

We believe Server-side playlists will be a handy tool for our colleagues in the industry.


Related documentation

Nimble Streamer Server Playlist, Playlist GeneratorGenerate NDI stream from local files