小蚁摄像头
     分类:安全物联网硬件     有: 2 条评论

小蚁摄像头

     分类:安全物联网硬件     有: 2 条评论

小蚁摄像头视频备份到NAS

背景:内存卡容量有限,我需要把视频备份到NAS上,我使用的是 小蚁摄像头1080P云台版(下载:yi_hack_v4_v0.2.0__yi_dome_1080p.zip);已经不属于小米生态链的产品了,设置中有提到可以备份到小米路由,好像是需要特定型号才行。

现在是2019年2月24日,按旧方法建立test文件夹,编辑equip_test.sh脚本的方法已经失效了,目前只能刷固件进行破解,有两个做的是比较好的固件:
yi-hack-v3:https://github.com/shadow-1/yi-hack-v3
yi-hack-v4:https://github.com/TheCrypt0/yi-hack-v4
v4是在v3的基础上开发而来的,v3不支持官方的app,v4保留了官方的app功能,同时开启了ssh、telnet、ftp等功能。

注意:建议刷v4(保留app功能);如果要刷v3也先刷v4再刷v3,因为v3无法直接刷写!(两个文件放在fat32格式的内存卡中,上机开电源,黄灯闪烁1分钟左右重启后即刷固件成功。如果之前连接过wifi会直接连接上,也可以捅菊花重置。)

现在是2019年11月09日,最新的v4版本已经可以使用MQTT和RTSP(捐赠,按教程填表并捐赠(最低5英镑),最后下载证书及程序上传,重启摄像头)
固件直接放内存卡重启,等待越5分钟左右即可安装完成。


rsync方式

该方式是同步内存卡中的视频到NAS上,配置比较麻烦;但目前没有更好的办法了。

小蚁摄像头1080P云台版资源打包下载:https://image.leolan.top/yi1080pdamo.zip
资源包里面有rsync等软件,可以按参考链接中的教程使用Ubuntu14-18的系统去编译,编译失败时可能要安装libstdc++6、lib32stdc++6、libstdc++-dev、ncurses-dev、libncurses*等包

交叉编译工具就使用教程中的版本即可,摄像头的内核上3.0的,教程中的最低是3.2;更新的编译工具不支持低版本内核。
硬件平台都是armhr,可以使用树莓派进行编译(或者直接从树莓派系统中拷贝缺失的lib或so)

1、刷系统
下载资源解压缩,全部文件放到内存卡上,建议刷v4版,把v4目录下的两个文件移动到根目录下;上机开电源等待刷机完成,完成后可以使用ssh root@IP登录摄像头,密码为空。/tmp/sd目录就是内存卡目录,把v4的文件移动到根目录,reboot重启,刷v4版系统。

刷机完成后使用app连接wifi绑定摄像头,telnet [IP]登录,账户root,密码为空;移动软件、库到指定的目录。执行rsync看是否能执行。

2、摄像头录制视频是无法存储在fat32格式的分区的,app上会显示存储异常,打开app格式化内存,摄像头自动重启后就可以看到录制的视频了,同时ssh和ftp服务也会开启(fat32格式时这两个服务不会启动)。

3、配置rsync
登录群晖NAS-->设置-->文件服务-->rsync-->开启,设置外部账户(可以直接选择一个已有的系统账户,并设置密码)

登录摄像头telnet [IP];或者直接ssh

vi /home/yi-hack-v4/script/sync_to_nas.sh

#!/bin/sh

# 该免密方式只有使用rsync://协议才有效,其他方式需要指定密码文件--password-file=/etc/rs.pd
# 注意:账户密码错误短时间多次登录会导致群晖锁摄像头IP,注意解锁。
export RSYNC_PASSWORD="群晖中设置的密码"

# 摄像头TF卡视频目录
SRC=/tmp/sd/record/
# USB_2T这个目录是在群晖web页面文件管理器里看到的“共享文件夹”名。不是shell中的挂载路径。
DST=rsync://camera@192.168.1.5/USB_2T/YiCamera/A/

nowtime=$(date +%s)

# inotify-tool这个工具利用了内核的通知系统,当文件进行改动之后,就会发出一个通知,此时再调用 rsync 进行同步就可以了。
inotifywait -mrq --timefmt '%s' --format '%T' -e modify,delete,create,attrib,move $SRC | while
read timestamp
do  
    diffnow=$(($nowtime - $timestamp))
    echo $nowtime $timestamp $diffnow
    if [ $diffnow -lt 5 ]
    then
        echo 'start rsync'
        rsync -vzrtopg --delete $SRC $DST
        nowtime=$(date +%s)
    fi
done

chmod 755 /home/yi-hack-v4/script/sync_to_nas.sh
完成后可以执行脚本检验一下看看是否真的同步过来了。

crontab -e  #注释第一行升级检测

# 设置开机自启动(生成/etc/init.d/Sxxx文件经检测,无法启动)
# 修改需要启动的服务
vi /home/yi-hack-v4/etc/system.conf
增加:
RSYNC=yes

# 创建软链接
ln -s /home/yi-hack-v4/script/sync_to_nas.sh /sbin/sync_to_nas

# 修改启用脚本
vi /home/yi-hack-v4/script/system.sh
增加:
if [[ $(get_config RSYNC) == "yes" ]] ; then
    sync_to_nas >> /tmp/sd/sync_to_nas.log &
fi

搞定后启动脚本,视频就会同步到NAS上了。
注意修改root默认密码!!!

参考:https://lengzzz.com/note/sync-video-from-yi-camera-to-synology-nas


rtsp

安装该协议之后,可以启动rtsp服务,生成实时流视频,可以供vlc播放或群晖NAS的Surveillance Station做视频源。也可以接入Home Assistant平台,用途就大了。但目前yi-hack-v4固件都开发不完整,目前还不能实现启动即可使用。

目前情况:在v4固件上使用rtsp2301能得到大约10秒的视频,之后就会重启摄像头。使用rtspsvrM直接报错无法启动。
最新情况(20190409):网友提示有捐助通道才开放的估计下载,注意Releases说明!

参考:https://lengzzz.com/note/sync-video-from-yi-camera-to-synology-nas-2

(●゚ω゚●)
  1. shadow

    V4的项目里好像有个捐助通道,会提供开放rtsp的小蚁固件下载,可以关注一下

    Reply
  2. Leo

    刚刚去看了下,多了以下说明,可能是快完善了(之前是没有的)
    NOTE: Keep in mind that the RTSP Server is currently available to the Supporters only, see the FAQ in the README or in the Discord Server for further info.

    Reply