闭路电视

来自工场百科

工场使用网络摄像头监控3D打印机数控雕刻机充电器焊台这些重要位置,服务器上的程序收集这些摄像头的视频流,显示在基于网页的总控制台上。要在总控制台查看闭路电视的实时图像,请点击这里登录。

在总控制台主页上单击“Montage”链接即可同时查看所有摄像头的视频

各摄像头地址

若想直接访问各个网络摄像头的视频流,可以使用VLC Media Player等软件打开它们。此时使用的用户名和密码是另一套,与总控制台不同。

编号 位置 MAC地址 内网IP
1 门口 E0:B9:4D:92:80:78 10.2.10.85

配置过程

服务器上使用ZoneMinder收集网络摄像头(海康威视萤石C2C和C2 mini)的图像并将其广播。

  1. 添加这个PPA:
    sudo add-apt-repository ppa:iconnor/zoneminder
  2. 安装ZoneMinder:
    sudo apt install zoneminder
  3. ZoneMinder在系统中注册了服务,必要时使用service zoneminder start/stop/restart来控制它的运行。
  4. Nginx配置文件示例添加进www.thu-skyworks.org的配置文件。将所有zm改为cctv,php5改为php7.0
  5. 访问 https://www.thu-skyworks.org/cctv/ ,添加Monitor。其中Source Type选Ffmpeg,Source Path填写rtsp://<usernmae>:<password>@<address>

解决无法查看视频

系统日志标明Capturing正常,但浏览器中打开摄像头无法看到视频,同时日志中出现错误:

socket_sendto( /tmp/zm/zms-XXXXXXs.sock ) failed: No such file or directory

getStreamCmdResponse stream error: socket_sendto( /tmp/zm/zms-XXXXXXs.sock ) failed: No such file or directory - checkStreamForErrors()

  • 根据这里8楼给出的操作,无效。
  • 根据这里的二楼判断是CGI没有正常执行,但之前启用Apache的CGI模块没有效果。开始寻找正确配置Apache CGI模块的方法。
  • 这里了解到可能是libapache2-mod-perls未安装,并且重启浏览器才能看到效果。安装libapache2-mod-perls后重启浏览器,图像显示正常。

2017年3月16日更新

在新服务器上配置Zoneminder,遇到同样错误。由于这次HTTP服务器是Nginx,从这里得知需要安装nginx-extrasfcgiwrap。并且Options -> Paths -> PATH_ZMS需要从默认的/cgi-bin/nph-zms改为/cctv/cgi-bin/nph-zms

2017年3月23日更新

发现整个服务器同一时刻只能在客户端浏览器上输出一路视频,包括实时预览还是事件回放。在这里得知是因为fcgiwrap不会自己启动子进程。修改/etc/default/fcgiwrap中或/etc/init.d/fcgiwrap中的FCGI_CHILDREN无效,随后直接在/lib/systemd/system/fcgiwrap.service-c 20加入fcgiwrap的启动参数,systemctl daemon-reload之后重启fcgiwrapzoneminder,问题解决。

Xeoma探测到的萤石C2 mini码流地址

[512x288 25 fps h264 1Mb] rtsp://10.2.10.85//PSIA/Streaming/channels/2

[1280x720 18 fps h264 2Mb] rtsp://10.2.10.85/

[1280x720 18 fps h264 3Mb] rtsp://10.2.10.85//11

[1280x720 18 fps h264 1Mb] rtsp://10.2.10.85//iphone/11?admin%3AATREDJ

[1280x720 16 fps h264 4Mb] rtsp://10.2.10.85//live0.264

[1280x720 16 fps h264 3Mb] rtsp://10.2.10.85//0/admin:ATREDJ/main