I've been experimenting with my pi and the camera module designed for it. So far with a single camera things have been great. I started with my own code in python using the 'picamera' interface. Over time I realized that others had done alot of the work for me.

Lately I've been using ccrisan's motioneye code, which uses mmal and motion in the background.

My question is this. I plan to have 4-6 cameras running at some point which will store stills every 3 seconds to my network server (running windows).

Much of the limitations of this setup are on the raspberry pi side of things. Running a webserver, motion, and the interface to stream the data.

Isn't there some way that the streaming could come from my much more powerful windows server, while all the cameras have to do is encode and transmit the data. I don't have much knowledge of how camera networks are designed architecturally.


EDIT: I am using RPI B and RPI B (limited ram) with raspbian lite (jessie)

  • Is there a particular project youre currently using to stream the feeds? It sounds like you already plan on pushing the images at all times to the server, so you would just need to choose a streaming method that works from the images on the server. Is there something more to this?
    – Jeff Meden
    Commented Jul 20, 2016 at 14:34
  • Yes, exactly. My server has all the copies of the still images. What I wonder is if it's somehow possible for the windows machine to handle the streaming to external clients rather than the webservers on each raspberry pi.
    – CareFree
    Commented Jul 20, 2016 at 14:46
  • 1
    It's times like this that I wish certain Windows software would work on the Pi... Check out NCH Software's BroadCam for a fun little side project. It works great for what you need... If you have 5 spare windows boxes laying around
    – tycrek
    Commented Jul 25, 2016 at 19:41

3 Answers 3


I'd use UV4L to stream each audio video stream from each camera to a janus gateway installed on your server. It's everything web-based, so any customization effort should be reduced to the minimum. A demo OS entirely running on a Rpi (where a single rpi can host a videroom) can also be downloaded from the UV4L website and requires no configuration to be used. Janus also offers audio and video recording of the streams.


Isn't there some way that the streaming could come from my much more powerful windows server

No, the video stream comes from hardware on the pi. You can stream to another box with greater bandwidth if you want to retransmit the stream to multiple points but that doesn't seem to be relevant to your scenario.

I am using RPI B

I'm guessing the UV4L streaming server will use 25-50% of the CPU while transmitting at 1080p, 30 fps (I mostly use a Pi 2 with the camera). However, I don't think it occupies much RAM, it just requires the chunk set aside for the GPU. Note you don't need to run a web server along side this unless motion requires it, U4VL has an HTTP interface.

  • I did find a way to do this in a sense. Install motioneye on a linux machine, or VM inside windows, and point all the camera streams there. Then you can connect to motioneye on that machine and see all the streams.
    – CareFree
    Commented Jul 21, 2016 at 12:29
  • If you have found a way to do what you want (approximately) and have a few minutes, please leave an answer of your own. You should then be able to tick that one instead -- I won't be offended ;) -- although the system may make you wait 24 hours or something.
    – goldilocks
    Commented Jul 21, 2016 at 12:31

open-ipcamera is a collection of bash scripts that automates the configuration of a Raspberry Pi into a motion detection/streaming solution which could be quickly adapted to your requirements.

And encoding is optimized by open-ipcamera uses CPU Affinity to ring-fence core 3 for exclusive use of Motion to encode captured images. Cores 0-2 are for everything else.

With some tweaking, you could tailor open-ipcamera to drop the images onto an NFS share mounted onto a webserver I guess. open-ipcamera's current config is to write captured images to a USB Flash drive. A script then punts the images up to Dropbox and deletes their local copies to stop the USB Flash drive from filling to 100% capacity. THIS is the area of open-ipcamera you'd need to hack to achieve your desired behaviour.

Otherwise, configuring *open-ipcamera is quite easy: clone the repo from github into the Pi use's home, plug in your local details into (2) variables files and execute the install script. Don't have to edit any config files on the Pi. Most of the complexity has been abstracted into plugging your data into variables, so ***open-ipcamera* doesn't have a high skills burden to use and it is well documented:

open-ipcamera Repo Download

open-ipcamera Wiki

open-ipcamera YouTube Channel


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.