MiBeeSteward:为什么我选择用 Go 重新造一个设备管理轮子
做工作室运维,最头疼的从来不是某个具体问题,而是设备多起来之后的「不知道」。 不知道哪个设备还活着,不知道它上面跑了什么服务,不知道网络里什么时候多了台新机器,不知道某个端口是不是还开着——这种「不知道」积累到最后就是故障。
Continue reading →做工作室运维,最头疼的从来不是某个具体问题,而是设备多起来之后的「不知道」。 不知道哪个设备还活着,不知道它上面跑了什么服务,不知道网络里什么时候多了台新机器,不知道某个端口是不是还开着——这种「不知道」积累到最后就是故障。
Continue reading →内容写得再好,搜索引擎抓不到、搜不到,等于没写。这话说得有点重,但对绝大多数独立博客来说就是事实——你的服务器托管在某个 VPS 上、域名权重不高、外链稀少,Googlebot 可能一个月才来转一圈,而且每次来了看到的还是几周前的内容。读者在搜索框里输入的关键词,永远不会指向你的页面。一篇精心打磨的技术文章,最终只能躺在自己的归档页里吃灰。
Continue reading →在 MiBee NVR 项目里要把摄像头画面推到国内某直播平台,候选方案有三个:直接调 FFmpeg、用纯 Go 的 gortmplib、用 go2rtc。三个都能「推 RTMP」,但实际对接国内直播平台时表现差异巨大——有的秒断、有的几秒后断、有的稳如老狗。这篇从源码层面把三者拆开对比,并梳理对接国内 FMS 兼容平台时的坑和解法。
Continue reading →Zhi 主题 发布了 v0.2.0——这是从 4 月份 初次发布 后最重要的功能更新。这次发布的三个重头功能——多语言切换、文章系列(Series)分类法、Mermaid v11+ 升级——都是在自己使用过程中逐步积累的需求。
Continue reading →v0.6.0 把延时摄影管道搭起来之后,社区反馈很快就指出了几个硬伤:JPEG 序列要吃掉太多存储、H.265 摄像头生成的延时片段播放不了、双摄小米设备只能抓到主镜头、偶尔还会出现 H.265 HLS 直接 panic 的崩溃。这些都不是边缘场景——双摄 CW500 和室外摄像头 4 在国内出货量很大,H.265 已经是中高端摄像头的事实标准。v0.7.0 的主线就是围绕这些反馈展开的。
Continue reading →同期发布的 MiBeeNvr v0.6.0 带来了延时摄影、视频转码、ONVIF 增强等大功能,光靠单元测试远远不够,必须在真实摄像头环境下跑完整流程。为了给这个版本提供靠谱的测试机器,6 月 5 日同一天更新了三个摄像头项目——既是给 NVR 提供测试环境,也顺手解决了一些嵌入式开发中比较典型的工程问题。
Continue reading →MiBeeNvr 连续跑了几周录像后,存储最先告急。单路 1080p 摄像头每天要写几十 GB,30 天留存一件 1TB 硬盘就没了大半。社区里不少朋友反馈了同样的问题,讨论中延时摄影和转码保存的方案呼声最高——画面大部分时间静止,用 timelapse 压缩后同样时长只需要 5% 的空间。
Continue reading →v0.4.0 发布不到一周,又肝了 31 个提交。v0.5.0 是一个功能密度很高的版本:ONVIF 全协议支持(Device/Media/PTZ/Imaging/Event 五大服务全覆盖)、硬件转码(H.265 → H.264)、录制器重连优化。127 个文件变更,+24,509 / -730 行。完整更新列表见 GitHub Release Notes。
Continue reading →做运维出身,后来转开发,维护的项目越来越多。各种中间件、数据库、监控组件……每次升级版本都是一场体力活:去官网找下载链接、比对版本号、手动下载到内网、再分发到各台机器。以前写了一堆 Shell 脚本定期拉取最新版本到局域网,能用但不好用——脚本散落在各处,加新软件得手写解析逻辑,出错了也没什么日志可查。
Continue reading →为什么换 这个博客之前用的 Hugo NexT,fork 了一份自己做修改。NexT 本身是个功能很全的主题,但在"自己改"这件事上,体验不太行。
Continue reading →