Seeking hardware recommendations for (12) 1920p IP camera system
Seeking hardware recommendations for (12) 1920p IP camera system
I'm upgrading from analog (currently using ICRealtime Flex 16 DVR) to HD IP cameras and looking for some guidance. I'm technical and familiar with Linux, but not (yet) familiar with the technical details of ZoneMinder or the protocols that IP cameras use.
My goal is to use 12 of these GW brand 1920p ONVIF cameras at either 15 or 7 fps, and I thought I would use one of these 6TB Western Digital SE hard disks to be sure the disk is fast enough. I'll use a 16 port PoE switch with a GB link to the PC (suggestions welcome). The computer will be dedicated to the cameras, but I'm not sure what level of hardware will be required to make this work. Motion detection and remote access is important, and I will need to record audio on a couple of channels.
Can anyone please give me some guidance on how much processing power and RAM I'll need? Any opinion on the cameras or any other suggestions would be greatly appreciated!
My goal is to use 12 of these GW brand 1920p ONVIF cameras at either 15 or 7 fps, and I thought I would use one of these 6TB Western Digital SE hard disks to be sure the disk is fast enough. I'll use a 16 port PoE switch with a GB link to the PC (suggestions welcome). The computer will be dedicated to the cameras, but I'm not sure what level of hardware will be required to make this work. Motion detection and remote access is important, and I will need to record audio on a couple of channels.
Can anyone please give me some guidance on how much processing power and RAM I'll need? Any opinion on the cameras or any other suggestions would be greatly appreciated!
Re: Seeking hardware recommendations for (12) 1920p IP camera system
As of now zoneminder will not record audio. Depending where you live recording audio without peoples permission is illegal.
- knight-of-ni
- Posts: 2404
- Joined: Thu Oct 18, 2007 1:55 pm
- Location: Shiloh, IL
Re: Seeking hardware recommendations for (12) 1920p IP camera system
Any Onvif camera should work with ZoneMinder. Most HD IP cameras look pretty good under ideal conditions. The difference comes during adverse conditions, which you unfortunately won't always know in advance. Try buying just one camera for starters. Try it out. how does it look at night? Is it really grainy? How does it look during changing lighting conditions (sun goes behind cloud)? How does the image look when part of the image is shady and part is sunny (wide dynamic range)? Is the shady part too dark or the sunny part too bright? These are the things that separate the good cameras from the bad.
7 fps is all you need for general surveillance. Anything higher and you just eat up storage and over drive your cpu.
For 16 HD IP cameras, you are going to need something with a lot of cores to spread the load around. By far the best bang for your buck is a used off-lease server. You can get them for a fraction of what they sold for new. I've made several purchases from an ebay seller called garlandcomputer and each server I've received is very clean and very well packaged. It was hard to tell the server was used. In any case, here is one of many servers this seller has, which would work well for your application:
http://www.ebay.com/itm/Supermicro-2U-S ... 360310c234
That server is the same chassis I am using, but about half of what I paid. Now I'm jealous.
A couple of cons for this server:
- this server only has one power supply
- The internal raid card only supports 8 drives. You will need to buy an additional raid card to support all 12 slots.
While you could load this up with 6TB drives, it will cost you. It would be more cost effective if you went with (more) 2-3TB drives. You certainly would have the drive slots to do it.
Recommend two small SSD's in RAID 1 for the boot volume.
I've seen arguments for different kinds of raid for your application, but ZFS is all the rage these days. Whichever RAID you go with, choose a RAID 10 equivalent for your event storage. I generally stay away from RAID 5 or 6 because the parity calculations negatively affect your performance and the rebuild time can take days.
7 fps is all you need for general surveillance. Anything higher and you just eat up storage and over drive your cpu.
For 16 HD IP cameras, you are going to need something with a lot of cores to spread the load around. By far the best bang for your buck is a used off-lease server. You can get them for a fraction of what they sold for new. I've made several purchases from an ebay seller called garlandcomputer and each server I've received is very clean and very well packaged. It was hard to tell the server was used. In any case, here is one of many servers this seller has, which would work well for your application:
http://www.ebay.com/itm/Supermicro-2U-S ... 360310c234
That server is the same chassis I am using, but about half of what I paid. Now I'm jealous.
A couple of cons for this server:
- this server only has one power supply
- The internal raid card only supports 8 drives. You will need to buy an additional raid card to support all 12 slots.
While you could load this up with 6TB drives, it will cost you. It would be more cost effective if you went with (more) 2-3TB drives. You certainly would have the drive slots to do it.
Recommend two small SSD's in RAID 1 for the boot volume.
I've seen arguments for different kinds of raid for your application, but ZFS is all the rage these days. Whichever RAID you go with, choose a RAID 10 equivalent for your event storage. I generally stay away from RAID 5 or 6 because the parity calculations negatively affect your performance and the rebuild time can take days.
Visit my blog for ZoneMinder related projects using the Raspberry Pi, Orange Pi, Odroid, and the ESP8266
All of these can be found at https://zoneminder.blogspot.com/
All of these can be found at https://zoneminder.blogspot.com/
Re: Seeking hardware recommendations for (12) 1920p IP camera system
Thanks guys for the replies, and I'll check out that ebay reference.
I've ordered one of the cameras I referenced above to see how it works, hopefully it will arrive this weekend. I have a couple analog cameras of that brand and the image quality is fantastic, especially in low light, so I'm hoping the same for their IP cameras.
My thoughts were to build a PC using using something like this bundle (6-core 3.3GHz i7 processor, 16GB RAM) and combine with a Western Digital SE or Re class hard disk. This is for my home so RAID would be nice, but isn't a necessity, and I would like to get 30 days of storage. Based on your experience, does it seem like I'm in the ballpark for what I might need horsepower wise? My biggest question mark is if this will be enough processing power to handle motion detection on 12 cameras in 1920p resolution at 7fps.
I installed ZoneMinder in a VM last night (Unbuntu Server) and got it working with a single wireless MicroSeven camera that I had laying around, and I have to tell you I'm really impressed with the features. Motion detection on the most sensitive setting isn't perfect, but generally works and doesn't seem to take a whole ton of CPU time at 960p resolution and 7fps.
I've ordered one of the cameras I referenced above to see how it works, hopefully it will arrive this weekend. I have a couple analog cameras of that brand and the image quality is fantastic, especially in low light, so I'm hoping the same for their IP cameras.
My thoughts were to build a PC using using something like this bundle (6-core 3.3GHz i7 processor, 16GB RAM) and combine with a Western Digital SE or Re class hard disk. This is for my home so RAID would be nice, but isn't a necessity, and I would like to get 30 days of storage. Based on your experience, does it seem like I'm in the ballpark for what I might need horsepower wise? My biggest question mark is if this will be enough processing power to handle motion detection on 12 cameras in 1920p resolution at 7fps.
I installed ZoneMinder in a VM last night (Unbuntu Server) and got it working with a single wireless MicroSeven camera that I had laying around, and I have to tell you I'm really impressed with the features. Motion detection on the most sensitive setting isn't perfect, but generally works and doesn't seem to take a whole ton of CPU time at 960p resolution and 7fps.
Re: Seeking hardware recommendations for (12) 1920p IP camera system
@knnniggett,
You bring up some interesting configuration ideas.
Maybe a sticky topic could be created for examples of real live server configurations for different sized systems. Kind of a Best Practices topic for different sized systems.
For this to be a success (IMHO) it needs to assume not everyone is a certified linux admin so that jargon and assumptions are kept to a minimum. Also avoid hyperbole; I don't know how many times I've read the phrase "a lot of events" in this forum when referring to database configuration.
Just a thought...
You bring up some interesting configuration ideas.
Maybe a sticky topic could be created for examples of real live server configurations for different sized systems. Kind of a Best Practices topic for different sized systems.
For this to be a success (IMHO) it needs to assume not everyone is a certified linux admin so that jargon and assumptions are kept to a minimum. Also avoid hyperbole; I don't know how many times I've read the phrase "a lot of events" in this forum when referring to database configuration.
Just a thought...
Re: Seeking hardware recommendations for (12) 1920p IP camera system
IMHO, two things would make this product really take off. Fist is a dedicated Linux install, similar to what the Turnkey Linux guys are doing. For example, if you want an NVR system, just grab the turnkey ZoneMinder build, install on a clean machine and presto you've got an NVR up and running! The second thing is an easy upgrade path. When the new ZM comes out, just run a script (or clink a link) to bump to the next version. This type of simplicity would make it accessible to a much larger audience.
Examples of real life server configurations would help a ton too!
This is my first time using ZoneMinder, I'm technical though it has been years since I've written any code for Linux. The ZM product features are fantastic, the guys developing it should give themselves a pat on the back for sure. The biggest thing I see missing is ONVIF support for motion events to lighten the load on the NVR hardware for today's higher res cameras. Someone in the community has already figured this out, but I haven't figured out how to make it work yet. Hopefully it will just be time until it's part of the standard build.![Smile :)](./images/smilies/icon_smile.gif)
Examples of real life server configurations would help a ton too!
This is my first time using ZoneMinder, I'm technical though it has been years since I've written any code for Linux. The ZM product features are fantastic, the guys developing it should give themselves a pat on the back for sure. The biggest thing I see missing is ONVIF support for motion events to lighten the load on the NVR hardware for today's higher res cameras. Someone in the community has already figured this out, but I haven't figured out how to make it work yet. Hopefully it will just be time until it's part of the standard build.
![Smile :)](./images/smilies/icon_smile.gif)
- knight-of-ni
- Posts: 2404
- Joined: Thu Oct 18, 2007 1:55 pm
- Location: Shiloh, IL
Re: Seeking hardware recommendations for (12) 1920p IP camera system
Let me lead by describing the situation of this project a bit. There are a total of 5 of us who spend our time on this project. One spends all his time here in the forum and writing documentation, another spends most of his time developing in github, and the rest of us are attempting a balancing act between forums, github, documentation, etc.
A few months ago, we started counting the number of active ip addresses checking in for newer versions of zoneminder. These are just the ip addresses which have this feature enabled under options (many distros turn this check off in their packages). Based on that data we know we have 50,000 systems running ZoneMinder, right this very instance. The next release of ZoneMinder will have a telemetry daemon, which will tell even more so we can focus on the most popular features. For those who don't like the idea of sending us data, it can be easily turned off too.
That gives us a ratio of 5 to 50,000 who are volunteering their free time to support this project. So we know that ZoneMinder has already taken off. The root problem to making further development is a time/money problem. We all have normal jobs we need to perform to earn a living, which means this project won't get priority. We also don't have a lot of time to do more than we are already doing, which means requests like the one just proposed are not likely to happen unless someone new decides to step in and help. I've stated things like this before, and some get angry about it. Recall this is a time/money thing, and not a "your idea sucks" kind of thing. There are many good ideas, but many of them won't get implemented because there is no one available to do the work.
Back more back on to the topic....
There is a computer science professor from Germany, who goes by the name of altaroca, who contributed ONVIF discovery to ZoneMinder. It'll be in the next release, but be warned this is a new feature, getting exposed to a large number of cameras for the first time. We've already found and fixed some issues discovering certain cameras, and I would not be surprised if there will be more. There is another thread in this forum that discusses ONVIF motion detection. That isn't ready to even be brought into the project yet. If you want to help, right now your best bet would be to contact her through her blog site: https://altaroca.wordpress.com/2014/06/ ... oneminder/
The server configuration I recommended earlier is based off my own server. The number of cpu cores is better than high cpu clock speed, so buy as many cores as you can afford. It just so happens that off lease servers are very, very cheap and have lots of cores. They just aren't much to look at. To get a more precise idea of hardware requirements, run one camera and observe how much cpu resources it uses. Let's say its 20%. Let's say you don't want your cores to get busier than 80% (that's probably still too high). That means you can get 4 cameras per cpu core and then you know how many cameras your hardware will support. Yes, I know the question was really how to determine that before buying the hardware, but that gets us back to someone stepping up and doing the work to develop a set of benchmarks.
I've been using ZoneMinder since about 2006, and back then there were no packages. You had to build from source and the forums were filled with all the issues dealing with that. Moving ahead today, we have ZoneMinder packages for the major distros and documentation to go along with that. Follow the distro specific documentation, and you will get ZoneMinder running without any issues. We also have prebuilt ZoneMinder images which you can get off bittorrent and run on a (virtual) machine. So as far as turnkey, I'd say we are already there.
If by turnkey you mean something like my pfsense firewall, where the web console alerts me to an upgrade and I just click upgrade, then that
is not something on our roadmap. That would require a dedicated image, where zoneminder was the only thing running on the machine, the underlying Linux distro was chosen for you, the database engine was always the same and configured the same, the web server engine was the same and is always configured the same, etc. You would have to force the end user into a one-size fits all scenario. It does sound like a nice idea, but not everyone would want that. This is one of those things that might make a nice project for someone to work on.
A few months ago, we started counting the number of active ip addresses checking in for newer versions of zoneminder. These are just the ip addresses which have this feature enabled under options (many distros turn this check off in their packages). Based on that data we know we have 50,000 systems running ZoneMinder, right this very instance. The next release of ZoneMinder will have a telemetry daemon, which will tell even more so we can focus on the most popular features. For those who don't like the idea of sending us data, it can be easily turned off too.
That gives us a ratio of 5 to 50,000 who are volunteering their free time to support this project. So we know that ZoneMinder has already taken off. The root problem to making further development is a time/money problem. We all have normal jobs we need to perform to earn a living, which means this project won't get priority. We also don't have a lot of time to do more than we are already doing, which means requests like the one just proposed are not likely to happen unless someone new decides to step in and help. I've stated things like this before, and some get angry about it. Recall this is a time/money thing, and not a "your idea sucks" kind of thing. There are many good ideas, but many of them won't get implemented because there is no one available to do the work.
Back more back on to the topic....
There is a computer science professor from Germany, who goes by the name of altaroca, who contributed ONVIF discovery to ZoneMinder. It'll be in the next release, but be warned this is a new feature, getting exposed to a large number of cameras for the first time. We've already found and fixed some issues discovering certain cameras, and I would not be surprised if there will be more. There is another thread in this forum that discusses ONVIF motion detection. That isn't ready to even be brought into the project yet. If you want to help, right now your best bet would be to contact her through her blog site: https://altaroca.wordpress.com/2014/06/ ... oneminder/
The server configuration I recommended earlier is based off my own server. The number of cpu cores is better than high cpu clock speed, so buy as many cores as you can afford. It just so happens that off lease servers are very, very cheap and have lots of cores. They just aren't much to look at. To get a more precise idea of hardware requirements, run one camera and observe how much cpu resources it uses. Let's say its 20%. Let's say you don't want your cores to get busier than 80% (that's probably still too high). That means you can get 4 cameras per cpu core and then you know how many cameras your hardware will support. Yes, I know the question was really how to determine that before buying the hardware, but that gets us back to someone stepping up and doing the work to develop a set of benchmarks.
I've been using ZoneMinder since about 2006, and back then there were no packages. You had to build from source and the forums were filled with all the issues dealing with that. Moving ahead today, we have ZoneMinder packages for the major distros and documentation to go along with that. Follow the distro specific documentation, and you will get ZoneMinder running without any issues. We also have prebuilt ZoneMinder images which you can get off bittorrent and run on a (virtual) machine. So as far as turnkey, I'd say we are already there.
If by turnkey you mean something like my pfsense firewall, where the web console alerts me to an upgrade and I just click upgrade, then that
is not something on our roadmap. That would require a dedicated image, where zoneminder was the only thing running on the machine, the underlying Linux distro was chosen for you, the database engine was always the same and configured the same, the web server engine was the same and is always configured the same, etc. You would have to force the end user into a one-size fits all scenario. It does sound like a nice idea, but not everyone would want that. This is one of those things that might make a nice project for someone to work on.
Visit my blog for ZoneMinder related projects using the Raspberry Pi, Orange Pi, Odroid, and the ESP8266
All of these can be found at https://zoneminder.blogspot.com/
All of these can be found at https://zoneminder.blogspot.com/
Re: Seeking hardware recommendations for (12) 1920p IP camera system
Firstly a big thank you to yourself and the 4 others who are helping you, you guys and girls have done a really great job. As a commercial software developer myself I understand how much time and effort is required for developing a product like this, the difficulties in keeping up with the ever evolving ocean of diverse hardware and how difficult it is to try to please everyone. You guys deserve a ton of credit for the work you have done, and 50k+ active users is a testament to the quality of your work.
Is there any piece of hardware or donation that would help you at this point in time? I would love to donate development time, but with 2 jobs and kids I wont' be able to until my kids are a little older and I actually have some free time! lol. But if I can make a donation in another way then maybe that would help.
Thank you for the insight on the hardware. I've got 2 cameras connected now, and the CPU time on my VM (4 cores, 8GB RAM) is all over the place, the load ranges from 0.3 to 2.0. I'm still fiddling to figure out what the cause of the variation is. I move into a new house in about a week and that's what I need the cameras for, so due to the time crunch I'll probably pick up a commercial NVR just to have an immediate solution, but continue experimenting with ZoneMinder in anticipation of moving to it one day. Hopefully I will be able to contribute, even if only in a small way.
Is there any piece of hardware or donation that would help you at this point in time? I would love to donate development time, but with 2 jobs and kids I wont' be able to until my kids are a little older and I actually have some free time! lol. But if I can make a donation in another way then maybe that would help.
Thank you for the insight on the hardware. I've got 2 cameras connected now, and the CPU time on my VM (4 cores, 8GB RAM) is all over the place, the load ranges from 0.3 to 2.0. I'm still fiddling to figure out what the cause of the variation is. I move into a new house in about a week and that's what I need the cameras for, so due to the time crunch I'll probably pick up a commercial NVR just to have an immediate solution, but continue experimenting with ZoneMinder in anticipation of moving to it one day. Hopefully I will be able to contribute, even if only in a small way.
Re: Seeking hardware recommendations for (12) 1920p IP camera system
Well I decided to go the ZoneMinder route and ordered my new hardware last night. I know you said the more cores the better, but due to time (to research) and space constraints I just picked up a 6-core i7, 16GB RAM and a pair of 4TB WD SE hard disks with a small ATX case. I need to hide this in a box in my attic so I had to get something relatively small. I'll report back how it goes as I get things put together.
Re: Seeking hardware recommendations for (12) 1920p IP camera system
Hi MattJ,
Do you mind sharing what mobo are you using that 6-core i7 with?
Do you mind sharing what mobo are you using that 6-core i7 with?
Re: Seeking hardware recommendations for (12) 1920p IP camera system
I used this bundle from NewEgg:
https://www.newegg.com/Product/Product. ... 6813157543
https://www.newegg.com/Product/Product. ... 6820233692
https://www.newegg.com/Product/Product. ... 6819117402
You can probably find something 2x faster for 1/2 the price by now.
I don't have it anymore though. For my particular case, I ended up needing to store the actual mpeg4 video stream (with audio) from the camera, so I sold the PC and replaced it with an off-the-shelf NVR. ZoneMinder did what it does very well, I just needed a different feature set for my particular use case.
https://www.newegg.com/Product/Product. ... 6813157543
https://www.newegg.com/Product/Product. ... 6820233692
https://www.newegg.com/Product/Product. ... 6819117402
You can probably find something 2x faster for 1/2 the price by now.
![Wink ;)](./images/smilies/icon_wink.gif)
-
- Posts: 1
- Joined: Sun May 30, 2021 3:18 pm
Re: Seeking hardware recommendations for (12) 1920p IP camera system
So I know this thread is old, but I thought I'd share my experience. I've had great luck and excellent performance so far with a Supermicro H8SGL-F single Opteron server motherboard. I installed a 16-core Opteron 6276, along with 64 GB of registered DDR3-12800R RAM. For disks, I'm running two 2TB WD Black SATA drives in RAID-1 for my CentOS 7.9 OS and virtual machine disk images, two 3 TB WD Purple SATA drives in RAID-1 for video storage, and two 4TB WD Green SATA drives in RAID-1 for NAS, which I use for file storage and backup. In addition to my Zoneminder system with thirteen full-HD (1920x1080@8fps) Hikvision IP cams, the server runs two small virtual machines, a Samba server, and an rsync mirror of a couple of Linux distributions I use internally so updates are fast. Typical CPU utilization is 25% or less. It will bump up to roughly 50% when I'm viewing a camera montage in a web browser. I've seen peaks as high as 75% when the RAID arrays checking sync and zmaudit is running simultaneously. The best feature of a server motherboard is IPMI, which gives you the ability to remotely access a machine console via a virtual KVM. I do this frequently since my machine is headless, installed in a secure wall-mount cabinet. All of the aforementioned hardware is still available on the used market, for a lot less than I paid when I built my machine almost seven years ago.