Jump to content


Photo

Kerberos.io video surveillance installation on Armbian


  • Please log in to reply
21 replies to this topic

#1 makama80

makama80

    Member

  • Senior Members
  • PipPip
  • 27 posts

Posted 17 January 2017 - 06:22 PM

UPDATE 11-FEB-2017: Version 2.2.0 is released: now including video recording in stead of only images and also a privacy option to black out areas that may not be filmed.

 

Kerberos.io (link) is a relative new video surveillance program focusing mainly on the Raspberry Pi. In collaboration with the owner of the github project I managed to get it working on my Orange Pi Plus and PCDuino3 nano using Armbian (Debian Jessie) and a Logitech UVC compatible USB webcam. It consists of 2 modules: the Machinery module and Web module. The machinery module was very Raspberry Pi specific, but is now updated and can also run with very little extra effort on Armbian. The Web module runs without any modification.
 
Follow the instructions below and you should be able to install or compile it. Kerberos.io is very fast and has a modern interface. Furthermore it is (IMHO) a very nice alternative for zoneminder and motion.It also provides a videostream on a webpage.
 
Follow the instructions below and share your comments, ideas etc.

 

Method 1 (easy) - Install on Armbian Debian Jessie.

Follow the instructions on the dedicated Armbian page (link). Here you will find an Armbian precompiled .deb armhf package. Further installation / configuration options can be found on the Kerberios.io webpages.

 

Method 2 (advanced) - Compiling the machinery and web module on Armbian Debian Jessie.

Install the following packages: sudo apt-get install pkg-config libavcodec-dev libavformat-dev libswscale-dev

Follow the instructions on this page (link). Further installation / configuration options can be found on the Kerberios.io webpages.

 

 

In all cases: please note that you must alter the camera configuration: default it comes with the Raspberry Pi camera that you probably won't have!


  • manuti and Tom_Neverwinter like this

#2 Tom_Neverwinter

Tom_Neverwinter

    Newbie

  • Senior Members
  • Pip
  • 8 posts

Posted 19 January 2017 - 07:19 AM

 can you also show how to use this with the orangepi camera if possible?



#3 msev

msev

    Advanced Member

  • Senior Members
  • PipPipPip
  • 76 posts

Posted 19 January 2017 - 11:04 AM

This is awesome! So if I copy those files for rpi-cam first i could use the .deb from the website? Which one, for Rpi3 or Rpi2?  Could you perhaps host the needed rpi camera files somewhere?

 

What do you think hardware-vise, would a 512mb Ram H3 orange take it? Or is 1gb required?


  • Tom_Neverwinter likes this

#4 makama80

makama80

    Member

  • Senior Members
  • PipPip
  • 27 posts

Posted 19 January 2017 - 02:04 PM

 can you also show how to use this with the orangepi camera if possible?

 

My orangepi camera is not working anymore: the connector is defective I think. However: to my humble knowledge the orange pi camera is functioning as an ordinary USB camera: therefore if you install the program as described (make sure you define the 'USBCamera' in the config file) and select an existing resolution of the OPI cam I guess that it should work.


  • Tom_Neverwinter likes this

#5 makama80

makama80

    Member

  • Senior Members
  • PipPip
  • 27 posts

Posted 19 January 2017 - 02:09 PM

This is awesome! So if I copy those files for rpi-cam first i could use the .deb from the website? Which one, for Rpi3 or Rpi2?  Could you perhaps host the needed rpi camera files somewhere?

 

What do you think hardware-vise, would a 512mb Ram H3 orange take it? Or is 1gb required?

 

I think it will run on 512 mb without problems, especially if you install a non-desktop version. My OPI+ runs with desktop version of Armbian and Kerberos.io and Motion together using approx 350 MB of RAM.

 

I still have to test if the .deb file + RPI libraries work. I guess it will, but am not sure. Compiling is quite easy and makes sure it will work.

 

I will have a look if I can post the libraries here: they are only needed for compiling and running, but are actually not used because there is no such thing as a raspicam under Armbian. But please give me some time. I will try to have a look in the weekend.


  • Tom_Neverwinter likes this

#6 msev

msev

    Advanced Member

  • Senior Members
  • PipPipPip
  • 76 posts

Posted 22 January 2017 - 11:40 AM

Thanks Makama! You are awesome! Btw have you maybe tried out also IP-cams?



#7 makama80

makama80

    Member

  • Senior Members
  • PipPip
  • 27 posts

Posted 22 January 2017 - 03:15 PM

Yes I did. I duplicated the videostream (using vloopback and ffmpeg) from /dev/video0 to /dev/video1 and /dev/video2. I had defined 2 camera's in Kerberos.io: 1 USB on /dev/video1 and had Motion running at the same time on /dev/video2.

 

Subsequently I took de IP stream from Motion and used it successfully as second camera (however, picture / videdo was the same of course since vloopback duplicated the cam on /dev/video0).

 

So it is pseudo-IP camera, but the concept works.



#8 msev

msev

    Advanced Member

  • Senior Members
  • PipPipPip
  • 76 posts

Posted 23 January 2017 - 10:12 AM

Cool, nice. Another question, K.IO can handle only 1 camera per instance right? So for multi-camera system's I'd have to run multiple instances of K.IO, right?



#9 makama80

makama80

    Member

  • Senior Members
  • PipPip
  • 27 posts

Posted 23 January 2017 - 09:45 PM

That is correct. Some more info can be found on the Kerberos.io website or try Google.



#10 Tom_Neverwinter

Tom_Neverwinter

    Newbie

  • Senior Members
  • Pip
  • 8 posts

Posted 10 February 2017 - 06:18 AM

sudo wget https://github.com/k...armhf-2.1.0.deb
dpkg -i download/v2.1.0/rpi3-machinery-kerberosio-armhf-2.1.0.deb

looks like it should be;

sudo wget https://github.com/k...armhf-2.1.0.deb

dpkg -i rpi3-machinery-kerberosio-armhf-2.1.0.deb

we didnt change directories, please also use <> for code, as it will not shorten addresses. 

 

 

I also made it even easier to get those files that are required by kerbereros

sudo wget https://github.com/Tom-Neverwinter/kerberosiolibs/raw/master/libavformat.so.56
sudo wget https://github.com/Tom-Neverwinter/kerberosiolibs/blob/master/libcontainers.so
sudo wget https://github.com/Tom-Neverwinter/kerberosiolibs/blob/master/libmmal.so
sudo wget https://github.com/Tom-Neverwinter/kerberosiolibs/blob/master/libmmal_components.so
sudo wget https://github.com/Tom-Neverwinter/kerberosiolibs/blob/master/libmmal_core.so
sudo wget https://github.com/Tom-Neverwinter/kerberosiolibs/blob/master/libmmal_util.so
sudo wget https://github.com/Tom-Neverwinter/kerberosiolibs/blob/master/libmmal_vc_client.so
sudo wget https://github.com/Tom-Neverwinter/kerberosiolibs/blob/master/libswscale.so.3
sudo wget https://github.com/Tom-Neverwinter/kerberosiolibs/blob/master/libvchiq_arm.so
sudo wget https://github.com/Tom-Neverwinter/kerberosiolibs/blob/master/libvcos.so
sudo wget https://github.com/Tom-Neverwinter/kerberosiolibs/blob/master/libvcsm.so

mv libavformat.so.56 /etc/opt/kerberosio/config
mv libcontainers.so /etc/opt/kerberosio/config
mv libmmal.so /etc/opt/kerberosio/config
mv libmmal_components.so /etc/opt/kerberosio/config
mv libmmal_core.so /etc/opt/kerberosio/config
mv libmmal_util.so /etc/opt/kerberosio/config
mv libmmal_vc_client.so /etc/opt/kerberosio/config
mv libswscale.so.3 /etc/opt/kerberosio/config
mv libvchiq_arm.so /etc/opt/kerberosio/config
mv libvcos.so /etc/opt/kerberosio/config
mv libvcsm.so /etc/opt/kerberosio/config

Yes this code is ugly ^^^ (but I want to make 8+ of these things)

if I commit the config and camera.xml files and this will be even easier

 

Two small changes to setting up the board for ease of use and later on when it should record timestamps;

dpkg-reconfigure tzdata

nmtui-connect SSID

finally installation just in case; 

nand-sata-install

I attempted to;

sudo modprobe gc2035
sudo modprobe vfe_v4l2

to get the orangepi onboard camera to show up but it hangs so :(

lsusb only shows;

Bus 008 Device 002: ID 06a3:8021 Saitek PLC Eclipse II Keyboard
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 002: ID 046d:c01b Logitech, Inc. MX310 Optical Mouse
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 
after the first attempt I could no get the ngix server to even start and it seems it does need some of those files.
 

attempt #2

THIS IS BROKEN, DEPRECIATED SCRIPT!;

curl -sL https://deb.nodesource.com/setup | sudo bash - 
sudo apt-get install git nginx php5-cli php5-fpm php5-gd php5-mcrypt php5-curl nodejs

The ability to reboot is also lost somewhere in here or I am running a different version causing conflicts.

 

If you could post a working image that would be much more useful. use win32 diskimager to clone the card



#11 makama80

makama80

    Member

  • Senior Members
  • PipPip
  • 27 posts

Posted 10 February 2017 - 08:23 AM

Hi Tom,

 

Please hold your horses. A new version is on the way and will be released on a short notice. The author of Kerberosio has implemented some steps to see if the code runs on a Raspberry Pi. If not (when running e.g. Armbian) the libraries and Raspberry Pi Cam are skipped automatically. Compiling will even be easier: the only difference for Armbian is that the libraries for compiling OpenCV are needed. I have prepared a special Armbian page that will be put on the Kerberos.io site.

 

Also video recording is implemented now, and a new privacy feature that blacks out areas that e.g. may not be filmed due to privacy regulations. I have the beta already up and running on Armbian.

 

Then about your camera: it seems like you have another problem. It should show up when typing lsusb anyway, regardless if you have loaded gc2035 / vge_v4l2 or not. I have the same problem with my Orange Pi plus: I suspect the connector of my board, since I already tried 3 camera's. It worked in the past... Therefore I bought a Logitech C270: not expensive (available under 20 Euro) and works out of the box: no module loading necessary. UVC is loaded automatically. Resolution is up to 1280x960 at 5 fps.

 

Furthermore weird that you get conflicts: did you start with a fresh install? I've compiled on 3 different boards with fresh Armbian installations yesterday evening... A working image is on it's way: as soon as it is released by the owner of Kerberos.io... But as usual: it's ready when it's done, and it is done when it's ready!

 

However, you can try a Raspberry Pi 3 image. Instructions can be found on the website of Kerberos.io (link). This is how I started, and should run if you install libav-tools and the Raspberry Pi libraries. Note that this version does not record video yet.


  • Tom_Neverwinter likes this

#12 makama80

makama80

    Member

  • Senior Members
  • PipPip
  • 27 posts

Posted 11 February 2017 - 10:30 AM

Version 2.2.0 is released! Please go to the Kerberos.io website (link) for detailed instructions. This is a dedicated Armbian page.


  • tkaiser likes this

#13 RagnerBG

RagnerBG

    Advanced Member

  • Senior Members
  • PipPipPip
  • 160 posts

Posted 11 February 2017 - 09:37 PM

Version 2.2.0 is released! Please go to the Kerberos.io website (link) for detailed instructions. This is a dedicated Armbian page.

Can't run kerberosio in Armbian Xenial 5.25 i installed everything from the instructions:

kerberosio: error while loading shared libraries: libavcodec.so.56: cannot open shared object file: No such file or directory

but it is there:

libavcodec-ffmpeg.so.56 => /usr/lib/arm-linux-gnueabihf/libavcodec-ffmpeg.so.56 (0xb5e75000)

I am not sure what this mean:

~$ sudo ldconfig -v | grep libavcodec.so
/sbin/ldconfig.real: Path `/lib/arm-linux-gnueabihf' given more than once
/sbin/ldconfig.real: Path `/usr/lib/arm-linux-gnueabihf' given more than once
/sbin/ldconfig.real: /lib/arm-linux-gnueabihf/ld-2.23.so is the dynamic linker, ignoring

        libavcodec-ffmpeg.so.56 -> libavcodec.so

ffmpeg is from standard repos:

ffmpeg version 2.8.10-0ubuntu0.16.04.1 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 20160609
  configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100

Maybe i have to compile it from source. I miss vdpau and libx265 for example. Or to try to install libavcodec from ubuntu-restricted-extras/libavcodec-extra?


  • Tom_Neverwinter likes this

#14 makama80

makama80

    Member

  • Senior Members
  • PipPip
  • 27 posts

Posted 12 February 2017 - 08:24 AM

Hi Ragner,

 

Like mentioned in the 1st post: it's intended for Debian Jessie. Did not test it on Ubuntu.... A clean install is always recommended when you start with such things...


  • Tom_Neverwinter likes this

#15 RagnerBG

RagnerBG

    Advanced Member

  • Senior Members
  • PipPipPip
  • 160 posts

Posted 12 February 2017 - 02:54 PM

Like mentioned in the 1st post: it's intended for Debian Jessie.

Oh, i missed that. I guess i have to try build it, instead of installing the .deb.


  • Tom_Neverwinter likes this

#16 makama80

makama80

    Member

  • Senior Members
  • PipPip
  • 27 posts

Posted 12 February 2017 - 03:29 PM

I will try as well to get it running on Ubuntu... the more the better!


  • tkaiser likes this

#17 makama80

makama80

    Member

  • Senior Members
  • PipPip
  • 27 posts

Posted 12 February 2017 - 05:19 PM

I've tried Ubuntu: for now it seems to be a no-go. Compiling of the machinery module works fine, but the web module is a showstopper: refer to the spoiler. So please stick to a clean install of Debian Jessie!

 

Maybe referring to another repository can solve this, but your mileage may vary. Please be careful when doing this! Again: this kind of stuff should preferably be done on a dedicated board anyway, so why not install Debian?

 

Spoiler



#18 RagnerBG

RagnerBG

    Advanced Member

  • Senior Members
  • PipPipPip
  • 160 posts

Posted 12 February 2017 - 09:37 PM

so why not install Debian?

No particular reason. Just had Ubuntu at hand. Machinery module installs in my case, but can't start with above error. I didn't reach to web module, just try to execute kerberosio. Is web module necessary for machinery module to execute? Anyway, i will try Debian.



#19 Tom_Neverwinter

Tom_Neverwinter

    Newbie

  • Senior Members
  • Pip
  • 8 posts

Posted 13 February 2017 - 01:33 AM

The installation tutorial works. The camera for orangepi still is not detected though. it is SCI and not USB. (I am not paying 20$ for each one of the 10 camera systems I already have.



#20 makama80

makama80

    Member

  • Senior Members
  • PipPip
  • 27 posts

Posted 13 February 2017 - 06:54 AM

Isn't the Orange Pi camera present as /dev/video0 then? Otherwise maybe replicate the stream with vloopback... That worked for me as well...

If you select USBCamera in the config file and set the device number of /dev/videoX where X is your device number, it should be there.

 

Or doesn't your Orange Pi camera appear in the list when you issue the lsusb command? It works with motion using /dev/video0 as well, that I know for sure.



#21 tkaiser

tkaiser

    Advanced Member

  • Moderators
  • 2842 posts

Posted 13 February 2017 - 10:54 AM

I've tried Ubuntu: for now it seems to be a no-go.

 

Sorry, but it's exactly the other way around. Using PHP5 in 2017 is an absolute no-go: 

Better try to get this stuff running with PHP7 instead and update instructions later. :)


  • Tom_Neverwinter likes this

Please don't send personal messages! Use the forum so others can participate and benefit!

 

Before you report any problem please be aware that crappy SD cards and insufficient power supply are reason N° 1 why things are failing. Try to rule this out first please, check 'getting started' recommendations and check/provide 'sudo armbianmonitor -u' output first!

 

Did you check out custom google powered forum search already (before opening new threads or asking questions)?


#22 makama80

makama80

    Member

  • Senior Members
  • PipPip
  • 27 posts

Posted 13 February 2017 - 12:46 PM

I know the PHP5 branch is EOL. First objective was to get it running at all. Initially it did not run at all on Armbian due to the fact that the software assumed it was running on a Raspberry Pi. I guess PHP7 will be the next challenge. Will ask the owner of Kerberos.io.... And of course do some fiddling myself...


  • tkaiser and Tom_Neverwinter like this