路由宝 发表于 2021-12-11 09:54

玩客云内置硬盘刷armbian系统做监控存储的尝试

本帖最后由 路由宝 于 2022-5-13 20:04 编辑

手里有几个9.9买的玩客云。门口想装个监控,买了海康的摄像头:DS-SCD3347WDV3-L ,NVR又得好几百不想买了,就想用玩客云将就着用来存监控视频吧。
动手把一块2.5寸的1T机械盘给内置到了玩客云中。

玩客云刷了坛子里的arbmian系统:Armbian_20.12_Aml-s812_buster_dev_5.10.28.img
设置了开机硬盘挂载在/mnt/sda1中。是在/etc/rc.local中用mount挂载的。不建议在/etc/fstab中挂载硬盘,因为不小心打错了或者硬盘没插上等其它原因挂载失败时,系统直接卡住开不了机。
安装了samba 把硬盘共享一下,这样方便电脑手机查看。
直接apt install samba就可以了,安装好编辑/etc/samba/smb.conf
在最下面加入:

      comment = samba test
      path = /mnt/sda1
      browseable = yes
      read only = no
      guest ok = yes
      writable = yes
      
      create mask = 0664
      force create mode = 0664
      directory mask = 0775
      force directory mode = 0775
然后重启smbd服务,
手机就可以搜索到了。
win10电脑上面要开启 SMB 1.0/CIFS 文件共享支持和 SMB 直通,两个功能,
然后添加网络位置 填上   \\玩客云ip   点浏览就可以找到玩客云的共享目录,添加上去就可以直接访问了

安装了ffmpeg,直接apt install ffmpeg安装就可以了。
因为ffmpeg在保存摄像头的rtsp流时,如果流中断了ffmpeg进程会退出,所以写了一个sh 配合计划任务,保证ffmpeg能在意外退出时自动启动。
/root/video-record.sh 内容如下:

#!/bin/bash -e
for ((i=0;i<60;i++))      
do {
   mm=/mnt/sda1/samba/video/$(date +%Y%m%d)/
   if [ ! -d $mm ];then
      mkdir -p $mm
      chmod 777 $mm
   fi
   num=`ps -ef | grep ffmpeg | grep -v grep | wc -l`
   if [ $num -lt 1 ];then
         ffmpeg-stimeout 5000000 -rtsp_transport tcp-i rtsp://video:admin123@192.168.1.250:8800/Streaming/Channels/1 -c copy -f segment   -reset_timestamps 1 -strftime 1 -segment_time 300 /mnt/sda1/samba/video/%Y%m%d/%H-%M-%S.mp4 >/dev/null 2>&1   
   fi
}&
sleep 1
done

监控视频会被分成每分钟一段的保存在/mnt/sda1/samba/video文件夹中,以年月日命名的文件夹,以时分秒命名的mp4中。

在计划任务 /etc/crontab中添加以计划任务,每分种执行一次
*/1 ** * *root/root/video-record.sh >/dev/null 2>&1 &

在监控摄像头中要设置视频格式为H264 smart格式。
不使用H265是因为后面使用ffmpeg时不用对rtsp视频流做转码,玩客云进行视频转码根本撑不住的。
使用H264格式,使用起来比较方便,虽然占用空间大了一些,经过计算,1920*1080分辨率的高质量视频,
在1T的硬盘空间中,也够持续存储30天以上了,如果适当调低视频品质帧率,存储时间还能大大增加。
这样保存的视频,通过共享访问可以直接用播放器播放查看,如果把保存视频目录链接到搭建的站点目录中,做好外网的端口映射,也可以直接用浏览器打开保存的视频,直接播放。

测试了几天,工作中玩客云cpu基本上没啥压力。因为ffmpeg直接把rtsp流复制保存的,并未进行视频转码,所以cpu使用率几乎都持续在10%以下。

实时网页查看监控视频比较麻烦,现在网页不支持rtsp流播放。所以得把rtsp流转rtmp流 或者http-flv流才能在网页播放。

查找了很久,测试成功了一个。
使用nginx + nginx-http-flv-module-master模块。可以搭建流媒体服务器,然后还是使用ffmpeg推流。
nginx使用的是官网的 nginx-1.14.2
nginx-http-flv-module-master模块可以直接去github上面下载

直接apt 安装的nginx找不到办法安装nginx-http-flv-module-master模块;
所以只能在玩客云上面编译安装nginx + nginx-http-flv-module-master。
因为对这些接触的少,啥也不懂,只能一边百度一边试验,编译过程别提有多辛酸。

编译过程中总是有错误通不过。那些依赖处理起来很头痛。后来找到了一个方法。就是先apt install nginx一下。当提时是否安装时输入:n取消掉安装。查看提示中需要哪些依赖。复制下来全部安装了,
然后再去编译nginx.,最后终于编译成功了,nginx配置就不提了。
推流命令使用的 ffmpeg-re-rtsp_transport tcp -irtsp://video:admin123@192.168.1.250:8800/Streaming/Channels/1 -c copy-f flvrtmp://192.168.1.180:19999/live/101
然后网页中就可以使用flv.js进行播放了,测试有接近10秒的延迟。rtsp流接收后依然是直接copy rtmp推流未做视频转码,所以玩客云的cpu依然没什么压力。不能用ffmpeg进行视频转码操作,测试过,一开始ffmpeg转码,过不了几秒,玩客云直接卡死不动。只能断电重启。

目前还有很多问题,还在继续折腾中,armbian在upgrade后问题较多,基本上撑不过24小时就会卡死,安装后不upgrade要好些。

能力有限,全靠一点一点百度学习,一点一点尝试。坛子里的各位大佬,如果有什么好的方法实现,好的建议,还请不吝赐教
=======================================================================================
后记:
因为死机的问题,当时反复刷机测试了差不多两三个月,一直没办法搞定,最多能撑一周的时间,迟早会死机。
最后只是确定是armbian自身的问题,没有办法解决,论坛里所有能刷上的armbian全都试过了,都会死机,只是迟早的问题!!!!
最后看到论坛里大佬发的破解玩客云原版固件和恢复原版固件的方法,便尝试恢复了玩客云原版固件并root了,
清理了原来的控矿插件,保留了玩客云自带的docker,
然后在docker里面拉取了debian镜像,在容器中实现想要的所有功能。便再也没有死过机了。
截止目前,玩客云和docker最长正常运行时间己经59天了,其实之前己经正常运行了一个月,停了一次电。


1T硬盘可以保存30几天的监控视频,图象品质调的比较高,如果用较低的品质,一天只需要七八G就够了,







oxxo119 发表于 2021-12-11 11:18

这样有什么意义??

wh1tequartz 发表于 2021-12-11 11:18

曾经测试过rtsp、rtmp、 http-flv,都有较大的延迟(局域网内),建议使用SRS4.0,配合WebRTC协议,延迟非常低,推流仍用ffmpeg即可

路由宝 发表于 2021-12-11 11:21

wh1tequartz 发表于 2021-12-11 11:18
曾经测试过rtsp、rtmp、 http-flv,都有较大的延迟(局域网内),建议使用SRS4.0,配合WebRTC协议,延迟非 ...

多谢了,我去尝试一下SRS.

Nvidia中国 发表于 2021-12-11 11:27

厉害厉害,帮顶

lcsuper 发表于 2021-12-11 12:38

不知道可靠性如何啊,usb的本来就不稳,玩客云本来又是个掉盘云

路由宝 发表于 2021-12-11 13:20

lcsuper 发表于 2021-12-11 12:38
不知道可靠性如何啊,usb的本来就不稳,玩客云本来又是个掉盘云

挂载的usb没出现什么问题。之前有出过,查出是usb的易驱线用的久了,出了异常,换了就没出过问题了。

abc317 发表于 2021-12-11 13:41

这样如果查监控时间会不会很麻烦

menial 发表于 2021-12-11 14:56

abc317 发表于 2021-12-11 13:41
这样如果查监控时间会不会很麻烦

potplay这款播放器,可以直接,把当前目录下类似的文件,一块加载到播放列表里面,还好把

menial 发表于 2021-12-11 14:58

我想到了几年前,看到的一篇帖子,讲的就是,让盒子,代替NVR,不过,你倒是实践了,至于,超过24H时,就死机,建议,单独开机24H小时,看看是什么问题,

743007158 发表于 2021-12-11 16:16

我这个直接做旁路由和下载机。

路由宝 发表于 2021-12-11 16:24

menial 发表于 2021-12-11 14:58
我想到了几年前,看到的一篇帖子,讲的就是,让盒子,代替NVR,不过,你倒是实践了,至于,超过24H时,就死机,建议, ...

aptupgrade引起的。一点点试下来,不用upgrade更新就没事。

LifeForce 发表于 2021-12-11 22:55

743007158 发表于 2021-12-11 16:16
我这个直接做旁路由和下载机。

用什么固件,我现在用着powersee大佬的固件,重启ip和Mac地址就会变。打算换个固件用。

用户名被谁抢注 发表于 2021-12-12 16:14

LifeForce 发表于 2021-12-11 22:55
用什么固件,我现在用着powersee大佬的固件,重启ip和Mac地址就会变。打算换个固件用。

把/etc/network/interfaces.d里面增加一个文件,文件名随便一个就行(英文),文件内容为
allow-hotplug eth0
no-auto-down eth0
iface eth0 inet dhcp
hwaddress ether 00:00:00:00:00:00
把最后一行00:00:00:00:00:00替换成你的MAC,保存重启,
你的MAC和IP就会固定下来。

743007158 发表于 2021-12-12 17:39

743007158 发表于 2021-12-11 16:16
我这个直接做旁路由和下载机。

大神编译的5.10内核

页: [1] 2 3 4 5
查看完整版本: 玩客云内置硬盘刷armbian系统做监控存储的尝试