IP Camera Recommendations

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

epicurean

Active Member
Sep 29, 2014
785
80
28
I can't say, as I've never installed ZM on Ubuntu; and in fact, I haven't even really run Ubuntu in many years. (I kinda-sorta run Ubuntu under CentOS, though not as a VM, but under systemd-nspawn. See this article and this article.)

At any rate, I can only speculate, as it really comes down to how good a job the maintainer of the Ubuntu packages did with ZM. But based on my experience with the CentOS packages, I'd assume ZM on Ubuntu should be similarly straightforward.
Hi Matt,
I am about to embark on Zoneminder under CentOS. What kind of drive system (raid? ) works well ? I have about 15 Panasonic cameras. I have dedicated 8 x 3TB drives for this project.
 

matt_garman

Active Member
Feb 7, 2011
212
40
28
Hi Matt,
I am about to embark on Zoneminder under CentOS. What kind of drive system (raid? ) works well ? I have about 15 Panasonic cameras. I have dedicated 8 x 3TB drives for this project.
For my setup, I just have a pair of 7200 rpm drives in software raid-1. And in fact, that's a recent upgrade, it used to be just a single 5400 spinning drive.

However, my setup is meaningless to you. To plan how much storage and IO you need, you really have to do the math, and it's not that precise...

It comes down to resolution, bit-depth and frame rate. Bit-depth is what it sounds like: the number of bits per pixel. 32bpp, 24bpp, and 16bpp are common values. Divide this by 8 to get the bytes per pixel (i.e. 4, 3, or 2 bytes per pixel).

Resolution is the number of pixels per frame. This is mostly a function of what your camera supports. I have mine set lower than what my cameras actually support, because it's good enough for me.

Frame rate is how many frames (pictures) are taken per time interval, usually expressed in seconds, i.e. "FPS".

So, to use one of my cameras as an example:
Bit-depth: 32bpp = 4bytes/pixel
Resolution: 1280x720 (i.e. "720p")
Frame rate: 12 FPS

So every second of video from this camera requres 4x1280x720x12 = about 42 MB, which would also equate to a storage system than can support 42 MB/s write speed.

What?! OK, in actuality, Zoneminder is saving JPG files, which are compressed images. So in practice, you generally get much better numbers than my theoretical worst-case numbers presented here.

To give you some real numbers, I looked at a few events for this camera:
17 seconds = 53 MB
13 seconds = 40 MB
10 seconds = 19 MB

In practice, that's 2-3 MB/sec. But the specs I showed above don't tell the whole story, as how much compression you get from JPG conversion is highly dependent on the scene itself. Intuitively, if there's a lot of redundancy in an image, it will compress better, but if it's highly variable, then it will not compress that well.

Oh, also: in practice, you generally don't do continuous recording, but rather activate some kind of motion detection trigger. That saves a ton of space and IO load. My cameras actually support two streams: a high-resolution main stream, and a low-resolution sub-stream. I use the main stream for motion detection (and capture only when my criteria is met), and the sub-stream for continuous recording (as a backup).

That's one limitation of ZM, it stores "videos" as a sequence of JPG images. So it tends to be CPU and I/O heavy (since it was written back in the day when MPEG was the norm). Last I read, they were working on a new version that deals in video natively, which should improve performance considerably. For now, I have a little script that creates actual h.264/mkv videos from the JPGs (using ffmpeg) and that radically improves the space efficiency.

Think of it this way: say you have only one camera, but it supports 4k resolution at 60fps (like big-budget movie studio quality). That's 3840 × 2160 × 60 = 497,664,000 pixels per second.

Compared to 16 cameras running at 1280x720 and 15fps = 221,184,000 pixels per second. Roughly half the bandwidth, storage and CPU, but 16x as many cameras.

Hope that helps!
 

epicurean

Active Member
Sep 29, 2014
785
80
28
Thanks for the helpful info Matt! I hear that ZM will have H.264 soon?
Any merit to running ZM as a docker, or just install it straight up?
 

matt_garman

Active Member
Feb 7, 2011
212
40
28
Any merit to running ZM as a docker, or just install it straight up?
I have mine in a systemd-nspawn container. This is a habit from my MythTV days, when installing RPMs from 3rd-party repos would ultimately result in "dependency hell" when doing any kind of upgrade. I like to keep things compartmentalized.

The question is, will ZM and its dependencies conflict with any of the native packages provided by CentOS? If so, you're better off containerizing. But if the packages can "peacefully" co-exist, then it's probably not necessary. But since I use containers by default, I can't answer the question of peaceful co-existence.
 

matt_garman

Active Member
Feb 7, 2011
212
40
28
you guys might be interested in shinobi, running it in a debian VM and it's left zoneminder in the dust for me (including proper h264 compression and storage)

Shinobi - Simple CCTV and NVR Solution - Features
I couldn't tell from the docs - does Shinobi allow for very granular "zone based" motion detection configurations? In ZM, I can define one or more "zones" within the camera's frame. These zones are basically just subsets of the total image area. Each zone can have its own very granular motion detection config parameters. For example, one of my cameras is on my front porch. This "scene" includes my neighbor's driveway and a bush that always seems to be blowing in the wind. I define zones to look only at the actual porch and stairs, so that motion detection events aren't triggered by my neighbor's coming and going or the bush blowing in the wind.
 

fohdeesha

Kaini Industries
Nov 20, 2016
2,728
3,078
113
33
fohdeesha.com
it definitely has custom region based motion detection, I can't remember specifically if you can create multiple regions on one feed but I would think you can. If not, I'm sure the dev would be receptive to it (he's implemented everything else people have asked for so far, it's quite new software)

Just set up a fresh VM to test, using curl you can install it using one command for the most part. Use this branch/repo, it's the "pro" version that gets more updates. The dev has stated the pro version is OK for home use without any licenses (it doesn't need any)
ShinobiCCTV/Shinobi

I have quite a bit of cameras (axis cameras putting out h264), and since I have shinobi set to "stream copy" storage method, it just straight dumps the native h264 streams to disk. no encode/transcode, so vm load is essentially zero (just some disk writes)
 

epicurean

Active Member
Sep 29, 2014
785
80
28
@fohdeesha,
That's cool! Could you share your settings for Shinobi?
DId you place the videos all into the VM, or offsite or an NFS share? I just followed their instructions for docker installation
I would like to place the videos in an NFS share (eg Napp It) from another VM on my esxi
 

trumee

Member
Jan 31, 2016
222
12
18
54
I have mine in a systemd-nspawn container. This is a habit from my MythTV days, when installing RPMs from 3rd-party repos would ultimately result in "dependency hell" when doing any kind of upgrade. I like to keep things compartmentalized.

The question is, will ZM and its dependencies conflict with any of the native packages provided by CentOS? If so, you're better off containerizing. But if the packages can "peacefully" co-exist, then it's probably not necessary. But since I use containers by default, I can't answer the question of peaceful co-existence.
I am sticking with ZM because there is a plugin in MythTV for ZM which is very nice.
 

Wader

New Member
Dec 16, 2015
16
1
3
Adding in my experience...
I found good pricing on multiple cameras by buying a Costco package. I got 8 3MB cameras and an NVR. Used the NVR for a couple weeks and found it next to useless. My DIY NVR is a repurposed i5-2500k system, Ubuntu, zfs on 16 disks. I tried several NVR applications and have settled on Xeoma (for now). With a paintbrush tool you define what areas of the image you want to trigger motion. I've configured it to record everything for 40 days. The cameras have configurable resolutions and frame rates. I now leave them all at 3MP and set the frame rate based on the location. Most are set for between 4-10 frames per second. If I had less storage I would tighten up the frame rates and triggering. In Xeoma I can go into the recordings, select areas to motion trigger on and then skip through the recording only seeing sections with motion. The Android app works well too.
What I'd like: To not have all those disks spinning 24/7. Is there a way to use a mirror of SSDs to cache the disk writing? Install 2x 1TB SSDs so that they absorb all the video for 24 hours and then flush to the disk array once a day.
 

Jerry Renwick

Active Member
Aug 7, 2014
200
36
28
43
IP camera requires a license that is not free. If you need to add more cameras then you will need more licenses per cameras. We recommend to use a stand-alone NVR.
 

epicurean

Active Member
Sep 29, 2014
785
80
28
I tried several NVR applications and have settled on Xeoma (for now). .
Could you share how you came to choose Xeoma over the other NVR software? I too am looking at a non-windows NVR, and have been experimenting with Shinobi
 

epicurean

Active Member
Sep 29, 2014
785
80
28
I have not tried BI yet , waiting to do that last as its a paid option. I installed Shinobi (with a lot of help from the developer and his team) on ubuntu 16.04 as a docker. It was a lot of greek to me, and still I needed help to setup the cameras. Was originally going to go for Zoneminder but decided to try Shinobi as it seems to take even less resources.
I am keen on a non windows NVR, so may just try Xeoma as a demo pending feedback.

However....since my NVR needs to have a strong user friendly WAF, I may still go with BI since its windows and its easy to operate. Am hopeful it doesn't have to be
 

cesmith9999

Well-Known Member
Mar 26, 2013
1,417
468
83
Blue Iris, while a paid solution is not that expensive (under $50). and VERY easy to setup. lots of settings to allow for changes...

Chris
 

zhoulander

Active Member
Feb 1, 2016
181
46
28
BI is excellent NVR software and bp2008's UI3 makes it super nice to view on tablet devices.
AFAIK the trial doesn't restrict any of its real functionality, the only annoyance is the "Evaluation version" banner across the image.
Intel hardware acceleration using the iGPU helps reduce CPU utilization.
It's totally worth the money imo.
 

amalurk

Active Member
Dec 16, 2016
311
116
43
102
I am a noob to IP cameras and NVR software. I bought a Ubiquity G3 and their airgateway to connect it wirelessly a few months back. The POE adapter that came with the camera is compatible with the airgateway. It snapped on the airgateway and powers it while at the same time injects power for the camera with a pass through port, that is really cool. I mounted it at my front door and drilled through the wall into the garage where the airgateway is mounted on the ceiling and there is power. I put their NVR software on a VM, it saw the camera updated firmware and I configured some motion trigger options.

It works great. I can view live video or saved motion clips on my phone from anywhere. Camera was $120 or so and airgateway was <$30. I am impressed. This thread just reminded me of it because I literally have not touched it in a month or more. So, just now I fired up phone app from work and it connected and I am viewing the live video of my front door. If I had a bigger place with more land or crime concerns I would install a whole bunch more of them.
 

epicurean

Active Member
Sep 29, 2014
785
80
28
BI is excellent NVR software and bp2008's UI3 makes it super nice to view on tablet devices.
AFAIK the trial doesn't restrict any of its real functionality, the only annoyance is the "Evaluation version" banner across the image.
Intel hardware acceleration using the iGPU helps reduce CPU utilization.
It's totally worth the money imo.
Is it possible to use a passthrough GPU(as part of a VM) for the hardware acceleration? My key concerns about using BI is not the cost, but rather its reputation as a CPU hog

@amalurk
I heard good things about the Ubiquiti NVR software. Unfortunately none of my IP cameras are Unifi, mostly older panasonic ones (all ONVIF enabled though)
 

Aestr

Well-Known Member
Oct 22, 2014
967
386
63
Seattle
@epicurean I think if you look into the people having CPU issues most are not configured correctly. BI certainly can be CPU heavy but with a bit of tweaking is quite reasonable. I had it running in a VM on an E3-1230 V3 and it didn't cause me any issues.

Unifi Video is nice, but as with anything Ubiquiti it often has a very beta feel to the development process. If it's currently working that's great, but if you need a fix or enhancement it can be frustrating. It's also not a feature rich as many of the other options. Ultimately I moved away from it because of the inability to add non-UBNT cameras. Since the software is free they lock it down to their hardware as their way to make money. Since their camera lineup is limited you may find yourself wanting PTZ or great low light pictures and have to abandon the whole ecosystem like I did.