Wowza Community

Manage nDVR recording

Hello,

we want to use nDVR to provide TV catchup functionality on a larger period of time.

From the startup guide i see there’s a limit on the recording time set to 30 hours.

“Wowza nDVR has a recording limit of 30 hours. In real-world deployments, serving playlist data this large won’t work”

We will use the nDVR Playlist Request API and the requested playlist window won’t be too large (typical tv show length, max 2-4 hours).

Can we have a continuous recording over a longer period in these conditions or is there a hard max limit?

After a period of time (2 weeks) we want to selectively keeps chunks (still be available to playlist requests) and delete the rest to save space.

Which is the recommended way to manage/cleanup the chunks?

In the startup guide i see: “Important: Don’t delete or move any of these files or playback errors will occur.”. If we delete only the chunks that won’t be requested anymore through the nDVR Playlist API will there be any issues?We want to manage time intervals that are kept/removed so we need to know how to find the chunks that need to be kept/removed.

So we need to continuously record and be able to request playlist based on UTC time intervals that will be short in length and manage/cleanup the space used.

Thanks

Ervin,

It sounds like you have the DVR configuration working to a maximum capacity. It would be my suggestion that you implement a stream recording strategy, to run in paralell with your nDVR workflow, for the purpose of archiving recordings beyond the practical limitations of the nDVR AddOn.

Take a look at LiveStreamRecord, which is built-in to Wowza Streaming Engine: How to record live streams (Wowza Streaming Engine). From the article:

Wowza Streaming Engine™ software has a new system that enables you to access and control Stream Recorders (formerly LiveStreamRecorders) by using either Wowza Streaming Engine™ Manager or Java APIs. Stream Recorders can be started, monitored, and controlled in Wowza Streaming Engine Manager or programmatically by using new LiveStreamRecordManager APIs. Wowza Streaming Engine software supports legacy LiveStreamRecord URLs, which can also be monitored and controlled in Streaming Engine manager or by using the LiveStreamRecordManager APIs.

Using this approach, you may record segments of your recordings to VOD assets that can be retrieved using standard playback logic, as needed.

-Tim

Yes, I think increasing the chunk size would decrease the playslist size. You can do that with dvrChunkDurationMinimum setting as shown in the nDVR advanced article

You can use the Playlist Request API to play portions of a stream.

Playing a clip that spans mp4 files would be difficult, especially across client types. You might work something out for RTMP playback starting with this method. It would be best if the segments you were going to playback were contained within one file. Then you can also use this method for HTTP playback

Richard

Hi there … just my grain of salt

The way I’ve done what you want is recording everyday separated using DVR. Like each days being a different stream, but not from encoder, but telling Wowza to record it as a different stream. In that way, for each day you have 24 hours, from which you can extract shorter periods using utc values.

Regarding cleaning, this is risky, but I built a module that deletes video and audio files from periods I don’t need. As long as you don’t touch the manifests, that works for me … again, it’s risky though

Ok so you load the whole metadata in memory and that’s why you cannot have a window bigger than 30 hours right?I thought maybe we can increase the chunk size and reduce the metadata to get to a 2 week window.

The problem is that asset start/end might change after live broadcast so we need to recompose the segments at runtime.

Is there a way we can create assets from nDVR segments based on time interval?So optimal solution would be to have a 24 hour nDVR window and selectively extract an asset for further storage. (i think i saw somewhere in the docs that nDVR audio/video chunks cannot be transformed to mp4)

Using your approach and recording segments(mp4) continuously how can we VOD based on a specified time interval that could span multiple segments?Is there an example to VOD stream based on multiple mp4 files?

After a segment is completed can we get a notification with the exact details of that segment?(start time, exact duration etc)