Hi there 👋

Welcome to my blog, my name is Ray. I am a software developer and this is my personal blog where I share my thoughts, experiences, and projects. Feel free to explore and connect with me!

用 OBS + MediaMTX 搭一个本地视频流给视觉程序用

开发目标检测、姿态识别这类视觉程序的时候,有个很烦的问题:你需要一个可控的、可重复的视频输入源。 对着真实的摄像头调试?光线一会变一个样,人走来走去的,画面完全不可控。用视频文件做输入吧,有些程序又只认摄像头设备或者RTSP地址,不认本地文件路径。 所以我需要一个东西,既能把视频文件"伪装"成一个实时的视频流,让下游程序当摄像头一样去读。又能快速接入各种我想要做出的画面或者 usb 摄像头来测试视频效果。 当然如果有更好的方案欢迎大家留言(鬼知道有没有人看得到我的文章) 其实 OBS 自带的 Virtual Camera 也能解决一部分问题,但我没怎么用过。 这次搭的链路长这样: 1 视频文件 → OBS 推流 → MediaMTX → RTSP → ffplay / OpenCV / 目标检测程序 MediaMTX 是什么 之前没见过 MediaMTX,一开始还以为是某种虚拟摄像头设备。不是。 MediaMTX 是一个本地流媒体中转服务器,用 Go 写的,一个二进制文件就能跑。它能把推过来的流转成 RTSP、RTMP、HLS、WebRTC、SRT 等各种协议的输出。也就是说你往里面塞一路流,下游不管你用什么协议来读,它都能接。 GitHub 地址:bluenviron/mediamtx,macOS arm64 直接下载解压就能用。 启动 MediaMTX 1 2 cd /Volumes/extStorage/rayEx/Downloads/mediamtx_v1.18.2_darwin_arm64 ./mediamtx gemini 最早叫我下载完之后直接刷机打开,启动的时候会报一条 warning:是因为双击启动的目录对不上,他找不到 yml,进入路径执行就没问题了 1 WAR configuration file not found (looked in .../rtsp-simple-server.yml, .../mediamtx.yml), using an empty configuration 默认配置已经把常用端口都打开了: 1 2 3 4 5 RTSP :8554 RTMP :1935 HLS :8888 WebRTC :8889 SRT :8890 本地调试足够用了,不用改 yml。后面需要鉴权、固定路径、改端口的时候再配。 ...

May 19, 2026 · 3 min · 455 words · Ray

让 Claude Code 直接画 draw.io 图

昨天看到一篇 drawio-mcp 的文章,说 draw.io 官方开源了 MCP,可以让 AI 直接生成可编辑架构图。 真是天赐的礼物 目前我画图基本都是用 processon这个平台,因为他在线编辑,所以等于一次编辑,导出修改查看。但是可惜的是这种肯定是要收费的,所以一直想找个替代版,另外还有一个问题是,让 LLM 输出 ASCII 字符画的话 很难进行拖动框框和一些 线路的修改。 看了一眼,mcp GitHub - jgraph/drawio-mcp · GitHub,我似乎没有太多的 在线浏览之类的需求,首先我之前没怎么用过 drawio,我只有一个大概的概念。我找了一下他有 desktop 版本的,于是我下载了他的 desktop。然后仓库里面其实有一个 skills:drawio-mcp/skill-cli/drawio/SKILL.md at main · jgraph/drawio-mcp · GitHub 你可以直接叫 codex 或者 claude code去安装这个 skills 这个 drawio skill,本质上就是一份 Agent 指令。它会让 Claude Code 直接生成原生 .drawio 文件,也就是 draw.io 自己用的 mxGraphModel XML。 这点很关键。它不是先写 Mermaid,然后丢给某个服务转换;也不是生成一张死图。它写出来的就是 draw.io 能继续编辑的源文件。 用法也很直接,在 Claude Code 里喊 /drawio 就行: 1 2 3 /drawio create a flowchart for user login /drawio sequence diagram for API auth /drawio ER diagram for blog posts and tags 如果不指定格式,它就生成 .drawio 文件,然后尝试打开 draw.io。 ...

May 13, 2026 · 2 min · 271 words · Ray

用 RTK 给 Claude Code 省点 token

Token 已成为新型货币!!! 那么省钱是第一要素,这里介绍一个好玩的东西:RTK(Rust Token Killer) 说能省 60-90% 的 token。是不是吹,试试就知道 RTK 是什么 简单说,RTK 是一个 CLI 代理,用 Rust 写的单文件二进制,零依赖。它做的事情就是卡在 AI 编程助手和 shell 命令之间,把命令的输出压缩过滤之后再返回给 AI。 举个例子,你让 Claude Code 跑一个 git status,正常情况下它会拿到完整的输出——每个文件的路径、状态、分支信息,全都一股脑塞进去,可能得 2000 个 token。但经过 RTK 过滤之后,真正有用的信息被提取出来,没用的噪音被砍掉,可能就 200 个 token 搞定了。 这就好比你朋友问你"今天中午吃了啥",你不用把整个食堂菜单念一遍,直接说"黄焖鸡"就行了。 看一下这个原理图就明白了: 它支持四种压缩策略:智能过滤(去掉注释、空行这些噪音)、分组聚合(把同类文件按目录归拢)、截断保留(只留关键上下文)、去重折叠(重复的日志行显示为计数)。 怎么使用 安装方式挺多的,Homebrew、cargo、curl 脚本、直接下二进制都行: 1 2 3 4 5 6 7 8 # Homebrew brew install rtk # 或者一键脚本 curl -fsSL https://rtk-ai.dev/install.sh | bash # 或者 cargo(注意要用 git 源,crates.io 上有个同名的 Rust Type Kit 别装错了) cargo install --git https://github.com/rtk-ai/rtk 装完跑一下 rtk --version 确认没问题。 ...

May 13, 2026 · 2 min · 262 words · Ray

简易运维指北

为什么不叫指南,因为不配。这篇文章就记几个我自己运维的时候老是去搜的命令,写下来方便以后翻。三个方向:Docker、网络、进程。 不会讲 Docker 基础用法,也不讲怎么装。假设你跟我一样,知道 docker 是啥,但具体运维的时候老忘命令。 Docker 这玩意占了多少资源? 服务器上跑了十几个容器,有时候磁盘或者内存告警了,第一反应就是"到底谁在吃资源"。 磁盘占用: 1 2 # 所有容器的磁盘占用,大的排前面 docker system df -v 这个命令会显示镜像、容器、build cache 各占了多少空间。-v 是 verbose,会逐个列出每个镜像/容器的大小。 如果发现某个镜像版本占了巨大空间,docker image prune 可以清理悬空镜像(就是那种 <none>:<none> 的)。加上 -a 会清掉所有没被容器引用的镜像,慎用。 1 2 3 4 5 6 7 8 # 只清悬空镜像 docker image prune # 清所有没在用的镜像(慎) docker image prune -a # 全家桶:清容器、网络、镜像、build cache docker system prune -a 内存和 CPU 实时占用: 1 docker stats 实时刷新的,类似 top。按 CPU 或内存排序,一眼就能看出谁是大户。Ctrl+C 退出。 ...

May 13, 2026 · 5 min · 998 words · Ray

Claude Code 斜杠命令大全

这是一篇长期更新的博客。只要我还在用 Claude Code,或者 Claude Code 还在更新,这篇就会跟着更新。哪天我不用了或者 CC 停更了,会在标题加个 [已停更]。如果对你有用,欢迎留言催更。 用 Claude Code (下文简称 CC) 有段时间了。它最让我觉得舒服的一点是,进了交互会话之后,输入 / 就能看到一堆斜杠命令,该干嘛一目了然。 但我一直有个困扰——命令越来越多,有些是后来加的,有些改了名字,有些直接被删了。光靠 /help 的列表已经不够用了,我想有个完整的地方能看到"到底有多少个命令,每个干嘛用的"。 官方文档其实整理得不错,但散落在好几个页面里。我决定自己手动过一遍,把所有斜杠命令都扒下来,记录用法,贴上参考链接。 调研日期: 2026-05-13,CC 版本 v2.1.140。数据来源主要是 官方 Commands 文档、CLI Reference 和 Changelog。 一点点点背景 Claude Code 是 Anthropic 在 2025年2月 以 “research preview” 形式发布的终端 AI 编码工具。简单说就是一个跑在终端里的 AI agent,能读你的代码、改文件、跑命令、操作 git,你用自然语言跟它说就行。 它一直在快速迭代。让 cc 查了一下官方 changelog,发现最早的记录只到 v2.1.94 (2026-04-07),再往前的版本历史已经查不到了。所以很多命令具体是哪个版本加进来的,我没法给出确切时间。如果你知道,欢迎留言补充。 当前总览 截至 v2.1.140 (2026-05-12),CC 的交互会话里一共有 70个 斜杠命令(算上别名的话是 86 个条目)。这个数字不含你自己写的 custom skills,也不含 MCP server 暴露出来的命令。 数量确实不少了。我按功能分了几个大类来整理,方便查找。 所有命令的详细文档入口: code.claude.com/docs/en/commands 会话管理 这类命令管的是"对话"本身——开始、继续、压缩、分支、回退。 ...

May 13, 2026 · 4 min · 694 words · Ray