Quantcast
Channel: Softvelum news: Nimble Streamer, Larix Broadcaster and more
Viewing all articles
Browse latest Browse all 436

Video recording (DVR) in Nimble Streamer

$
0
0
Streams recording is one of the essential use cases for live streaming. It's important to be able to view stream after the transmission is over, or switch between parts of the show during the transmission.

Nimble Streamer has an excellent capabilities for handling live streams and transmuxing them from RTSP, RTMP and MPEG-TS to any supported format like HLS, MPEG-DASH, RTMP, RTSP and MPEG-TS. So the next step we always wanted to make is to create streams recording, also known as Digital Video Recording, or DVR.

Nimble Streamer DVR current features:
  • recording the incoming streams;
  • per-application and per-stream settings;
  • playback of previously recorded streams;
  • playback of streams being recorded at the moment;
  • current output protocols are HLS and MPEG-DASH;
Let's see how you can start using this in your environment.


1. Streaming scenarios setup


This article assumes that you've already installed Nimble Streamer. If not, then use this installation instruction to get an instance on your server or desktop. If you have old version of Nimble, then just easily upgrade it.

Check the following articles as examples of setup:

With all these scenarios being up and running you can start setting up DVR.

2. DVR setup


Go to "Nimble Streamer" -> "Live streams settings" menu to open the setup page. Then click on "DVR" tab to open its settings.

DVR settings tab.
Here you can see list of setting. In our example we've set up something, otherwise you would see an empty list. Click on "Add DVR setting" button to start the setup.

DVR setup dialog.
Here are the parameters you can define.

  • Application is the name of the application which is used during the live streaming. Whatever application name you use in live stream, it must be specified here. 
  • Stream name can be used to recording of some specific stream. If it's not specified, all streams will be recorded, each one separately within recording path. 
  • Recording path is the location of the storage which you'd like to use. It needs to be a file system location. If you don't specify it, the default cache path of Nimble Streamer will be used. 
  • Loop recording duration is the maximum time window that keeps the content. E.g. if you set this to 1 hour, start streaming and your stream lasts for 1 hour and 10 minutes, then first 10 minutes of recording will be erased to keep the last 10 minutes. This duration mostly depends on your storage capacity. If you don't specify the duration then Nimble will keep recording until it has space at the specified location. 

Advanced settings include the following parameters. We'll release a separate article describing advanced recording tuning process.
  • Segment duration is the duration of the chunk being used for media storage. 
  • Thread name and priority are used for splitting recording process among several threads. 
In the example above we used Larix Broadcaster mobile application to push RTSP stream into demo Nimble instance and we've set up its recording accordingly. We specified only the application name because it was up to the streamer to define a stream name.

Adding from streams list

You may also easily set up recording from existing incoming and outgoing streams lists. Being in the respective lists, just click on recording button to be redirected to previously described DVR setup dialog.


ABR streams

The ABR streams recording is set up in the same way as single-bitrate streams. When setting up DVR, you need to specify ABR application and optionally stream name to define DVR recording. Then you'll be able to play recorded stream the same way as a single-bitrate one.

For playback details, check the following section.

3. DVR recording and playback


The recording process starts as soon as Nimble Streamer starts getting the incoming stream. Each stream is recorded into its own recording path. If only an application is defined then a sub-directory after stream name will be added. If the stream was specified then its path will be used.

Each recording session will be appended into stream location. So you can start, stop and resume incoming stream several times and Nimble Streamer will write the content as if it would be a single session. Obviously, the playback will be played as a single outgoing stream.

To view the existing DVR streams, go to "Nimble Streamer" -> "DVR streams" menu to open DVR streams list as shown below.

List of DVR streams.

As you can see we had 2 publishers, each having separate stream name. So every stream was recorded separately. For each one you can see its server and name, recording path and current recording size, total duration and some media parameters. You also have an option to remove un-used streams recordings as well.

Now for every stream, you can click on a question mark to open sample dialog.

DVR sample playback.
Here you can copy the outgoing DVR stream URL for further usage in your player or application. It also allows viewing the DVR stream in selected players to see what was actually recorded before giving the link outside.

Basically if you have a live stream name like
http://yourhost/live/stream/playlist.m3u8
then your DVR stream URL will be
http://yourhost/live/stream/playlist_dvr.m3u8
ABR live streams work the same way. For ABR stream name like
http://yourhost/live_abr/stream/playlist.m3u8
the DVR stream URL will be
http://yourhost/live_abr/stream/playlist_dvr.m3u8
You may use it in any HLS-capable players.

The same applies to MPEG-DASH. Your stream like
http://yourhost/live/stream/manifest.mpd
will be available as
http://yourhost/live/stream/manifest_dvr.mpd


Please notice that you may also control DVR via API in order to automate your streaming infrastructure.

There are more DVR-related features and articles coming soon. If you have any feedback or feature requests for DVR, just let us know about it.


Related documentation



Viewing all articles
Browse latest Browse all 436

Trending Articles