Jump to content
jasauders

Just wanted to share my setup, experience, and thoughts.

Recommended Posts

I've tinkered for many years with home CCTV but didn't really begin to dive in until the last year or so. I'm by no means an expert, a professional, or anything of that nature. I am however a technically inclined user given my personal interests that simultaneously align with my day to day job in the tech field. But at the end of the day, I'm just a dude who wanted to keep some eyes on his property, so I'd like to share some bits of information here that I ran into in case it helps anybody else out there.

 

I'm a heavy Linux user both at work and at home. I have a little home server I set up a while back running a low end i3 with a large tower to accommodate a bunch of hard drives for storage. Naturally, a Linux based CCTV choice makes sense for me, so after I received my (2, soon to be 4) Vivotek IP8332 cameras, I set up ZoneMinder. ZoneMinder is a fantastic project, however due to a few years of lack of development, there are a few issues. A new breed of developers are actively working on ZoneMinder now, so it goes without saying it has an incredible future ahead. That being said, ZoneMinder felt a little heavy on my server, and I later had some change of opinion (unrelated to ZM) that slightly redirected my home CCTV goals. More on that later.

 

Moving along, I ended up adopting a different application known as Motion. Motion is a daemon based utility available right witin the repositories which has no graphical interface. It's all based on config files (text files) to control how Motion operates. I've heard it said (and understandably so) that Motion is a bit more difficult to pick up for some users, however I've seen some very difficult to use and set up GUIs for CCTV appliances out there, so that argument can go both ways. A huge advantage to Motion being config file based is easy backups. With a few kilobytes, you can copy the config files and bam - your entire CCTV setup, excluding feeds, is done. Since Motion records files to the file system and not a database, a simple copy of the folder can 'back up' those feeds elsewhere if you so desire. Motion is MJPG only, which may or may not be favorable depending on your use case scenario. ZoneMinder is also largely MJPG driven, though it does support H264 feeds in the development branch.

 

I started to consider a few things in regard to motion detection. Motion detection is great, but in some ways, I feel as though it's (personal opinion) somewhat overrated. It has its uses, don't get me wrong, but it can be a little tedious to dial in. If you dial it in for night mode, it could throw day mode settings off, and vice versa. Couple in a few other factors, such as blowing trees (I have a lot of them on my property, but I hate to mask out my entire property to get the trees out of view), along with the fact we're on a corner lot. Anybody who lives on a corner lot will understand this, as when cars turn down the street, their lights cut across our yard right within view of the front porch which I DO want in the shot. See where I'm going with this? Again, all personal opinion, but I have yet to see a motion detection setup, even in multi thousand dollar NVRs that I've used through different jobs that really lands a home run. Don't get me wrong, there are some that make it to 3rd base, but I have yet to be jaw-on-the-floor wow'd by one yet. I had Motion set up to be motion detect (that's kind of the point of 'Motion'), and I had configured it so it was very sensitive at night and just accepted the higher likelihood of false positives during the day. A few months ago we had an issue where some guys walked around the neighborhood going through unlocked cars. The movement was admittedly minimal in the dark distance, and it was not enough to trigger motion. I did however capture it via Motion's timelapse feature, which records 1 FPS 24/7 in a separate stream. This at least caught (at an admittedly poor framerate) what took place. I've read other stories about users who switched to full time recording because they would see a car arrive, then leave an hour later, but in that hour time span in between there wasn't enough movement to trigger motion. This leaves a question up in the air - what happened in that time?

 

As a result, I've re-worked my setup a bit to better accommodate what I'm after. I've switched to full time recording. Motion is not doing the full time recording. Instead, I am simply using the cameras onboard "record to NAS" feature. So far, I'm wildly happy that I switched to it. It uses more hard drive space, yes, but that's one of the few (in my case, the only) downside. Given how cheap hard drives are these days (2TB for less than 100 bucks, say what?!), it makes the need for more storage an easier pill to swallow. After all, if no motion is picked up, I'm left wondering what happened. If I'm full time recording, that's not a concern.

 

I'm still using Motion, but in a different way now. Motion has a lot of nice features. It's running now with a 15 second gap at 1 FPS. It does not transcode the images into AVI videos as it once did. Now it simply captures individual JPGs and lets them alone without making them into a video. So at 1 FPS, it's picking up an analyzing frames whenever movement occurs. It's set to save only the 'center' JPG during a motion event. I can tweak it to save all motion JPGs, the 'best' JPG, etc, but this fit what I was after. These images dump into a folder specifically for images. This allows me to go in, click on the month, day, and then the first image of that day, then hit next/next/next/next to page through all of the images to see what took place. If something took place, I can go to the videos folder where the cameras save directly to the 'NAS' over Samba/SMB/CIFS 24/7 @ 10 FPS, H264 stream, 1280x800 resolution. The lack of needing to transcode anything has cut down on server load considerably, and I'm using far less bandwidth on my LAN with the 1 FPS Motion MJPG and 10 FPS H264 continual streams as opposed to the 10 FPS Motion MJPG streams I used prior. While bandwidth isn't really a concern for a home gigabit LAN, it is nice to see lower numbers as I do intend to scale this up a notch or two yet.

 

I particularly like how the save-to-NAS functionality saves the videos in folders by date/day/time, as in 20140701 >> 12 >> 45.mp4, which allows me to watch the 60 second clip that took place at 12:45 on July 1st 2014. Speaking of which, is this functionality common with other vendors too? I would hope because it'd be chaotic without this feature. This makes for easy retrieval without needing any sort of database/NVR software on top. If I was not utilizing Motion to have a broad semi generic bird's eye view of what took place throughout the day, full time recording would be admittedly a little tedious. I mean, I COULD just que up all of the day's video files into VLC and kick up the playback speed to burn through a day's recordings in a few minutes, or I could simply do what I almost always do (don't bother with watching feeds unless you notice something on the property that looks a bit off), but the inclusion of Motion is a nice advantage.

 

Total cost was pretty much free given that Motion is free and open source software and the save to NAS functionality is a feature built into my cameras. As I camera shop into the future I'll be sure to make sure they have this functionality. I see a lot supporting FTP as well (one or two had FTP but no SMB), which seems decent (I could always set up an FTP instance on my server, I suppose) but given that I *already* run Samba for file sharing, backups, etc., Samba/SMB/CIFS support is pretty much a must-have for me. I already owned my server and the hard drives inside so that came at no additional cost as well. Given the current network and CPU load of a setup like this, if I were in a situation where I did not have a home server and I wanted this functionality, I'd probably consider one of the cheap 50-100 dollar SOCs (like the $35 Raspberry Pi but maybe with a bit more horsepower) and a 2TB USB HDD for storage connected. Not a shabby solution overall.

 

With all of this said, I know this scenario does not plug in to all scenarios out there. I just wanted to babble on about what I've done recently in my learning process over the last year or so in case it helps any other users connect the dots for their specific scenario. I like keeping things as simple (yet as effective) as possible whenever I can. Mileage varies. All that matters is that your solution works for your needs. The above was simply my solution that fit my needs.

Share this post


Link to post
Share on other sites

Interesting that you've found IP cams with ftp capability. I didn't think they'd have that. I may want to add IP cams vs analog since we use an ftp server on our lan.

Share this post


Link to post
Share on other sites

Indeed. A large number of cameras I looked at came with FTP and SMB functionality. It's growing increasingly rare to see a camera that doesn't include those features actually (unless it's a crazy low end camera), which is nice for users like myself who just want them to record.

 

A few days have passed since I posted, but I have to say this is the best setup I've had so far. It's crazy braindead simple. Cameras just record to NAS. There's no extra fluff on top to worry about. (I say fluff in the most respectful way possible as I know there are situations out there that may require certain functionalities) It just works and it works predictably well. The only semi minor 'meh' factor is that I have to make changes to each camera individually. This is hardly anything to write home about, because it's easy to pop into the web UI's of each camera and make whatever change I wanted. Given the export/import features, this would make things that much easier if I were setting up a dozen cameras like this and wanted them to all have the same config. This hasn't been a big deal for me since I pretty much set them once and forgot about them, but if you're somebody who wants to go in and tinker with the FPS on this camera, or that camera, etc., I can see it being a little more tedious. At the same token, you're STILL making changes while sitting on the couch with your laptop, whether you're connecting to multiple camera web UI's or connecting to each camera within the NVR software, so it can be argued to be quite similar anyway.

 

I mentioned earlier that I utilize Motion (the software application in the Linux repos) specifically for taking JPG snapshots when motion activity occurs. I just found out (probably should have realized this sooner) that my cameras support motion detect and will actually take single snapshots and send them to the network share accordingly, along with the full time feeds. While I really like Motion and will likely continue to use it, I might have to tinker with the onboard functionality of these cameras. I remember motion detect recording was pathetic on the Vivoteks. I cannot stress that enough, it was just bad. But hey, if it's only taking single snapshots, maybe it won't be so bad. Worth at least trying anyway.

 

This is the IT side of me speaking, but I quite like the fact that the cameras are using something generic, i.e. samba/file sharing services. Samba is something I can spin up in a hot second on literally any sort of Linux distribution or Windows install. That way if my server were to downright tank, I could plug in a spare that easily. Given that I actually have a secondary server on my LAN, this would be a quick adjustment of the IP settings and boom - done. This became somewhat apparent as the CCTV NVR at the one building at work tanked hard last week, and they're still waiting on a replacement to come in. Meh. CCTV isn't something I deal with at work (that falls under grounds/building crew instead of the IT department), but seeing it first hand certainly raised my eyebrow a bit.

 

As mentioned before, use what works for you. I just wanted to report my findings over my new setup. I had some hesitancies but they've all been pretty much curbed since I finally stopped procrastinating and switched things up to see how they'd work.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×