尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

用树莓派+RTSP+夸克网盘,零成本搭建24小时监控存储与回放系统

用树莓派+RTSP+夸克网盘,零成本搭建24小时监控存储与回放系统 我的第一台家用摄像头是六十多块钱的云台机品牌不说了画质勉强能认人。配套的云存储年费一个月将近二十块真到了想看回放的时候录像还要等云端转码等得人上火。后来我在抽屉里翻出一块吃灰多年的树莓派3B又看了一眼夸克网盘那个已经攒到几百G的空闲容量突然觉得这事完全可以换个活法:摄像头自己负责出画面闲置单板机负责把视频流切成一截一截的录像文件夸克网盘负责当那个永远不怕录满的远程磁带库。整套系统跑下来除了一开始买摄像头那几十块每月的订阅费为零内存卡也省了。这篇文章就是把我这套自建24×7监控存储与回放系统的完整搭建过程、踩坑记录和最终参数都摊开讲。如果你是那种家里已经有摄像头、手头正好有闲置开发板、又不想继续给云存储交月费的人那这套方案大概率能直接抄作业。1. 这笔账先算清云存储年费、内存卡寿命和那台吃灰的板子1.1 传统监控方案的三笔固定开支先别急着谈技术我们算一笔最实在的账。家用监控的传统方案看似便宜其实有三笔钱是每年都要出的。第一笔是云存储订阅费。现在稍微正规点的摄像头品牌都会推自己的云录像服务基础套餐通常一年一百到三百不等。你以为你买断了录像能力实际只是买了个“云端存几天”的资格。录像保存在别人的服务器上也就罢了回放时画质被压缩、搜索事件要单独收费这些都是隐藏成本。第二笔是内存卡损耗。很多人为了省钱买张64G或128G的TF卡插摄像头里觉得一次性投入几十块就完事了。但你只要试过24×7连续写入就会明白普通消费级存储卡的寿命是按写次数算的。一张中等品质的卡在4Mbps码率下连续写个一年半载轻则出现坏块重则直接识别不到。我在这个项目之前已经写坏过两张卡一张在半夜无声无息地挂了回放到关键时间点全是花屏——那种感觉比丢了钥匙还糟。第三笔是时间成本。设备厂商的APP只能看自家设备录像散落在各家的云端里真要跨平台翻个监控片段你得一个APP一个APP地找。更别提很多低端摄像头的云回放时间轴做得稀烂拖动进度条要缓冲半天看个东西能把你耐心磨没。这三笔开销叠加起来年化成本其实远超一台设备本身的价格。1.2 “零元成本”到底指什么不谈电费的白嫖是耍流氓我标题写“不花一分钱”必须先把这句话解释清楚不然就是耍流氓。硬件层面的确没有额外支出:摄像头是原来就有的单板机是闲置的树莓派3B存储介质是我手头一块淘汰下来的笔记本机械硬盘改的USB移动硬盘。夸克网盘用的是我多年积攒的免费容量没有开会员。软件层面全是免费开源工具ffmpeg做视频流切片shell脚本做调度samba做局域网共享没有一项付费授权。但有一笔钱绕不开那就是电费。树莓派3B满载也就5W左右加一块2.5寸机械硬盘大约2W整机功耗不到7W。按我这儿每度电五毛来算一年电费大概是三十块钱出头。这不能算真正的零成本只能说相对于动辄两三百一年的云存储订阅这套方案的年度成本几乎可以忽略。另外还要说清楚什么是“闲置”。我这块树莓派是当年买来做实验的吃灰了三四年插上电就能跑不算新增采购。如果你手里什么都没有想专门买套硬件来搭那成本就是另一码事了——不过即便如此一块二手香橙派Zero2W加一个二手USB硬盘总价也不会超过一百块依然比年费制的云存储划算。2. 架构一句话说清拉流、切片、上传分工再各行其道2.1 数据从镜头到网盘的完整走向这台系统说到底干的活只有一件把摄像头吐出来的RTSP视频流变成一个一个短小的MP4文件再把这些文件搬运到夸克网盘上。链路大概是这样摄像头通过网络把实时视频流推给单板机单板机上的ffmpeg负责接收流每隔5分钟切一个视频文件落到本地硬盘的某个目录上传脚本盯着这个目录发现新文件出现就上传到夸克网盘上传成功后本地文件就变成纯粹的中转缓存按容量或天数自动清理。回放的时候局域网内直接打开单板机上的共享目录人在外面就用夸克网盘的客户端在线播放。这里有一个很关键的设计选择单板机在整个链路里既不对摄像头做任何外网暴露也不做端口映射它只是一个内网里的录像机和上传机器。远程回放完全走夸克网盘这条现成的通道摄像头和单板机都不需要拥有公网地址。这既省去了自己做穿透的麻烦也大幅降低了被互联网上别有用心的人扫到的概率。2.2 “乞丐版”摄像头怎么挑RTSP是底线很多低端摄像头之所以卖得便宜是因为厂商靠“云存储月费”回本所以会刻意把本地流媒体协议藏起来。你在手机APP里看画面没问题但想用自己设备去拉视频流它就像个哑巴一样不开口。所以挑“乞丐版”摄像头第一原则就是必须支持RTSP或ONVIF协议。RTSP是视频传输协议ONVIF是设备发现和管理规范两者至少占一个。品牌型号我不做具体推荐但你们选型时可以按这么几条筛参数页或说明书里明确写了支持RTSP/ONVIF或者有人做过破解固件开启RTSP的教程说明有得玩。分辨率至少200万像素也就是1080P。再低了晚上录出来的东西放大之后全是噪点事后辨认困难。支持ONVIF协议的一般相对省心ONVIF Device Manager工具扫一下就能找到设备地址固件就算藏着掖着也能把它揪出来。如果你的摄像头在APP里找不到RTSP设置项先别急着丢。去官网查固件更新说明有的厂商在后期固件里会补上这个功能再不行就用ONVIF工具强制扫描设备的流媒体端口。如果实在打不开那这台设备就只能留在“看实时画面”的层次达不到我们的自建录像要求。2.3 闲置单板机的底线配置与存储选型单板机的性能需求没有想象的那么高因为后面我会用它做“直拷”而非“转码”也就是说视频流基本原封不动地被切段只做封装格式转换不做二次编码。这种工作量对CPU极不敏感哪怕是全志H3、树莓派Zero这种入门级处理器都扛得住。内存512MB以上即可因为ffmpeg处理一个视频流占的内存不算多系统本身占用的内存反而更多。真正要下功夫的是存储选型。这是这个项目里最容易踩坑的地方没有之一。我见过不少人直接把录像写在单板机的TF卡上贪图方便。理论上确实能跑但TF卡不是为高频率连续写入设计的24×7跑下来寿命衰减非常明显。更重要的是一旦TF卡写坏了系统盘和录像盘是同一张卡整个单板机可能直接起不来连抢救的机会都没有。我的做法是外接一个USB硬盘系统还是装在TF卡里但录像数据全都写在外接盘上。即便是老旧的机械硬盘连续写入寿命也远强于TF卡。如果你手头没有机械硬盘买个二手小容量SATA固态加USB转接盒也是好选择功耗更低、读写更快。预算再紧也不要把录像和系统放在同一张卡上这条原则比选择哪种单板机更重要。2.4 为什么不是百度网盘/阿里云盘而是夸克网盘网盘选择这件事各家都有各家的性格我说下我的取舍逻辑。先说百度网盘免费用户的容量倒是有但上传和下载双端限制对随时回放录像很不友好你没会员就等着看它那个蜗牛般的进度条。阿里云盘上传速度不错可部分版本对在线播放MP4的格式支持比较挑而且免费容量给得也不算大方。夸克网盘我自己用下来的感受是免费容量大、上传速度快、在线播放兼容性好。这几个点刚好命中监控录像的刚需——录像文件是频繁写入的文件容量小了放不下几天的量上传速度慢了本地硬盘扛不住积压在线播放兼容性差了人在外面根本没法翻监控。当然我也要提醒一句网盘免费容量和速率政策是会变的我写这篇文章时的体验不等于以后永远如此。如果你吃了互联网老人的亏还是应该以自己在用的那款网盘的实际状态为基准。这套方案的架构是通用的网盘从夸克换成任何一家支持客户端自动同步的盘脚本逻辑都不用大改。选夸克只是因为它在当前时点最顺手。3. 本地录像链路搭建RTSP地址、ffmpeg分段和断线重连3.1 先让摄像头开口说话拿到RTSP地址搭建的第一步是拿到摄像头真正可以拉流的地址。这一步卡住过不少人我说几个实际的办法。最正统的方式是在摄像头的Web管理后台或手机APP里找“平台接入信息”“本地网络”“ONVIF设置”这类入口。很多摄像头把RTSP地址隐藏在两到三层菜单里但只要你把账号密码设置好再打开ONVIF选项网络接口里的RTSP路径就会以URL形式显示出来。如果固件界面里什么都没有还有一个搜索办法在电脑上装ONVIF Device Manager它会自动扫描局域网里的ONVIF设备扫描到之后可以看到设备完整的媒体流地址。这个工具救过我好几次算是排查不可描述摄像头问题的万能钥匙。RSTP地址的格式因品牌而异常见的大致长这样海康威视rtsp://账号:密码192.168.1.64:554/Streaming/Channels/101大华rtsp://账号:密码192.168.1.64:554/cam/realmonitor?channel1subtype0TP-LINK系列rtsp://账号:密码192.168.1.64:554/stream1即便如此不同固件版本的路径也可能不一样。我的建议是拿到摄像头后先做一件事用VLC媒体播放器输入地址试播地址和密码正确的话VLC是能直接出画面的。试通了再进下一步不然后面所有脚本都在盲写。3.2 ffmpeg分段录像命令逐段理解拿到RTSP地址之后重头戏就来了。我在单板机上用ffmpeg做分段录像完整命令长这样ffmpeg -rtsp_transport tcp -stimeout 5000000 \ -i rtsp://账号:密码192.168.1.64:554/Streaming/Channels/101 \ -c copy -reset_timestamps 1 -f segment \ -segment_time 300 -segment_format mp4 \ -segment_format_options movflagsfaststart \ -strftime 1 -segment_filename /data/cam01/%Y%m%d_%H%M%S.mp4 /dev/null这条命令看着长拆开每个参数都能讲出道理。-rtsp_transport tcp指定用TCP协议传输RTSP流。UDP延迟低但容易丢包在局域网里看起来无所谓长时间跑下来丢包积累会导致花屏和音画不同步。TCP会做重传稳定性好一大截。我建议不要图省事省掉这个参数。-stimeout 5000000设置的是socket超时时间单位是微秒这里换算下来是50秒。摄像头如果出现网络闪断ffmpeg能在50秒后主动报错退出而不是傻乎乎地挂在那里等一个永远不会回来的流。这个参数不做设置的话断流之后整个录像进程会卡死监控就算停了你也毫无察觉。-c copy意思是视频流不重新编码直接复制到封装容器里。这么做CPU占用极低也避免二次编码带来的画质损失。前提是摄像头输出的编码格式是你想要的绝大多数廉价摄像头默认给的就是H.264够用。-reset_timestamps 1这个参数必须加。分段录制时每个新分段如果不重置时间戳播放器会被前一段的时长搞迷糊快进到底之后容易出现时间轴错乱。-f segment -segment_time 300是让ffmpeg按5分钟时长切段。-segment_format mp4指定分段的封装格式为MP4。MP4这个格式不像TS格式那样天然适合分段必须配合-segment_format_options movflagsfaststart这个语句会把MP4的索引信息挪到文件头部在线播放时不用下载完整文件就能从头拉流夸克网盘的在线播放能不能秒开很大程度就看这一步。-strftime 1 -segment_filename /data/cam01/%Y%m%d_%H%M%S.mp4让文件名直接以日期时间为名例如20250408_140500.mp4。最后那个/dev/null是ffmpeg的虚拟输出分段器自己会把文件写到segment_filename指定的路径这个null文件只是用来占位的。3.3 24×7断流重连把ffmpeg包进一个自愈循环ffmpeg本身没有守护进程功能进程退出就退出了不会自己爬起来。你不可能每天手动看一眼它是不是还活着所以必须给它套一个自动重拉的外壳。我用的核心逻辑很简单一个while循环while true; do ffmpeg -rtsp_transport tcp -stimeout 5000000 \ -i rtsp://账号:密码192.168.1.64:554/Streaming/Channels/101 \ -c copy -reset_timestamps 1 -f segment \ -segment_time 300 -segment_format mp4 \ -segment_format_options movflagsfaststart \ -strftime 1 -segment_filename /data/cam01/%Y%m%d_%H%M%S.mp4 \ /dev/null echo $(date) ffmpeg exited with $?, restart in 10s /var/log/monitor.log sleep 10 doneffmpeg只要因为断流、权限或磁盘错误退出这个循环就会在10秒后自动把它叫醒重新干活。我把日志写到/var/log/monitor.log排查问题时有据可查。光有循环还不够我还把这个脚本注册成了systemd服务设了Restartalways即使单板机重启也会在开机后自动把监控拉起来。你在系统服务里写一个monitor.service文件内容大致是这样[Unit] DescriptionCam Monitor Recorder Afternetwork.target [Service] ExecStart/usr/local/bin/cam_recorder.sh Restartalways RestartSec15 [Install] WantedBymulti-user.targetRestartSec15意思是退出之后等15秒再拉起这个间隙配合脚本内部的10秒sleep给摄像头和网络一个自我恢复的时间。实测下来摄像头因为路由器重启断线半小时这种场景全程我都没去碰过单板机恢复后它自己接着录中间丢掉的也就是断流那段时间的录像。3.4 直拷还是转码我推荐哪种前文反复提了-c copy但直拷不是万能的有几种情况你必须转码。第一种情况是摄像头输出的编码是HEVC也就是H.265。H.265压缩率高同样的清晰度文件体积更小但很多网盘在线播放器对H.265的兼容性很一般手机端播起来会卡或者干脆没声音。如果遇到这种情况我建议在ffmpeg命令里把-c copy换成-c:v libx264 -preset veryfast -crf 23把它转成H.264再封装。代价是CPU占用变高树莓派3B这种级别的板子转1080P会吃力强转可能掉帧。我自己的选择是选摄像头时优先挑默认输出H.264的型号直接把转码这个需求消灭在源头上。第二种情况是摄像头输出的是MJPEG格式。MJPEG是逐帧JPEG压缩画质不错但码率极高一天能录出好几十G而且对网盘回放极度不友好。这种格式的摄像头最好换掉不值得为它写复杂转码链路。我的最终结论非常朴素能用直拷解决的方案绝不引入转码。省钱省电省心这是整套系统能24×7稳定跑起来的关键。4. 从本地到夸克网盘自动上传安排与本地容量控制4.1 上传的三条路线与其适用对象录像文件切好了只是完成了三分之一剩下的核心问题是怎么把它们自动化搬上夸克网盘。我试过三条路线各有各的适用场景。第一条路是官方客户端的文件夹同步。夸克网盘在电脑端/手机端提供了自动备份功能可以把某个本地文件夹实时同步到云端。这条路操作最简单在Windows/Mac上把/data/cam01对应的网络映射目录加进自动备份范围即可。但注意我们这套方案里的录像机是一台Linux单板机夸克官方客户端在Linux上的支持并不完整所以这条路线通常用于局域网内常开的电脑上或者你把单板机的目录通过Samba共享后映射到一台Windows主机上做中转。第二条路是第三方命令行工具挂载夸克网盘比如以alist为代表的挂载程序。把夸克网盘的凭证配置进去之后本地就相当于多了一个网盘目录你可以直接用cp命令把录像文件复制过去。这条路自动化程度高能配合脚本精确控制上传时机但代价是需要处理登录凭证的保存和管理。登录凭证一旦泄露网盘里的东西就裸奔了。我的做法是单独注册一个夸克小号专门放监控录像绝不在上传工具里保存与个人主号相关的任何信息。第三条路是手动上传兜底。适合不追求实时性、只有少量重要片段才需要留存的场景。定期打开夸克网盘网页端打包上传虽然原始但胜在完全可控。三条路的优先级我推荐能自动就自动自动的前提是凭证安全有保障。第三条路永远作为自动上传失效时的应急手段。4.2 “录完十分钟内就上传”的实现思路在自定义脚本上传的场景下我的自动化策略是让录像文件生成后尽快上传而不是等一天结束后统一搬。具体实现不复杂单板机上装个inotifywait监控录像目录里的新文件事件脚本核心逻辑大致如下inotifywait -m -e close_write /data/cam01/ | while read dir event file; do if [[ $file *.mp4 ]]; then # 调用第三方上传工具把该文件推到夸克网盘 /usr/local/bin/quark_upload /data/cam01/$file if [ $? -eq 0 ]; then echo $file uploaded at $(date) /var/log/quark_upload.log else echo $file upload FAILED at $(date) /var/log/quark_upload.log fi fi done为什么强调“录完十分钟内就上传”因为本地硬盘容量是有限的录像文件积压越多本地存储压力越大。而且上传这个动作本身是有状态耗时的如果攒到凌晨统一传一旦那晚网盘抽风或网络断开积压的录像就全堵在本地第二天白天本地硬盘可能直接被写满触发ffmpeg的写盘错误整个监控就瘫痪了。切成5分钟一个文件还有个额外好处单个录像文件体积一般也就几十兆到一两百兆上传一个失败也就损失那几分钟的录像重传成本很低。你要是一个小时切一个1G的大文件传一半断了重传的成本就高多了。上传完成后脚本直接执行rm -f删除本地副本。这一步不能省否则上传得越成功本地死得越快。4.3 本地保留几天、满了怎么清理既然视频传到网盘了本地的角色就变成了“临时缓冲”没必要存太多。我有两层清理策略。第一层是按时间本地只保留最近3天的文件这个数字对应睡眠周期内你需要翻监控的最长跨度。在crontab里加一条find /data/cam01 -name *.mp4 -mtime 3 -delete每天凌晨跑一次3天前的文件清掉。第二层是按容量为的是防止上传链路长时间故障时录像文件无限堆积。写个简单的容量检查脚本USAGE$(df /data | awk NR2 {print $5} | tr -d %) if [ $USAGE -gt 85 ]; then find /data/cam01 -name *.mp4 -type f | sort | head -20 | xargs rm -f fi逻辑不复杂磁盘使用率超过85%时删掉最老的20个录像文件给上传留出缓冲期。注意一定要在脚本里加记录日志不然哪天发现缺了几段录像你根本不知道是手动删的还是脚本删的。这套双层清理的好处是本地硬盘永远只承担“周转”任务容量规划基本不用操心搭配小容量的二手SSD绰绰有余。5. 回放不是翻文件夹分片命名、在线播放与时间定位5.1 文件名即时间轴很多人自建监控容易忽略回放体验觉得“反正录下来了到时候找找就行”。真到你需要翻一段一个礼拜前的录像时面对一屏幕output123.mp4这种名字你瞬间就知道什么叫绝望。我坚持用%Y%m%d_%H%M%S作为录像文件名纯粹是把时间索引做进了文件名里。想查4月8日下午两点前后的画面只需要在共享目录里开文件管理器按文件名排序找到20260408_140000.mp4到20260408_141000.mp4之间那几个文件。不上服务器、不开APP用任何工具都能定位。这个命名方式还有一个附带好处在网盘的文件列表里文件名本身就是时间线你可以直接在夸克网盘的网页端按日期前缀搜索而不需要依赖任何第三方索引服务。5.2 局域网实时回看、手机远程回看的组合回看分两个场景我的处理方式是分开的。局域网内我在单板机上装了Samba服务把/data目录共享出去。家里随便一台电脑打开文件管理器输入\\树莓派IP\data就相当于打开了一个本地普通文件夹直接双击MP4就能播。配合VLC或PotPlayer播放体验甚至比摄像头厂商APP原生的云回放更顺滑——毕竟文件在本地的共享目录里没有转码延迟。人在外面的情况夸克网盘就是回放的唯一入口。在手机APP里打开网盘的目录结构按照日期一层层点进去选择对应的分段文件就能在线播放。因为我在ffmpeg分段时加了movflagsfaststart文件索引在头部播放器可以很快开始渲染画面不需要等到整个文件下载完。如果你发现网盘在线播放大文件时总是卡在开头大概率是MP4的moov元数据在文件末尾这就是faststart没加上的典型症状。5.3 分段时长5分钟不是随便定的分段时长的选择我前后试过1分钟、5分钟、30分钟三个档位最后锁在5分钟。1分钟一档有个致命问题文件切得碎网盘目录里一片密密麻麻的文件名上传请求频率高给网盘造成的写入压力也大。而且每个MP4的封装头部都有一定的体积冗余切得越碎这部分开销占比就越高存储效率不划算。30分钟一档又是另一个极端。单个文件体积能飙到几百兆甚至上G网盘在线播放时拖动进度条APP得先缓冲好几十秒体验直线下降。更麻烦的是如果摄像头断流发生在第25分钟你损失的是一整段还没上传完的半个多小时录像重传成本高。5分钟刚好卡在甜点上文件数量不会太密集单个文件体积适中在线播放能秒开断开重传的代价也可控。这个参数看似小事实际上直接决定了整个系统回放体验的上限。6. 连跑一周后的实测数据与三个绕不开的坑6.1 码率、流量与实际的网盘配额评估理论聊完我说点实际跑出来的数据。我这儿摄像头分辨率是1080P默认H.264编码实际码率大概在2.5Mbps上下波动。做个简单折算2.5Mbps每秒产生约0.3125MB数据一小时就是1.125GB一天下来大约27GB。单摄像头、单机24×7的节奏一个月就是800GB出头的量。这个数据直接决定了本地硬盘要买多大也提醒你关注网盘的容量政策。我当前的夸克网盘空闲容量是几百G照这个码率只能覆盖十多天的录像。所以我的策略是把网盘当“近期存档”本地3天网盘10~15天超过这个期限的录像不再重点保留。如果你需要更长的保存周期要么把摄像头码率降一档要么用支持更大容量存储空间的网盘账号。还有一点值得留意那就是上传带宽。27GB一天换算成平均上传速率大约是2.5Mbps上行就能覆盖。国内家用宽带上行普遍有10Mbps到20Mbps甚至更高跑这个量绰绰有余。但如果你家上行带宽特别紧张比如经常要开视频会议或搞NAS外发就得留意上传任务会不会把上行链路占满必要时可以给上传脚本加限速。6.2 三个坑和对应的修复跑这一周我遇到的最大三个坑都是那种看一眼日志就能排掉的但没遇到之前你根本意识不到。第一个坑是MP4分段初期播放器显示的时间轴错乱。症状很典型把录像拉到后半段进度条拖过去之后画面时间戳会跳跃看起来像跳帧。排查到最后就是缺-reset_timestamps 1。ffmpeg首次从流里读取到的时间戳不是从0开始的如果分段时不为每个新文件重置时间戳播放器就会拿第一段的原始时间戳去推算所有分段的时间基准错乱就这么来的。这个参数加上之后问题再没出现过。第二个坑是摄像头偶发断流后ffmpeg进程一直挂着不退出。我用了一个检测脚本定时检查如果ffmpeg进程还在但网络向摄像头发出的请求长时间没响应就把它强制杀掉让外层循环重新拉起。后来发现-stimeout 5000000就是专门干这个的设了之后ffmpeg会在超时后自己退出不再需要外部强制干预。第三个坑是上传脚本在上传失败时没有重试机制导致几个文件积留在本地最终把硬盘写满。我后来在脚本里加了两层保障一是容量到达85%时自动清理最老的录像文件腾出空间二是上传失败的文件会进入一个重试队列按指数退避的策略隔几分钟重传最多试三次还不行就在日志里打警告。磁盘写满这事在监控系统里是最危险的故障因为它会连带影响到ffmpeg的写盘整个录制链路都会停摆必须用自动化手段杜绝。6.3 最后稳定运行的参数表我把最终稳定运行的参数整理成一张表方便你们直接复制参考参数项我的配置说明摄像头编码H.264避免H.265在线播放兼容性问题RTSP传输协议tcp减少局域网丢包socket超时5000000微秒(50秒)断流50秒后主动退出分段时长300秒(5分钟)平衡文件数量与在线播放体验封装选项movflagsfaststart网盘在线播放秒开的关键文件名格式%Y%m%d_%H%M%S时间轴即文件名本地保留时长3天按容量/天数双重清理上传触发方式inotifywait监听close_write文件刚落盘就上传服务守护systemd Restartalways进程退出自动拉起这套参数不需要多高级胜在每一项都有明确的理由支撑。7. 自己搭监控也得守住边界隐私与账号安全自查7.1 摄像头对着哪里、录到邻居什么先想清楚我们聊了那么多技术细节最后必须认真谈一谈边界问题这是整套系统里最不该含糊的部分。你自己动手搭监控在法律上没有先天的豁免权不是说“我家门口我就能随便录”。摄像头能拍到的画面范围需要你用常识去控制。最保险的做法是让摄像头只覆盖你私有的空间比如自家门口内侧、阳台内部、车库内景。如果摄像头不可避免要拍到公共通道或邻居的活动范围至少要做到两点一是尽量调整角度只拍必要区域二是如果涉及他人的长期活动影像至少知会相关人不要悄悄对着人家窗户录。我自己的做法是在摄像头贴了一张小标签注明设备功能和采集范围既给自己提个醒也让邻里看到时心里有数。很多隐私纠纷的开端不是“你录了”而是“我不知道你在录”。7.2 RTSP不暴露公网、网盘凭证不散落技术层面我这套方案有个天然的安全优势——不需要给摄像头的RTSP端口做外网映射。单板机和摄像头只在内网通信外部无法直接访问风险面天然小很多。但该守的规矩还是要守。摄像头管理密码必须改掉出厂默认值这个太重要了市面上不少摄像头被恶意接入十有八九是因为密码还是admin/admin。我的单板机也没有开放不必要的远程登录端口默认只允许同一局域网内的设备访问。网盘上传用的凭证更要保守机密。我是用一个单独申请的监控专用小号来跑上传的主网盘账号里从不存录像。第三方上传工具保存的登录凭证我定期重新登录刷新尽量避免长时间留存在脚本配置文件里一动不动。共用设备上的网盘登录状态用完就退出这都应该是基本习惯。7.3 数据保留时间按用途决定不要默认无限期监控录像本质上是敏感数据保留时间越长潜在风险越大。我在前面的容量策略里就刻意限制了保留周期本地3天网盘最多十几二十天。这个时长对绝大多数家庭场景完全够用——真有什么异常几天之内就会去回看超过一个月没人查的视频继续留着也只是消耗容量和增加泄露面。我不建议任何人把监控录像当成永久档案无限堆积。网盘容量再大也不应该成为一堆永远不会有人看的视频的无底洞。定期清理、到期删除不只是为了节省存储也是对自己和他人隐私的基本尊重。整套系统从构思到稳定运行花了我两个周末。最有价值的体会不是把免费架子搭起来了而是如果你想监控不需要去养一个永动的月付账单也不需要接受内存卡随时会坏的焦虑。闲置单板机加上一个愿意当仓库的网盘就是一套能24×7转下去的家庭监控系统。如果让我重新做我会按同样思路直接把摄像头选成默认支持RTSP和H.264的型号其余步骤和参数照抄即可。
返回列表