Kerberos.io是一个免费的视频监控系统,可以直接安装在树莓派上面,如果没有树莓派等设备也可以通过手动安装的方式安装在普通的Linux机器上。
首先准备一个USB摄像头插到物理机上,然后这边我使用Proxmox虚拟化,虚拟机系统环境:
Distributor ID: Debian Description: Debian GNU/Linux 9.9 (stretch) Release: 9.9 Codename: stretch
把虚拟机关机,添加USB设备:
选择使用USB供应商/设备ID:
如果USB设备添加正常,这边应该不会出现红字:
虚拟机开机后,使用下面的命令检查一下看设备是否直通到虚拟机内了:
ls /dev/video*
如果有回显就说明成功了:
安装编译后端所需的依赖:
apt -y install build-essential curl git cmake subversion libav-tools \ dh-autoreconf libcurl4-openssl-dev yasm libx264-dev pkg-config libssl-dev
安装PHP:
apt -y install php7.0-cli php7.0-gd php7.0-mcrypt php7.0-curl \ php7.0-mbstring php7.0-dom php7.0-zip php7.0-fpm
安装NodeJS:
curl -sL https://deb.nodesource.com/setup_12.x | bash - apt -y install nodejs
安装Nginx:
apt -y install nginx
安装FFMPEG:
wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz tar -xJf ffmpeg-release-amd64-static.tar.xz cd ffmpeg-4.1.3-amd64-static cp ffmpeg /usr/bin && cp ffprobe /usr/bin && cp qt-faststart /usr/bin cd .. rm -rf ffmpeg-4.1.3-amd64-static && rm -rf ffmpeg-release-amd64-static.tar.xz
或者直接用APT包管理器安装也可以:
apt -y install ffmpeg
编译安装后端服务:
cd /opt && git clone https://github.com/kerberos-io/machinery cd machinery && mkdir build && cd build cmake .. && make && make check && make install
打开配置文件:
nano /etc/opt/kerberosio/config/config.xml
默认的配置文件内,使用的设备是RaspiCamera,这里可以更改为USBCamera或者IPCamera,因为我们这里是使用的USB设备,那么这里应该改为USBCamera:
然后在前台运行一次看看:
kerberosio
回显有如图字样说明工作正常:
之后键盘组合键Ctrl+C退出来,使用systemd放到后台运行:
systemctl start kerberosio systemctl enable kerberosio
拉取前端所需的文件以及安装依赖:
cd /var/www && git clone https://github.com/kerberos-io/web && cd web curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/bin/composer composer install
设置好对应的权限:
chmod -R 777 storage chmod -R 777 bootstrap/cache chmod 777 config/kerberos.php
构建前端资源:
npm -g install bower cd public bower --allow-root install
把Nginx默认的两个配置文件改个名:
mv /etc/nginx/sites-enabled/default /etc/nginx/sites-enabled/default.bak mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
新建一个站点配置文件:
nano /etc/nginx/conf.d/kerberosio.conf
写入:
server { listen 80; root /var/www/web/public; server_name 192.168.0.123; index index.php index.html index.htm; location / { autoindex on; try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
启动Nginx:
systemctl start nginx systemctl enable nginx
浏览器访问虚拟机的IP,可以看到WEBUI了:
设置一个管理员账号密码:
系统面板:
实时监控:
特色功能是运动检测,即视频监控的画面有变化时可以自动帮你截取图像或是录制视频,但是我不知道是不是因为我哪里没配置好的原因,视频无法录制,所以在运动检测这块改为用截取图像的方法,首先要绘制一个检测区域:
设置参数:
输出方式改为使用图像即可:
貌似这个有点鸡肋,不支持多摄像头,也可能是没找到设置的地方。。因为不能录制视频我也不想折腾了。。
参考文献:
https://doc.kerberos.io/2.0/installation/Generic