我把小米摄像头监控视频移植到了mac上"

admin 2026-10-24 13:02:25 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

我把小米摄像头监控视频移植到了mac上

原创

adra1n
adra1n

YY的黑板报

2026年10月16日 12:45
天津

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

背景

每次看家里摄像头视频的时候,总得打开手机,进 APP,再打开摄像头。想着能不能直接移植到 mac 上,点一下 mac 状态栏就能看到视频,于是借助 AI 能力做了实现。

过程

首先我是问的 AI 是否可以实现。它帮我查了资料,发现小米开源了 xiaomi-miloco(https://github.com/XiaoMi/xiaomi-miloco),我问它是不是要安装,它给的建议是直接使用 docker 更方便;如果脱离 docker,技术上有原生安装,但原生版等于 Miloco 2.0 的 AI 全家桶,依赖 OpenClaw 和 MiMo 云端模型 API,有 token 费用,为看摄像头不值当。

后面就是全自动的过程。它先帮我把 mac 下面的应用搭好了,点击状态栏的图标就能出现播放窗口,当然这时候还没有视频流接入。接着拉取镜像、打开网站登录小米账号做认证,等等这些做完之后,过程都对,但是获取不到视频流。

AI 帮我读代码和配置文件,发现是:chuangmi.camera.ipc009(2018 版小米智能摄像机云台版)被 miloco 的官方配置列进了黑名单。它把黑名单移除,测试之后发现可以使用。过程中又发现默认编码跟这台老相机对不上,把默认值改掉之后才正常。

运行过程中又发现,miloco 不支持 TUTK 协议,于是又卡住了,也许是我的摄像头太老了。AI 又做了一轮搜索,发现不用 miloco,在 docker 启动的 go2rtc 本身就支持 TUTK 协议,也就是转了一圈又回去了。不过各位用新版摄像头,使用 miloco 还是可以的。

TUTK 还有个问题,只支持 lan 访问,没法做到远程访问。我问 AI 米家是怎么实现远程访问的,对于源「IP 不在本地」到底怎么处理,它开始分析 miloco 的源码。我没有一直盯着它,大概半小时后它要求我登入小米账号。登入完成之后一直获取不到视频流,它开始分析 go2rtc 的源码,最后我看到的是它把 go2rtc 重新编译了一遍,结果卡在找不到 TUTK 的应答服务器上。我提醒它,米家的 APP 是可以远程访问视频的,它才明白,转去对 APP 进行逆向找协议实现。

APP 逆向最终也失败了,只好上虚拟机抓流量进行分析。从流量里 AI 把传输协议对了出来,但是又遇到了播放的问题:播放可以持续 2 秒,然后直接 error,点击播放又能播两秒。我把这个现象交给它,它分析出是由于丢包导致。

它继续往下查,发现不止是丢包。摄像头发的是 H.265,而 go2rtc 在生成 H.265 的解码器配置信息时只填了 3 个字节,剩下的 21 个字节都是 0,里面的 level、色度采样这些参数全是非法值。ffmpeg 拉流只读码流里的 SPS,不看这段配置,所以用 ffmpeg 或者 RTSP 看一切正常;Safari 是拿这段配置去建解码器的,拿到非法参数直接拒绝,整条流就都播不了,而且报不出什么有用的错误。把缺的字节补上,画面就出来了。

能播之后,画面还是一顿一顿。这次我让它去量:摄像头实际发出来的是 21 帧/秒,我们真正转发出去的只有 8.5 帧/秒,关键帧间隔 4.6 秒,丢包大概 3%,而画面卡住的时间占到了 66%。原因是 H.265 的帧前后互相参考,丢一帧,后面的一串就都得扔掉,只能冻结着等下一个关键帧,而关键帧要等 4.6 秒。也就是说,只有 3% 的丢包,我们却有三分之二的时间看不到画面。

我让它顺手把「米家 APP 的丢包重传能不能抄」也查清楚,结论是 TUTK 的媒体通道按设计就不重传,官方 SDK 里丢帧是当作正常错误抛给上层的,客户端没有任何补包接口。我们也按协议向摄像头上报接收序号试着请求补包,连续发了 90 秒,它一包都没补。所以米家 APP 在丢包的时候也一样丢帧,它是靠解码器自己容错,或者主动去要关键帧。

它还挖出两个「点开一片黑」的原因,都修掉了。一个是 go2rtc 启动时会注册一个预热消费者来保持连接,这个注册是阻塞地去拨号的,中继冷启动要 80 秒,一旦超时失败,报个错就再也没人管了,之后每次点开都是从零开始的冷启动,改成失败就重试。另一个是会话还活着,但一个关键帧都不出,我实测到过连续 45 秒视频流里零关键帧,播放器永远起不来,而且它不报错就那么僵着,现在改成 30 秒没关键帧就主动丢掉,重新拨号。

成果

现在是点一下状态栏的图标,10 到 20 秒出画面,1080p 带声音,点掉弹窗流就停,不占带宽。

链路差的时候还是一顿一顿,赶上不好的窗口可能黑一两分钟,等它自己恢复。观感肯定比不过米家 APP,它的链路和容错都更好。但对我够用了:想看家里一眼,不用再掏手机。

总结

总结下就是:给了 AI 一个任务,能不能把米家摄像头视频移植到 mac 状态栏中,点击就能查看。AI 自己工作了两天。刚开始说简单,直接使用小米开源的 miloco 就可以实现,后来它发现我的摄像头是 18 年的太老,用的还是 TUTK 协议,结果把 APP 逆向了,把协议分析了一遍,还安装了虚拟机抓取米家数据包,对使用到的 go2rtc 还做了源码级修改。自己测试发现丢包严重,还分析了是我的网络问题还是数据回传问题,还考虑要不要实现米家的丢包重连机制。

我在这两天里做的就是:将现象告诉它,目标告诉它,它会让我安装抓包工具、安装虚拟机、登入,把现象给它,后面自己就一直思考和处理。

有一个细节我印象比较深,它为了确认 H.265 那段配置到底该填什么,用 ffmpeg 拿同样的参数集生成了一份标准答案,然后逐字节比对,不是猜出来的。所以我觉得这种逆向和调试的活,AI 能不能做成,关键可能不在它会不会写代码,而在能不能拿到一手的证据,官方的文档、抓到的流量、日志,这些才决定它能走多远。

整体过程大概持续了两天时间,最终把效果实现了。当然你若是新的米家摄像头就不用如此麻烦,一句话就能搞定。

我把小米摄像头监控视频移植到了mac上" 网络安全文章

我把小米摄像头监控视频移植到了mac上"

本文记录作者借助AI将小米摄像头监控视频移植到Mac状态栏的完整过程。核心难点在于老摄像头使用TUTK协议,miloco不支持,最终通过逆向米家APP、抓包分析协议、修改go2rtc源码解决。过程中发现H.265编码配置错误导致Safari无法播放,以及丢包导致画面卡顿等问题。作者强调AI调试成功关键在于获取一手证据,而非单纯写代码能力。
实习校招面试,常见内网面试题:八股,场景题,免杀(网络安全)" 网络安全文章

实习校招面试,常见内网面试题:八股,场景题,免杀(网络安全)"

本文为实习校招内网渗透面试准备指南,涵盖八股知识、场景提问与免杀三大模块。八股部分涉及代理区别、域信息搜集、密码抓取、域控定位、横向思路、提权方式、Kerberos攻击及常见nday利用等核心知识点。场景部分聚焦shell深入利用、高防内网横向、域控后扩大成果、孤儿网处理、抓取密码失败原因分析等实战问题。免杀部分作者自述不会。文章可作为内网渗透面试复习提纲,建议结合实战案例深入理解原理。
秋招大满贯之人!" 网络安全文章

秋招大满贯之人!"

文章描述2026年秋招就业形势严峻,按学历分层分析求职难度,985/211选择多,一本尚可,二本及以下困难。厂商HC极少,多靠实习生转正,体面就业难,外包成兜底。作者对春招不乐观,认为行业寒冬已至。
评论:0   参与:  0