Giter Club home page Giter Club logo

rponvif's Introduction

RPOnvif - IN DEVELOPMENT STAGE -

RPOnvif will stream a Raspberry PI's Camera, Desktop, Slideshow, Picture, or a Webpage to a Network Video Recorder (NVR). RPOnvif will be a virtual ONVIF IP camera which will capture a Raspberry Pi's screen, and webcams among other things, then stream them as real-time live video feeds from a Raspberry Pi. Using the ONVIF standard means that RPOnvif will be compatible with many Network Video Recorders (NVR's).

Features - Autostart, Run in background, Auto discovery over the network. Stream the output of a browser / web page.

Streaming protocol / RTSP, RTP. Using GStreamer.

WEBKIT WPE-BASED WEB BROWSER SOURCE ELEMENT.

RTSP SERVER: ONVIF standard - Camera protocol / ONVIF , Profile S & T ready. ONVIF authentication / WS-UsernameToken.

The steps I took are as follows:

Starting off by installing latest OS on a Raspberry PI 3.

2019-09-26-raspbian-buster.img / "Raspbian GNU/Linux 10 (buster)"

To check what version OS is on your Raspberry PI.

$ cat /etc/os-release

PRETTY_NAME="Raspbian GNU/Linux 10 (buster)" NAME="Raspbian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=raspbian ID_LIKE=debian

If you want a bit more information, such as what linux kernel you are running, you can also try:

$ uname -a

Linux raspberrypi 4.19.75-v7+ #1270 SMP Tue Sep 24 18:45:11 BST 2019 armv7l GNU/Linux

STEP 1 - ENABLE RASPBERRY PI CAMERA

Run ‘sudo raspi-config’ enable the camera and reboot. Make sure your GPU memory is set to 128.

STEP 2 - INSTALL NODEJS AND NPM Assuming that node is NOT installed on your Raspberry Pi.

$ curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n
$ sudo bash n lts

Make cache folder, and take ownership.

$ sudo mkdir -p /usr/local/n
$ sudo chown -R $(whoami) /usr/local/n

Take ownership of node and install destination folders.

$ sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share
$ Install n
$ npm install -g n

At this point the latest node and npm should be installed. Command for node is node –v and the command for npm is npm –v

At this point you can install whatever version of node you want by typing the following.

$ n 8
$ n 10

To switch between versions type “n” and enter. Arrow down or up to the version you want.

Currently I'm only using node v8.17.0 (with npm 6.13.4) or node v10.18.1 (with npm 6.13.4)

More information at https://github.com/tj/n

STEP 3 - GET RPOS SOURCE, AND INSTALL DEPENDENCIES

$ git clone https://github.com/BreeeZe/rpos.git
$ cd rpos
$ npm install

STEP 4 - COMPILE TYPESCRIPT(.ts) TO JAVASCRIPT(.js) using GULP While still in the rpos directory.

$ npx gulp

STEP 5 - INSTALL GSTREAMER USING APT:

While still in the rpos directory.

$ sudo apt install git gstreamer1.0-plugins-bad gstreamer1.0-plugins-base
$ sudo apt install git gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly
$ sudo apt install git gstreamer1.0-tools libgstreamer1.0-dev libgstreamer1.0-0-dbg
$ sudo apt install git libgstreamer1.0-0 gstreamer1.0-omx
$ sudo apt install git libgstreamer-plugins-base1.0-dev gtk-doc-tools

STEP 6 INSTALL GST-RPICAMSRC FROM SOURCE

$ cd ..
$ git clone https://github.com/thaytan/gst-rpicamsrc.git
$ cd gst-rpicamsrc
$ ./autogen.sh
$ make
$ sudo make install
$ cd ..

Check successful plugin installation by executing

$ gst-inspect-1.0 rpicamsrc

STEP 7 - EDIT CONFIG

Edit rposConf.json to fit your application.

Options include:

Add a Username and Password for ONVIF access. Change the TCP Port for the Camera configuration and the ONVIF Services. Change the RTSP Port. Enable PTZ support by selecting Pan-Tilt HAT or RS485 backends (Visca and Pelco D). Enable multicast. Switch to the mpromonet or GStreamer RTSP servers. Hardcode an IP address in the ONVIF SOAP messages. Initial setup is now complete!

STEP 8 - RUN RPOS.JS Launch RPOS to start the application:

$ cd rpos
$ node rpos.js

EXTRA CONFIGURATION ON PAN-TILT HAT The camera on the Pan-Tilt hat is usually installed upside down. Goto the Web Page that runs with //rpos http://:8081 and tick the horizontal and vertial flip boxes and apply the changes.

Compiled installation and script from the following.

TJ Holowaychuk AKA tj - https://github.com/tj Johnny Wan AKA johnnyxwan - https://github.com/johnnyxwan Jeroen Versteege AKA BreeeZe - https://github.com/BreeeZe

rponvif's People

Contributors

cmon69 avatar

Stargazers

Faizan Bashir avatar  avatar  avatar

Watchers

James Cloos avatar  avatar

rponvif's Issues

Installing, getting stuck

After taking ownership of the directory trees it says on your Guide

"Install n"

That command doesn't work.

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.