Video Surveillance Software for Linux

BenFra

Beta member
Messages
1
Location
US
Hello Forum!

I'm looking for a professional video surveillance software that runs on Linux. I've stumbled across a software called "go1984" (neat name...), but it looks like it's only available for windows?

Does anyone know an alternative based on Linux? Also this software seems a bit pricey. Aren't there any cheaper alternatives?

Any suggestion would be appreciated...
 
There is indeed video surveillance software for Linux, but you really have to weigh your options with what you want out of it in terms of features, setup time, etc. I've spent a lot of time tinkering in the CCTV world. It seems to be a common trait that most CCTV software sucks, or has some weird limitation. At my last job only 3 years ago, their DVR/NVR didn't even have an option to export video feeds. Yeah - that was pretty handy when someone broke into the school and the state police wanted footage. I had to play the videos back in real time while using a screen recorder in order to render it. Pathetic.

Likewise, other CCTV applications export to a proprietary video format. Why anybody in this day and age thinks this makes sense is something I can not possibly begin to understand. Just export the damn thing to an AVI, or MP4, something that'll work without fuss instead of needing a crippled proprietary "video playback tool." Spare me.

Ranting aside, there are two major players in the Linux world. ZoneMinder and Motion.

ZoneMinder was created by a guy named Phil quite a few years ago. Phil was the single developer who created this mammoth, largely because he was frustrated with the lack of available software on Linux and his house was broken into. Over the years, development fizzled. ZoneMinder has since picked up development with a series of interested users based in entirely different areas of the world. Phil has been included in the mix as well (as of my last understanding anyway). Isn't open source software just beautiful?

ZoneMinder is a bit heavy in terms of system resources. It works via MJPG compression and pulls in the MJPG streams of the cameras to process the frames and detect whether or not motion actually took place. ZoneMinder has went through a few recent code refreshes and version bumps, and I have admittedly not used the more recent versions. Last I used it I did have a few issues with my cameras disconnecting fron ZoneMinder, but this sounds like a bug specific to the connection between ZM and my Vivotek cameras, as not many other people have experienced this. ZoneMinder's development community went from bare, to non-existent, to vibrant. While it's not perfect yet, it's getting there. Due to ZM's 2-3 year lapse of little/no updates, as camera technology progressed, ZM was stuck in time, so the new team of devs have their work cut out for them - but they're certainly making it happen.

The other candidate is Motion, which is something that I personally use. Motion has no GUI. It's all based on config files. This seems to be a turn off for some people, but you really need to take a step back and consider the good/bad/ugly of it all. With Motion being based on config files, this means that you can copy those files and suddenly, a few kilobytes later, your ENTIRE CCTV setup (not videos, but the actual setup of the software) is backed up. How amazing is that?

Motion is absolutely bomb proof. I have it running with two Vivotek cameras outside and one wireless Foscam camera inside. It pulls the MJPG streams in and processes them accordingly to determine whether or not motion took place. It works with several different streams, meaning it'll take image stills, motion, and timelapses.

As motion is caught, JPG's are written to the hard drive. Some people dislike this and turn them off. I quite like them for one specific reason. I have my JPG images being saved to a folder entitled (you guessed it) images. I can link up to my server via Samba (file sharing) and open one image and just hit next-next-next-next to page through the pictures quickly and easily. If I find that at some point there was indeed something going on (as opposed to a stray cat walking by the camera that triggered motion), I take a look at the time stamp. Hmm, okay, this was 2:00 PM today. I go to the motion folder, find the 2:00 PM motion file, and play it. Then I can see in action what took place then.

Timelapses are simply... timelapses. They record at 1 FPS (frame per second) 24/7/365. This is nice because if something is going on in the background but your sensitivity is set too low to detect it, you can reference the timelapse got a larger bird's eye view. This came in handy as our car was broken into last October. The movement was so subtle and so far away it didn't trigger motion, BUT, my timelapse caught it, and that timelapse was sent to the police department.

Motion files export as AVI, whereas timelapse files export as MPG. Both are playable in VLC, Totem, whatever you have. This... is awesome.

As mentioned, Motion has no GUI. So there is no settings panel to click this or that. It's all based on config files that reside within the /etc/motion directory on your Linux file system. I cannot emphasize enough how much I enjoy this software. My server has an uptime of nearly 1 year, and it does about a dozen different tasks. Motion hasn't had a single hiccup during that time.

If you're interested in a Motion how-to guide, I made a two part video tutorial on YouTube.

Part 1 - https://www.youtube.com/watch?v=NwDLkMPLTw0
Part 2 - https://www.youtube.com/watch?v=ZAoA_J5HD0M

The one area of not having a GUI that bothered me was the fact that I didn't have a live view finder with Motion. This can be circumvented rather easily. Motion supports pushing out the video feeds it is processing via a web port. This, roughly translated, allows you to create a custom HTML file that pulls in those feeds. I submitted a FAQ on Motion's FAQ page highlighting the method I prefer to use, but note there are several listed.

FAQ - FrequentlyAskedQuestions < Motion < Foswiki

My entry:

<html>
<body bgcolor=000000>
<img src=http://192.168.1.20:5001/ border="0" width=49%></a>
<img src=http://192.168.1.20:5002/ border="0" width=49%></a>
<img src=http://192.168.1.20:5003/ border="0" width=49%></a>
<img src=http://192.168.1.20:5004/ border="0" width=49%></a>
</body>
</html>

So say my server is 192.168.1.20, and each port indicates a specific camera, namely 5001, 5002, etc. The width is set to 49% so it creates a 'grid' like appearance. Given that I have it set to 49%, it won't put more than two videos per line (since 49+49+49 is well over 100%). The 49% factor instead of 50% allows for a slight break in between videos, just making it look a little cleaner (personal preference).

I set my FPS for the web section to be quite low... only 1 or 2 FPS. I did this mostly because I want my recorded feeds to have the best speed (10 FPS). I don't need outstanding speed for live viewing as I only want to be able to tell if someone is at the door when I'm in the basement listening to Pink Floyd at ear bleeding levels. I have an old tower downstairs connected to a monitor that when it boots up, it auto logs in to Ubuntu + launches Firefox in kiosk (full screen) mode right to my custom HTML page that I saved on it. All I do is hit the power button and it turns on and does everything itself. The end result is me seeing the live feed. When done, I simply shut it down.

While I had to do a little bit of manual tweaking in the config files and had to set up my own HTML page for my live view of the cameras, it's been a very automatic and problem-free experience. If you decide to go with Motion, hopefully you will find the combination of that video tutorial + the FAQ page will land you with a really decent CCTV system.

Hope this helps!
 
Back
Top Bottom