Close

Frame rate limits

Like to see something in a future release? Post your suggestions here.

Moderator: Staff

no avatar
ishmell
 
Posts: 8
Joined: Fri Sep 07, 2012 3:09 am

Frame rate limits

by ishmell » Sat Sep 08, 2012 12:48 am

One thing I like about ZoneMinder is that I can specify frame rate limits. I can do this for both monitoring and recording, meaning if there is no alarm and no motion detected, I can limit the JPG frame pulls to 2FPS which saves bandwidth... but if an alarm is triggered or motion is detected and ZoneMinder starts recording, I can specify a higher frame rate limit like 5 or 10 FPS if I want. I would like to see this in VDV because right now my centralized VDV based NVR machine is located in a downtown datacenter, while the cameras being monitored are in other buildings connected over a WAN by VPN. I've found I cannot use VDV to monitor these cameras because the constant bandwidth required is too great. I'm looking into VLAN based QoS right now to see if I can mark video traffic as low priority, but I don't want someone's massive file-dump to cause problems recording a break-in. Ideally, I would gladly give up bursts of bandwidth for video events as they occur, but not the constant firehose approach.

I realize that a fast FPS probably helps object detection, and slower FPS makes for larger "jumps" in action which impacts the accuracy of the algorithm... but still, I'd gladly take that accuracy impact over the bandwidth issues I have now.

User avatar
ryan
 
Posts: 1015
Joined: Wed Aug 25, 2010 2:52 pm
Location: Palo Alto, California

Re: Frame rate limits

by ryan » Sat Sep 08, 2012 1:33 am

VDV is designed to work with video streams, and when pulling from a video stream the client can not change the frame rate. It is true that if ZoneMInder is pulling from JPG it can refresh at whatever rate it wants, but VDV does not do this. To successfully parse a video stream you must grab and decode every frame. The video inserts keyframes every so often (let's say every 15 frames) which you can think of as a full image (like a jpeg). Each frame after that until the next keyframe is a diff, it only provides information about pixels that changed, so you must have pulled the frame prior. The next frame is similar, if you ever miss a frame, you've missed data, and start getting weird artifacts.

If you are concerned with bandwidth, most (all?) IP cameras have fps controls built in. VDV only requries 10fps for peak performance (and in fact will throw away extra frames, though for reasons previously stated must still fetch and decode them).

Many cameras also have the choice between mjpeg (sort of like simply fetching jpegs, you could theoretically only pull some) and mpeg. MJPEG uses MUCH higher bandwidth because it is sending the entire image every frame rather than just the diffs, I'd suggest using the mpeg stream (in which case only pulling some frames is both impossible and unnecessary).

Hope that helps,
- ryan
Learn more about Sighthound Video in our support pages - Reference Guide | All Articles
Are you a developer? Check out our cloud APIs - Demo | Docs

no avatar
ishmell
 
Posts: 8
Joined: Fri Sep 07, 2012 3:09 am

Re: Frame rate limits

by ishmell » Sat Sep 15, 2012 7:15 pm

Hi Ryan,

Thanks for clarifying that. I've got an Axis 240Q quad-cam encoder box and none of the MPEG-4 options seem to work (type A or B). I just updated the firmware on the box to the latest version and still am not able to get MPEG-4 to work properly, even when trying to manually set the URL using the Other IP Camera option. For now I only have the MJPEG option to work with and it does consume a large amount of bandwidth. So much so that my JPEG based mobile app has issues pulling frames from the encoder because the streaming is consuming resources on the box. I will try to find a way to enable MPEG-4 streams.

If MJPEG is truly akin to pulling individual JPEGs with no ability to just send differences, then why not consider updating VDV to be able to pull JPEGs at a rate controlled by VDV?

Thanks again,
Amal


Return to Feature Requests
cron