Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make "Maximum FPS" work for non local cameras by dropping frames [$100] #365

Open
dulinux opened this issue Mar 30, 2014 · 6 comments
Open

Comments

@dulinux
Copy link

dulinux commented Mar 30, 2014

Some cameras only work properly when configured in zm with the snapshot url (.../jpeg.cgi), being Dlink DCS-932L one of them.

The problem is that they do not allow frame configuration through URL. So it always defaults to auto fps (which allows high fps when recording).

So it would be nice if zm could drop frames taking into account the "Maximum FPS" setting from monitor's General tab configurarion.

There is a $100 open bounty on this issue. Add to the bounty at Bountysource.

@kirantpatil
Copy link

👍

@m-bene
Copy link
Contributor

m-bene commented Apr 7, 2014

I don't really understand this issue- when using a camera in snapshot mode, teh FPS is controlled by zoneminder.

You should be able to just set the desired Maximum FPS (and Alarm Maximum FPS) in the monitor configuration and be done with it. Zoneminder will request just the configured number of frames/s from the camera, so no need to drop frames.

I just tried configuring a test case for 3 FPS normal and 6 FPS Alarm Max - worked as expected. With the cameras I've got available, the max FPS achievable in Snapshot mode are fairly low - in HD (1920x1080) mode, my test cam maxes out at 8-9 FPS.

Can you please explain what's missing or not working as you expect?

@knight-of-ni
Copy link
Member

@m-bene That's not really the case. Zoneminder does not manipulate frame rates at all for IP cameras. It can't request anything from an IP camera because it does not know how to communicate control information to it. Some cameras have the ability to manipulate the fps with the camera url, but that is as close as one can get. Zoneminder has to use whatever stream the camera sends to it. Snapshot mode could be argued an exception, but that's not a stream.

The classic symptoms of "the problem" are when people create an issue or post to the forums with a title like "significant lag in live monitor". I've observed ~30 second lags myself and/or entire events gone missing. Please search for these and read about them. When I see these, I immediately ask the OP if they've placed any values into the fields in question. Sure enough, they usually have. Clearing the fields solves the problem.

@mastertheknife has previously mentioned he would like to fix this by dropping frames, but he has been tied up remodelling his new home. I don't know when he plans to start on this. If you are really itching to get this resolved then try reaching out to him.

Here is another conversation on the same topic:
#273

@m-bene
Copy link
Contributor

m-bene commented Apr 7, 2014

Thanks for the answer - I was only looking at the special case of snapshot mode as that's what was mentioned in the OP - and that particular case seems to be working just fine.
For "real" streaming modes configuring the camera for max alarm rate and dropping frames to get normal rate would be the way to go.

@kylejohnson kylejohnson changed the title Make "Maximum FPS" work for non local cameras by dropping frames Apr 9, 2015
@stale
Copy link

stale bot commented Jun 15, 2018

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Jun 15, 2018
@stale stale bot closed this as completed Jun 22, 2018
@stale stale bot removed the stale label Nov 1, 2019
@connortechnology
Copy link
Member

bountysource will take this money on July 1st. Either contact bountysource to redirect your funds, or alternatively, I can close this out, collect the bounty, and I will hold the money until this issue is properly closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment