-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Repeated error and warning concerning zm_packetqueue.cpp #3253
Comments
Thanks for opening your first issue here! Just a reminder, this forum is for Bug Reports only. Be sure to follow the issue template! |
Same issue here on Gentoo Linux 2.7 Kernel 5.4.109-gentoo (SMP) x86_64 |
I'm seeing the same issue and my syslog is filling with these: I have plenty of RAM *@glasseyes:~# free -h version: 1.36.1-bionic1 lsb_release -a happy to dig further or test. |
Increase MaxImageBufferCount. |
That worked, thanks! Suggested improvements:
|
I bumped to the sum of all the other frame settings and errors seem to have stopped. Big thanks |
@MoHf7f4 can you explain what do you mean with "I bumped to the sum of all the other frame settings" |
and put that in: Maximum Image Buffer Size (frames) |
@MoHf7f4 thx for your explanation, I'll try that :-) Attached screenshot of one of my monitor's as sample PS. Is it correct that Message field of issue's log entries is empty? |
I am having this issue too I have made MaxImageBufferCount the sum of those values and also tried making it very big much higher than the sum but with same results. Not sure if this is related but I see events get ended before it reaches 10 minutes. My syslog shows |
@ASoTNetworks
Anyway, you should take a look into your IP cam settings. Many modern cams have dynamic GOP, so although their default setting is 32, they can go up the 256. It does make sense to lower it if you use dynamic GOP or dynamic framerate. |
Well, I was wrong. After several hours, having MaxImageBufferCount 2x of the max GOP size also produced the error. Something fishy is going on here. |
I had more look into it: I am using Settings/EVENT_CLOSE_MODE/alarm to have videos separated when alarm kicks in or when it is over, so I can test how accurately the cut is done (again, by using h264 passthrough). When setting ImageBufferCount to a larger value, this cut is way off, or sometimes not even happening (usually at the end of the event). If ImageBufferCount is 3 or 5, the cut is mostly done correctly. |
Excuse me all, can someone explain to me what does GOP mean? Thanx |
GOP is Group Of Pictures. It is basically your keyframe interval. Set MaxImageBufferCount as high as your ram can sustain. Likely at least 2*GOP size but setting higher should be ok, it just sets the maximum in case slow disks, slow db or something else causes capturing to go faster than analysis. |
Please update to 1.36.7 which massively reduces cpu use, which means zm can keep up with freeing the memory. It may resolve this issue. |
i upgraded from zm-1.34.24 to 1.36.7. (at 1.34.24 everything was fine) Sep 23 16:04:40 nat zmc_m2[17785]: WAR [zmc_m2] [You have set the max video packets in the queue to 900. The queue is full. Either Analysis is not keeping up or your camera's keyframe interval is larger than this setting. We are dropping packets.] |
I'm having no issues now. On 1.36.7. |
Hi there, |
Same issue here after upgrading to 1.36.12.
While I don't understand exactly what it means my guess is that with imagepassthrough enabled, there is a higher demand for the buffer. After disabling image passthrough and using h264 encoding, the warning went away. Problem solved for me. Hope this helps someone. |
@hspaay Reencoding a h264 bitstream probably requires a lot of CPU resources. H264 passthrough is supposed to use the incoming bitstream as is, and save it directly to disk without using much CPU. In typical mpeg4 streams, you can only save a full GOP (group of pictures) which is a keyframe (a full image) and some predicated images (differentials based on the previous frame). If you reencode, the reencoding process can decide whenever needed to encode and save a keyframe, so a cut in the video can be done anywhere. But with passthrough, you are tied to cut at place where you had a keyframe in the original stream, which was not up to your system, but the sender IP cam. |
@gerazo Thank you for the clarification and it makes sense. In my case, the ImageBufferCount is set to 30 and the camera IFrame interval is set to 5. The frame rate is 4 FPS. |
@hspaay You are right. Having a buffer of 5 in case of a 5 GOP size is adequate even in the worst case scenario: a new record is to be done starting with the current frame and even if this is the last p-frame, we still have the corresponding i-frame in the buffer. So the new recording will not miss the current frame (yes, it has a couple of extra frames). So this is a reason for a minimal buffer size. |
@gerazo, yes, I understand the CPU constraint, so it could be a factor at play here too. I'm quite happy with zoneminder's performance actually. Zoneminder 1.36.12 is running in a proxmox container with 2 XEON E3-1220 @3.10GHZ CPU's assigned and 10GB of RAM. Configuration is 8 cameras which are set to 4FPS. Proxmox shows a system CPU load of 30-40%, not exceeding 50%, and 4-6GB memory consumed. A couple of additional observations from experimentation:
|
Describe Your Environment
If the issue concerns a camera
I have 3 cameras, which all appear to be working as expected.
Describe the bug
AFAICT, everything is working correctly (I can stream, I see thumbnails in the Console, etc), but the logs (via the Web UI) are filling up with repeated entries like the following:
Note that this issue did not occur when I was running ZoneMinder v1.34.x
The text was updated successfully, but these errors were encountered: