Note: For just the initial conceptual model I am using MJPEG, not because I need it, but because it's easy to talk about it.
I know that temporally compressed CODECS present some difficulties in doing it exactly the same way, though I have some ideas how to overcome them.
If there are no show-stopping reasons for MJPEG I am ready to move to the present day case and talk about h.264, but I want to make sure there are no logical problems first.
Anyway, it seems that the normal method of either having video because you are in the retention period or not having it, is possibly not the best use of storage.
Of course I realize that many systems are driven by corporate or government spec of "must retain video for X days". Still this X days concept is usually not connected to a use case scenario. Sometimes it is of course, e.g. maybe a retail establishment needs to keep data around until a check would clear, and so maybe 7 days makes sense.
In most cases though I think it's just a gut based on storage vs dollars and driven by the systems capability.
But I think a better way for some would be a dynamic data pruning system based on reducing the frame rate progressively over time as the data ages.
For me I would find it far more valuable to have the whole year of 2015 at one frame a minute than one more day at 30fps.
So it would work like this possibly, for a given time period, let's say a month, the frames per second would halve.
So
- week 1 = 30 FPS
- week 2-3 = 15 FPS
- week 4-7 = 8 FPS
- week 8-15 = 4 FPS
- week 16-31 2 FPS
- week 32-63 1 FPS
- week 64-127 30 FPM
- week 128-256 15 FPM
So you would have some level of video for 4 years, or 8 weeks at 30 FPS.
Is this crazy?
edit: I am aware that many VMS allow pruning data by reducing FPS, but the ones I have seen are not progressive.