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了:
设置一个管理员账号密码:
系统面板:
实时监控:
特色功能是运动检测,即视频监控的画面有变化时可以自动帮你截取图像或是录制视频,但是我不知道是不是因为我哪里没配置好的原因,视频无法录制,所以在运动检测这块改为用截取图像的方法,首先要绘制一个检测区域:
设置参数:
输出方式改为使用图像即可: