闭路电视

来自工场百科
Wrx10留言 | 贡献2017年3月21日 (二) 18:59的版本

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

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

各摄像头地址

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

编号 位置 MAC地址 视频流地址 内网IP
1 门口 8C-18-D9-A1-A0-1A rtsp://www.thu-skyworks.org:3201/live0.264 192.168.200.61
2 电池充电器 8C-18-D9-A1-A0-58 rtsp://www.thu-skyworks.org:3202/live0.264 192.168.200.62
3 数控雕刻机 CC-D2-9B-A9-03-09 rtsp://www.thu-skyworks.org:3203/live0.264 192.168.200.63
4 3D打印机 24-0A-64-E4-E0-EB rtsp://www.thu-skyworks.org:3204/live0.264 192.168.200.64

上表给出的视频流地址为高分辨率(1280×720),若需要查看低分辨率视频(352×288),需要将地址中的live0.264改成live1.264

应对动态IP的方法

此方法适用于摄像头接入校园网的情况,目前摄像头已移入内网。

若IP地址改变,在Linux下用 sudo nmap -sn 59.66.250.0/24 | grep -B2 '8C:18:D9:A1:A0:1A\|8C:18:D9:A1:A0:58\|CC:D2:9B:A9:03:09\|24:0A:64:E4:E0:EB' 命令扫描整个网段,可以看到如下扫描结果:

Nmap scan report for 59.66.250.47
Host is up (0.056s latency).
MAC Address: 8C:18:D9:A1:A0:1A (Unknown)
--
Nmap scan report for 59.66.250.55
Host is up (0.0073s latency).
MAC Address: 24:0A:64:E4:E0:EB (AzureWaveTechnologies)
Nmap scan report for 59.66.250.56
Host is up (-0.061s latency).
MAC Address: CC:D2:9B:A9:03:09 (Shenzhen Bopengfa Elec&Technology CO.)
--
Nmap scan report for 59.66.250.92
Host is up (-0.074s latency).
MAC Address: 8C:18:D9:A1:A0:58 (Unknown)

配置过程

服务器上使用ZoneMinder收集网络摄像头(龙视安 LS-K04)的图像并将其广播。

  1. 添加这个PPA:
    sudo add-apt-repository ppa:iconnor/zoneminder
  2. 安装ZoneMinder:
    sudo apt-get install zoneminder
  3. ZoneMinder在系统中注册了服务,必要时使用service zoneminder start/stop/restart来控制它的运行。
  4. 将Apache的配置文件复制到正确目录下:
    sudo cp /etc/zm/apache.conf /etc/apache2/conf-available/zoneminder.conf
  5. 启用该配置文件,a2enconf程序会在/etc/apache2/conf-enabled下做一个同名软链接:
    sudo a2enconf zoneminder
  6. 修改/etc/apache2/conf-available/zoneminder.conf的第一行为:
    Alias /zm /usr/share/zoneminder --> Alias /cctv /usr/share/zoneminder
  7. 访问 http://www.thu-skyworks.org/cctv/ ,添加Monitor。其中Source Type选Ffmpeg,Source Path填写rtsp://<usernmae>:<password>@<address>/live0.264

解决无法查看视频

系统日志标明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

[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