改造小蚁摄像头支持免费无限容量云储存(Samba挂载篇)

为什么要改造?

        插卡摄像头最大的一个问题就是频繁的读写会导致内存卡寿命急速下降,哪怕是市面上支持NAS转存的摄像头也是先录制到SD卡里,然后把SD卡上的视频再转存到NAS。同样对内存卡和NAS硬盘寿命都是损耗巨大。而这类监控视频绝大多数情况重要性都不算高。同时内存卡的容量对比各类云盘简直不够看。所以改造视频文件直接录制在云存储上,避免内存卡频繁的读写是一件一劳永逸且很有必要的事情。

本教程操作的前提是刷写基于alienatedsec/yi-hack-v5 第三方固件,支持的摄像头型号也一样。(友情提示,刷完固件后可以把SD卡上的home_vxxx和rootfs_vxxx删掉以提高启动速度

必备工具:

        一台linux小主机

改造的思路是用alist和davfs2工具把云盘挂载到本地linux小主机(挂载命令一定要添加file_mode=777,避免导致Samba共享无法正常写入文件),再用Samba分享出来(Samba一定要开启V1协议支持,很多摄像头都只支持1.0协议),然后在摄像头上挂载这个Samba目录。和常规NAS转存的思路不一样的是我们可以用ssh访问摄像头,所以对摄像头的权限是最高的,可以决定自定义挂载位置,而摄像头生成视频的目录是固定的,所以把Samba直接挂载到摄像头生成视频的目录上,这样就可以直接在云存储上生成视频文件,同时也避免了SD卡的读写损耗


以上前提是摄像头支持ssh访问并且支持Samba挂载。但ssh登录后台尝试mount.cifs挂载会提示报错。通过研究APP我们可以得知官方只支持定时转存SD卡上的视频文件到小米路由器。而支持转存必然支持挂载Samba,通过分析摄像头启动流程最终在/home/app/script下找到了cifs.luac文件。通过反编译我们知道了官方挂载xiaomi路由器的逻辑以及挂载命令。(这里需要说明的是老款xiaoyi摄像头只支持Samba 1.0协议,所以我们在配置主机上的Samba共享的时候需要注意开启最低版本支持1.0协议)

根据官方提供挂载逻辑和命令很容易写出自定义挂载脚本

#!/bin/sh
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/home/base/tools:/home/yi-hack-v5/bin:/home/app/localbin:/home/base:/tmp/sd/yi-hack-v5/bin:/tmp/sd/yi-hack-v5/sbin:/tmp/sd/yi-hack-v5/usr/bin:/tmp/sd/yi-hack-v5/usr/sbin:/home/yi-hack-v5/sbin
# location:/etc/init.d/S20yi-hack-v5
# location:/home/yi_dome_init.sh
# 加载cifs内核
insmod /home/app/localko/hmac.ko;
insmod /home/app/localko/md4.ko;
insmod /home/app/localko/cifs.ko;echo 'insmod cifs.ko' >> /tmp/yi_dome_init.log# 挂载cifs
mkdir -p /tmp/cloud
mount.cifs //192.168.1.3/yi_dome /tmp/cloud  -o guest,sec=ntlmv2,rsize=8192,wsize=8192,iocharset=utf8;echo 'mount //192.168.1.3/yi_dome' >> /tmp/yi_dome_init.logif grep -qs '//192.168.1.3/yi_dome' /proc/mounts;
thenif [ -f "/tmp/sd/swapfile" ] && [ ! -f "/tmp/cloud/swapfile" ]; thencp /tmp/sd/swapfile /tmp/cloud/swapfilefimount --bind /tmp/cloud/swapfile /tmp/sd/swapfileecho 'mount --bind /tmp/cloud/swapfile' >> /tmp/yi_dome_init.logif [ -d "/tmp/sd/record" ]; thenmkdir -p /tmp/cloud/recordcp -rf /tmp/sd/record/* /tmp/cloud/recordrm -rf /tmp/sd/record/*mount --bind /tmp/cloud/record /tmp/sd/recordecho 'mount /tmp/cloud/record' >> /tmp/yi_dome_init.logfi
fi

把脚本上传到摄像头后台,并设置开机自启动。

到了这里你就得到了一个容量几乎无限且终身免费的自定义摄像头云存储。

贴一张挂载成功截图


以上脚本已经全部上传至github yi-hack-v5-plugins 希望大家帮忙点个star!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/878155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构——树的三种表示方法

目录 引言 树 1.树的定义 2.树的基本概念 3.树的表示方式 (1)双亲表示法 (2)孩子表示法 (3)左孩子右兄弟表示法 (4)树的应用 结束语 引言 在学习完栈和队列的之后后,我们接下来学习新的数据结构——树。 树 1.树的定义 树是一种非线性数据结构&#x…

智慧公路大数据运营中心整体解决方案

方案简介: 智慧公路大数据运营中心解决方案的实施,不仅提高了公路交通的运行效率和管理水平,还推动了智慧交通建设的深入发展。通过消除信息孤岛、促进数据共享和开放,实现了交通信息资源的有效整合和利用。未来,随着…

ctfhub-web-SSRF通关攻略

一、内网访问 1.打开ctfhub给的环境地址 2.观察题目 发现让我们访问127.0.0.1下的flag.php 在地址栏后面有一个url参数 ?urlhttp://127.0.0.1/flag.php 提交即可 二、伪协议读取文件 1.打开ctfhub给的环境 2.观察题目 发现让我们读取flag.php文件 读取文件用到的协议是…

QT Mainwindow下指定控件的setMouseTracking(true)和mousemoveevent函数失效-问题解决

目录: 一,问题描述二,解决方法2.1解决依据2.2方法实操 三,参考资料 一,问题描述 ☀️之前碰到过的一个问题,现在分享出来:想在qt哪里搞个鼠标移动在控件显示的图片上,然后实时显示对…

设备状态图表-甘特图

1.背景&#xff1a;设备状态监控图表&#xff0c;监控不同状态的时间段&#xff0c;可以使用甘特图来展示效果 鼠标经过时的数据提示框 2、代码实现 <template><divref"ganttChartRefs":style"{ height: 6.2rem, width: 100% }"class"bg…

java Boss直聘爬虫数据分析

摘要 本报告利用Java和Selenium爬虫技术获取数据&#xff0c;并使用ECharts库对薪资数据进行可视化分析&#xff0c;旨在探究不同经验和学历的薪资分布情况。 数据来源 数据来源于Boss直聘&#xff0c;使用Java结合Selenium库进行数据抓取。 数据总数&#xff1a;约2000家企…

如何设置Winfrom中dataGridView中的内容换行并行高自适应

如何设置Winfrom中dataGridView行高 在 Windows Forms (WinForms) 应用程序中&#xff0c;DataGridView 控件用于显示和编辑数据的表格形式。如果你想要设置 DataGridView 控件中行的高度&#xff0c;可以通过以下几种方式来实现&#xff1a; 1. 通过属性设置行高 你可以直接…

Vue:组件化开发

我们为什么要组件化开发&#xff1f; 在之前的vue中&#xff0c;我们要么是通过本地引入vue.js进行开发&#xff0c;要么就是通过CLI&#xff08;脚手架&#xff09;来创建环境然后单独在App.vue中进行开发&#xff0c;这样的开发模式当然没有问题&#xff0c;但是当项目庞大起…

3 Python开发工具:VSCode+插件

本文是 Python 系列教程第 3 篇&#xff0c;完整系列请查看 Python 专栏。 Visual Studio Code的安装非常简单&#xff0c;就不放这里增加文章篇幅了。 相比PyCharm&#xff0c;VSCode更加轻量&#xff0c;启动速度快。并且搭配Python插件就能实现和Pycharm一样的代码提示、高…

摄影曝光:曝光模式认知

写在前面 学习整理《摄影曝光&#xff1a;拍出好照片的49个关键技法》读书笔记博文内容涉及曝光模式简单认知适合小白认知理解不足小伙伴帮忙指正 &#x1f603;,生活加油 99%的焦虑都来自于虚度时间和没有好好做事&#xff0c;所以唯一的解决办法就是行动起来&#xff0c;认真…

PyTorch深度学习模型训练流程:(二、回归)

回归的流程与分类基本一致&#xff0c;只需要把评估指标改动一下就行。回归输出的是损失曲线、R^2曲线、训练集预测值与真实值折线图、测试集预测值散点图与真实值折线图。输出效果如下&#xff1a; 注意&#xff1a;预测值与真实值图像处理为按真实值排序&#xff0c;图中呈现…

【JS】使用MessageChannel实现深度克隆

前言 通常使用简便快捷的JSON 序列化与反序列化实现深克隆&#xff0c;也可以递归实现或者直接使用lodash。 但 JSON 序列化与反序列化 无法处理如下的循环引用&#xff1a; 实现 MessageChannel 内部使用了浏览器内置的结构化克隆算法&#xff0c;该算法可以在不同的浏览器上…

Qt WebAssembly 警告:构建套件中未设置编译器

目录 Qt WebAssembly 警告:构建套件中未设置编译器问题解决方法 参考资料 Qt WebAssembly 警告:构建套件中未设置编译器 问题 安装好QT之后构建套件中出现黄色感叹号Qt WebAssembly 警告:构建套件中未设置编译器。 原因是现在你只安装了qt for webassembly的qt的库&#xff…

Task-Embedded Control Networks for Few-Shot Imitation Learning

发表时间&#xff1a;CoRL 2018 论文链接&#xff1a;https://readpaper.com/pdf-annotate/note?pdfId4500197057754718210&noteId2424798567891365120 作者单位&#xff1a;Imperial College London Motivation&#xff1a;就像人类一样&#xff0c;机器人应该能够利用来…

JVM上篇:内存与垃圾回收篇-07-方法区

笔记来源&#xff1a;尚硅谷 JVM 全套教程&#xff0c;百万播放&#xff0c;全网巅峰&#xff08;宋红康详解 java 虚拟机&#xff09; 文章目录 7. 方法区7.1. 栈、堆、方法区的交互关系7.2. 方法区的理解7.2.1. 方法区在哪里&#xff1f;7.2.2. 方法区的基本理解7.2.3. HotSp…

无人机之基本结构篇

无人机&#xff08;Unmanned Aerial Vehicle, UAV&#xff09;作为一种无人驾驶的飞行器&#xff0c;其基本结构涵盖了多个关键组件&#xff0c;这些组件共同协作以实现无人机的自主飞行和执行各种任务。以下是无人机基本结构的详细解析&#xff1a; 一、飞机平台系统 机身&am…

vue2表单校验:添加自定义el-form表单校验规则

前言 在vue2表单校验&#xff1a;el-form表单绑定数组并使用rules进行校验_vue2 rules校验-CSDN博客中&#xff0c;使用form原生的rules对表单中每个控件的必填、格式等做了校验。但是保存时&#xff0c;除了验证每一个控件的输入合乎要求外&#xff0c;还需要验证控件之间的数…

SpringBoot集成kafka-生产者发送消息

springboot集成kafka发送消息 1、kafkaTemplate.send()方法1.1、springboot集成kafka发送消息Message对象消息1.2、springboot集成kafka发送ProducerRecord对象消息1.3、springboot集成kafka发送指定分区消息 2、kafkaTemplate.sendDefault()方法3、kafkaTemplate.send(...)和k…

WIN/MAC 图像处理软件Adobe Photoshop PS2024软件下载安装

目录 一、软件概述 1.1 基本信息 1.2 主要功能 二、系统要求 2.1 Windows 系统要求 2.2 macOS 系统要求 三、下载 四、使用教程 4.1 基本界面介绍 4.2 常用工具使用 4.3 进阶操作 一、软件概述 1.1 基本信息 Adobe Photoshop&#xff08;简称PS&#xff09;是一款…

springboot嵌入式数据库实践-H2内嵌数据库(文件、内存)

本文章记录笔者的嵌入式数据库简单实现&#xff0c; 记录简要的配置过程。自用文章&#xff0c;仅作参考。 目录 本文章记录笔者的嵌入式数据库简单实现&#xff0c; 记录简要的配置过程。自用文章&#xff0c;仅作参考。 嵌入式数据库 -------------------------------具…