SvenVD / rpisurv

Raspberry Pi surveillance
https://rpisurv.net
GNU General Public License v2.0
625 stars 101 forks source link
ip-camera ipcam ipcamera omxplayer raspberry-pi raspberry-pi-3 raspberry-pi-4 raspberry-pi-camera raspberrypi rpisurv rtsp surveillance

Rpisurv 3 - Raspberry Pi surveillance

Rpisurv 3 will be the last version of Rpisurv. It's spiritual successor is OpenSurv.

OpenSurv is no longer limited to Raspberry Pi, allowing for more powerful and versatile hardware options while keeping the features from Rpisurv. This enables potential sub-second latency and support for more simultaneous streams, all while maintaining a low power profile, as tested with hardware like the Intel N100 chipset.

Join the community on https://community.rpisurv.net (Please use this place for support questions instead of github issues).
Bug tracking https://github.com/SvenVD/rpisurv/issues.
Follow on facebook https://www.facebook.com/rpisurv.
Have a chat on https://gitter.im/rpisurv/general.

What is Rpisurv?

Rpisurv is a free application that transforms your Raspberry Pi into a dedicated device to display video streams or images.

Take a look at some showcases

Screenshot

Features

Self-healing and health monitoring including watchdogs
Automatically position streams (no manual coordinates calculation needed)
Rotation of screens (autorotate or with keyboard control)
Multiple types of streams
Dual Hdmi support

How to get started

In short: The idea is to connect your Raspberry Pi to a monitor and tell Rpisurv which stream(s) and screen(s) it should display or cycle between. Rpisurv will autocalculate all the rest.

Configuration

Rpisurv has the following config files

A screen consists out of multiple streams. A display is the equivalent of a monitor. On a display you can define multiple screens which can be cycled between.

For full config explanation with all possible options consult the config files in /etc/rpisurv after install.

URL sources

file://

This is a path on disk, by default a videofile is expected. This videofile will then be played in an endless loop. If used with imageurl: true then an image file is expected. If the image changes on disk then Rpisurv will also reload the stream with the new image. Note in dual displays mode imageurl type streams are only displayed on 1 display (/etc/rpisurv/display1.yml). TIP: If an external program rotates the images on disk then Rpisurv can thus be used as a frontend for a digital picture frame.

http:// and https://

This is a remote location with a video file or video stream If used with imageurl: true then an image file is expected. If the remote image changes then Rpisurv will also reload the stream with the new image. Note in dual displays mode imageurl type streams are only displayed on 1 display (/etc/rpisurv/display1.yml). TIP: This can be used as part of a digital signage setup: several Rpisurv clients can be steered centrally by changing the image(s) on the central location. Rpisurv will autodetect interruptions and tries to restore the stream.

rtsp:// and rtmp://

This is a remote location with a video stream, Rpisurv will do his best to display the stream, it will autodetect interruptions and tries to restore the stream.

How to update Rpisurv to new version

Release notes

See RELEASE_NOTES

Placeholder images

After installation you may change the placeholder images to something you like.

Rpisurv in operation

If you used the install.sh script, you can configure your streams in /etc/rpisurv. After editing the config files you need to restart Rpisurv for the changes to be in effect.

If you are connected via keyboard/keypad, you can force the next screen by pressing and holding n or space (or keypad "+") for some seconds in case multiple screens were defined (this takes longer depending on amount of unconnectable streams and they thus need to wait for timeout, keep holding until screen changes. Note, you can change probe_timeout per camera stream if needed).

Keys F1 to F12 (or keypad 0 to 9), will force the equal numbered screen to be shown onscreen (this takes longer depending on amount of unconnectable streams and they thus need to wait for timeout, keep holding until screen changes. Note, you can change probe_timeout per camera stream if needed).

Disable rotation (as in pause rotation, as in fix the current displayed screen) dynamically during runtime. By pressing "p" (or keypad "*") to pause or "r" (or "," or keypad ".")' to resume/rotate. This overrides the disable_autorotation option if this has been set in the config file.

Touchscreen control: The width of the screen is divided in four sections,

In case of dual HDMI then the screens on both displays will be controlled at the same time.

Troubleshooting

Feature requests

Feature requests are tracked on https://community.rpisurv.net. If you would like to have a feature implemented on rpisurv, please check that this is not already been requested on https://community.rpisurv.net. If it is then add your vote to it, if it is not then request it as a new feature. The votes give us an indication on how feature requests compare to each other regarding popularity.