As you already know, live streaming features set of Nimble Streamer includes DVR - recording and playback capabilities for live streams. It takes RTMP, RTSP, MPEG-TS, Icecast or SHOUTcast as input and gives HLS and MPEG-DASH as output.
The recording setup is easy and it's described in this article.
The playback is also simple and you can just modify usual playback URL to get recorded stream.
E.g. if your stream has this URL
The URLs above will work for default MPEG2TS container. If you'd like use fMP4 container for DVR playback, you'll need to use "fmp4" suffix like this:
Both MPEG2TS and fMP4 DVR streams can be played simultaneously. So you can provide your users with appropriate URLs depending on their device type.
Now, in addition to time range, we introduce time-shifted playback.
Timeshift allows streaming recorded content from selected time spot and allows setting the maximum depth of selection.
Common format is as follows:
A few examples are provided below.
Thus shifts time to 1 hour and allows 1 minute frame for rewind:
Just as in previous case of time range, if you'd like to use fMP4 container, your URL would have "fmp4" particle, like this:
You may also use specific URL to get thumbnails for DVR stream.
If you have any feedback or questions about DVR, just let us know about it.
The recording setup is easy and it's described in this article.
The playback is also simple and you can just modify usual playback URL to get recorded stream.
E.g. if your stream has this URL
http://192.168.0.1:8081/live/music/playlist.m3u8
http://192.168.0.1:8081/live/music/playlist_dvr.m3u8You may also modify URL to access certain time range like this:
http://192.168.0.1:8081/live/music/playlist_dvr_range-1447069728-120.m3u8where you set the start time and duration.
The URLs above will work for default MPEG2TS container. If you'd like use fMP4 container for DVR playback, you'll need to use "fmp4" suffix like this:
http://192.168.0.1:8081/live/music/playlist_fmp4_dvr_range-1447069728-120.m3u8Adding that suffix will create DVR stream with fMP4 container.
Both MPEG2TS and fMP4 DVR streams can be played simultaneously. So you can provide your users with appropriate URLs depending on their device type.
Timeshift
Now, in addition to time range, we introduce time-shifted playback.
Timeshift allows streaming recorded content from selected time spot and allows setting the maximum depth of selection.
Common format is as follows:
http://192.168.0.1:8081/live/music/playlist_dvr_timeshift-<shift>-<depth>.m3u8Where shift is a value of time shift in seconds and depth is an optional parameter setting possible length which a viewer can rewind.
A few examples are provided below.
Thus shifts time to 1 hour and allows 1 minute frame for rewind:
http://192.168.0.1:8081/live/music/playlist_dvr_timeshift-3600-60.m3u8This shifts to 2 hours and give 2 minutes frame:
http://192.168.0.1:8081/live/music/playlist_dvr_timeshift-7200-120.m3u8And this shifts playback by 7 hours:
http://192.168.0.1:8081/live/music/playlist_dvr_timeshift-25200.m3u8
Just as in previous case of time range, if you'd like to use fMP4 container, your URL would have "fmp4" particle, like this:
http://192.168.0.1:8081/live/music/playlist_fmp4_dvr_timeshift-7200-120.m3u8It ill also work along with default MPEG2TS container.
Thumbnails
You may also use specific URL to get thumbnails for DVR stream.
Take a look at this video tutorial to get familiar with DVR most useful features.
Read other documentation articles for more details and full description of available options.
Also notice that HLS DVR streams can be added to SLDP HTML5 Player for rewinding low latency streams. Read this article for details.
If you have any feedback or questions about DVR, just let us know about it.
if i wanted to play the dvr recording from start-time+1 hour - how will that be specified where actual start-time is not known but i want to play the recording from 1 hour the time it started recording?
ReplyDeleteNimble does not allow to use such an offset (1 hour from time when recording started), you need to know absolute time of the fragment and use it with range EPG request (http://blog.wmspanel.com/2015/11/dvr-time-range-fragments-epg.html). Technically you can get recording start time using /manage/dvr_status Nimble API and calculate the time that should be used with range.
DeleteThank you.