Code Monkey home page Code Monkey logo

linux-nvr's Introduction

linux-nvr

This is a simple python script to use a Linux machine as an NVR. The code streams video from IP cameras in your network and splits the video into pre-determined segments (by default, 10 minute-long segments). The videos are stored in your local hard-drive. If you do not need any fancy GUIs, motion detection, etc., this is a simple tool to build your own NVR with cheap cameras purchased online.

This is achieved using RTSP protocol, and the code calls openRTSP. See prerequisites for openRTSP installation instructions.

Usage:

python record.py --camera camera1 --record-period 600

Please edit camera1's IP address in the code. Also, you might need to modify the RTSP command in record.py to match your camera's format. You can find that format from the camera's user manual. This webpage also has a comprehensive list of RTSP commands for many brands.

Deleting old videos

I use a cron job to delete old videos. You can find an example here.

Motivation

In theory, openRTSP should automatically perform streaming the video and splitting it into pre-determined chunks. In practice, I found out that RTSP connections drop and saved files are much longer than they should be, with frequent errors. The goal of this script is to run openRTSP only for relatively short periods of time (10 minutes each), and open a new stream every 10 minutes.

Prerequisites

Follow the instructions below to install openRTSP (taken from here):

  • Run as root:

sudo -i

  • Go to /usr/src:

cd /usr/src

  • Get the live555 liveMedia source code:

wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz

  • Unpack it:

tar -xzf live555-latest.tar.gz

  • Go into the directory that's just been unpacked:

cd live

  • Generate the make files:

./genMakefiles linux

  • Build the code:

make

  • Install the new version:

make install

  • Stop being root:

exit

linux-nvr's People

Contributors

gokce-keskin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.