Raspberry Pi Onvif Server
Node.js based Onvif Soap service. (http://www.onvif.org)
Initial goal was to provide a Onvif Media service which is compatible with Synology Surveillance Station to allow the Pi to be used as a surveillance camera without the need for adding any custom camera files to your Synology NAS. First demo video @ https://youtu.be/ZcZbF4XOH7E
The next goal (by @RogerHardiman) was to implement more of the Onvif standard so the Raspberry Pi could be used with a wide range of CCTV systems and with ONVIF Device Manager and ONVIF Device Tool.
This version uses a patched version of the "node-soap" v0.80 library (https://github.com/vpulim/node-soap/releases/tag/v0.8.0) located @ https://github.com/BreeeZe/node-soap
#Features:
- Streams H264 video over rtsp
- Camera control (resolution and framerate) through Onvif
- Set other camera options through a web interface.
- Discoverable (WS-Discovery) on Pi/Linux
- Works with ONVIF Device Manager (Windows) and ONVIF Device Tool (Linux)
- Works with other CCTV Viewing Software that implements the Onvif standard
- Implements PTZ service
- Implements Relay (digital output) function
- Supports Unicast (UDP/TDP) and Multicast using mpromonet's RTSP server
#How to:
Install the live555 library to stream h264 video over rtsp [ source http://forum.synology.com/enu/viewtopic.php?f=82&t=69224&start=15#p289293 ] :
*login to your pi via ssh
cd /home/pi/
wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz
tar xvzf live555-latest.tar.gz
cd live
./genMakefiles linux
make
#delete sources
cd ..
rm live -r -f
Install nodejs on your pi (http://weworkweplay.com/play/raspberry-pi-nodejs/):
wget http://node-arm.herokuapp.com/node_latest_armhf.deb
sudo dpkg -i node_latest_armhf.deb
Download rpos release from github to your pi
XX wget https://github.com/BreeeZe/rpos/releases/download/0.1.0/rpos-0.1.0.zip XX unzip rpos-0.1.0.zip XX cd rpos-0.1.0
Check out the source from github
Optionaly set the service port or other options in rposConfig.json
Then you start rpos by running "sudo node rpos.js"
#Camera settings You can set camera settings by browsing to : http://CameraIP:Port/ These settings are then saved in a file called v4l2ctl.json and are persisted on rpos restart.
#Known Issues
- 1920x1080 can cause hangs and crashes.
#ToDo's
- Add authentication
- Add MJPEG
- Implement more ONVIF calls
- Implement control of Pi-Pan Pan/Tilt hardware
- Add GPIO digital input
- and more...