I had a functional system installed on Ubuntu 16.04 bare metal on an HP server with 24 cores and 48GB of RAM. 4 Hikvision cameras running RTSP, 1280x720 24-bit color space, 15fps. The cameras are on their own VLAN on a managed POE switch, and the server had one interface also on that VLAN. No router is involved, just the switch and the PC and cameras. Everything worked well, though I am only about 90% sure I upgraded to 1.30.x. MySQL database was on the same machine. Image and event storage was on an NFS mount on another HP server running FreeNAS; it was bind-mounted to the normal folder before Zoneminder started. Never any major errors or data loss, though I'd get the occasional camera warning message about incomplete frames that still persists.
I wanted to virtualize as I was running too many services on the same machine, so I installed Proxmox and set up an LXC container for Zoneminder. MySQL is now on a separate full VM. I clean-installed Zoneminder on the container, Proxmox mounts the NFS share and bind-mounts it to the container, and I can see all of the old events (from the previous install) and write new events. I copied the entire SQL database over to the new server. There are no file access errors in the logs.
The camera setup was in the SQL so it was literally identical. The cameras start up and everything is normal, for a minute or two after filling the buffer, then they start dropping frequently and randomly - sometimes blue-screening and sometimes complete black screen with no timestamp from ZM.
I ran VLC and determined that the actual resolution was 1280x738, so I made that adjustment, no change. I was getting buffer errors so I jacked them up to 1000. I gave the container 12GB of RAM and unlimited CPU access. CPU access never exceeds 2.5 (out of 24), and Proxmox never exceeds about 3, so CPU work isn't an issue. SHM is 30-35% even at a 1000 frame buffer.
I tried FFMPEG access instead of RTP. I also tried all of the RTP access options available. The same thing occurs.
I tried switching to just Monitor to see if that would help, but no change. VLC on a separate computer on the network (temporarily) seems to not have any of the same issues; I watched a feed for 10 minutes with no glitches.
I tried hard-rebooting the cameras, no help.
I bumped up the HTTP timeout as well, no issues. I confirmed that shmmax and shmall are high (reported some 20-digit or more number).
There don't appear to be any networking issues; Proxmox doesn't even get an IP address on this network, it just forwards traffic to this container.
The storage server is also a 24-core 48GB machine and isn't reporting any CPU, memory, or abnormal network stress. SQL server isn't exceeding any memory, I/O, or CPU limits.
I suppose the next step might be a new VM to try it out, maybe one with a GUI installed so I can run VLC on Proxmox and see if there are network issues? I'm kind of at a loss.
Some log entries while running in monitoring mode, I can get the full log if needed.
Code: Select all
2017-11-30 11:46:17.225046 zmc_m2 6792 WAR Discarding incomplete frame 2, 0 bytes zm_rtp_source.cpp 336
2017-11-30 11:46:17.202445 zmc_m2 6792 WAR Discarding partial frame 2, 104102 bytes zm_rtp_source.cpp 345
2017-11-30 11:46:17.178617 zmc_m2 6792 WAR Packet in sequence, gap 47 zm_rtp_source.cpp 127
2017-11-30 11:46:17.135133 zmc_m1 6790 WAR Discarding incomplete frame 3, 0 bytes zm_rtp_source.cpp 336
2017-11-30 11:46:17.085286 zmc_m1 6790 WAR Discarding partial frame 3, 104102 bytes zm_rtp_source.cpp 345
2017-11-30 11:46:17.062804 zmc_m2 6792 WAR Discarding partial frame 1, 104102 bytes zm_rtp_source.cpp 345
2017-11-30 11:46:17.041421 zmc_m1 6790 WAR Packet in sequence, gap 86 zm_rtp_source.cpp 127
2017-11-30 11:46:17.038823 zmc_m2 6792 WAR Packet in sequence, gap 53 zm_rtp_source.cpp 127
2017-11-30 11:46:17.000192 zmc_m1 6790 WAR Discarding partial frame 2, 104102 bytes zm_rtp_source.cpp 345
2017-11-30 11:46:16.971692 zmc_m1 6790 WAR Packet in sequence, gap 90 zm_rtp_source.cpp 127
2017-11-30 11:46:16.953886 zmc_m2 6792 WAR Discarding frame 0 zm_rtp_source.cpp 349
2017-11-30 11:46:16.921397 zmc_m2 6792 WAR Sequence in probation 2, out of sequence zm_rtp_source.cpp 112
2017-11-30 11:46:16.889444 zmc_m1 6790 WAR Discarding partial frame 1, 104102 bytes zm_rtp_source.cpp 345
2017-11-30 11:46:16.861932 zmc_m1 6790 WAR Packet in sequence, gap 97 zm_rtp_source.cpp 127
2017-11-30 11:46:16.791738 zmc_m1 6790 WAR Discarding frame 0 zm_rtp_source.cpp 349
2017-11-30 11:46:16.725879 zmc_m1 6790 WAR Sequence in probation 2, out of sequence zm_rtp_source.cpp 112
2017-11-30 11:46:04.427240 zmdc 2557 ERR 'zmc -m 2' exited abnormally, exit status 255 zmdc.pl
2017-11-30 11:46:04.221390 zmdc 2557 ERR 'zmc -m 1' exited abnormally, exit status 255 zmdc.pl
2017-11-30 11:46:04.186220 zmwatch 2641 ERR Memory map file '/dev/shm/zm.mmap.2' does not exist. zmc might not be running. zmwatch.pl
2017-11-30 11:46:03.980250 zmwatch 2641 ERR Memory map file '/dev/shm/zm.mmap.1' does not exist. zmc might not be running. zmwatch.pl
2017-11-30 11:45:58.249100 zmdc 2557 ERR 'zmc -m 2' exited abnormally, exit status 255 zmdc.pl
2017-11-30 11:45:57.327974 zmc_m2 6614 ERR Failed to pre-capture monitor 2 735333652 (1/1) zmc.cpp 312
2017-11-30 11:45:48.314813 zmc_m2 6632 ERR RTP timed out zm_rtp_data.cpp 93
2017-11-30 11:45:44.069816 zmc_m1 6622 ERR RTP timed out zm_rtp_data.cpp 93
2017-11-30 11:41:40.591940 zmdc 2557 ERR 'zmc -m 4' exited abnormally, exit status 255 zmdc.pl
2017-11-30 11:41:40.471222 zmc_m4 6645 FAT No RTSP sources zm_remote_camera_rtsp.cpp 162
2017-11-30 11:41:30.130890 zmdc 2557 ERR 'zmc -m 3' exited abnormally, exit status 255 zmdc.pl
2017-11-30 11:41:30.032548 zmc_m3 6636 FAT No RTSP sources zm_remote_camera_rtsp.cpp 162