Re-streaming surveillance camera video
Our local horse rescue group, All About Equine, had some surveillance cameras in their barn to capture the birthing of foals from the rescued pregnant mares. They used a Zmodo system, but when more than 1 volunteer tried to stream the video, it was too much for the DSL connection.
The volunteers all wanted to be on Mare Watch, leaving their web browsers open to watch the video. To alleviate the network congestion, I knew that we needed to re-stream the broadcasts. There are now 8 cameras at the barn, and the Zmodo system was not one of the easily hackable varieties. I’m not sure what streaming protocol they used, but it wasn’t friendly to being re-streamed. Therefore, I purchased a Conexant Fusion 878a video capture card (4-ports) on eBay.
These are the variety that have 4 of the 878a chips, and thus have the capability of capturing a full 24fps video stream simultaneously from each channel. For this project, though, we’ll be using a measly 1/2 to 1 fps, so as to not take over the dsl connection completely.
First, I found a donor PC, put in the capture cards, and installed Ubuntu Server. Next, I attempted to use ffmpeg / avconv to stream the video to justin.tv … thinking that perhaps this (free) streaming service might be our answer. Unfortunately, I couldn’t pull it off. justin.tv expects audio too, and we weren’t planning to broadcast audio over our limited connection.
Next step was to try ZoneMinder, a free linux-based web-based software package designed to share video cameras. I discovered out that ZoneMinder could pull streams from other ZoneMinder servers … which was exactly what we needed!
I decided to use my virtual server at ChicagoVPS as the distribution point for our video. Installing ZoneMinder on Ubuntu, I followed this guide for both the on-site server with capture cards, as well as the ChicagoVPS re-distribution virtual server. The instructions work equally well for both platforms. After installation, I wanted to create a web page that would allow visitors to view the feeds without logging in.
Replace SERVERNAME, USERNAME, and PASSWORD with entries that match your installation.
[code language=”html”]<img src=”http://SERVERNAME/cgi-bin/nph-zms?mode=jpeg&monitor=5&scale=100&maxfps=5&buffer=1000&user=USERNAME&pass=PASSWORD” width=”320″ height=”240″>[/code]