
一台服务器上运行 60 个容器
一个裸金属服务器运行数十到数百个 Hoody 容器。KSM 和 BTRFS 去重使边际成本接近零。
周六的免费工作坊,两百人报了名。你不想买 Zoom 200 席位档,不想搞 Twitch 账号,也不想用一个跨三个时区的日历。把屏幕流到一条带 ?n=200 的管道路径,把接收端 URL 贴到活动页面,剩下的事交给两百个浏览器标签。
ONE PIPE URL · 200 RECEIVERS · ZERO BUFFERING
ffmpeg 把你的 X11 显示编码成 webm。curl PUT 那条流到 /api/v1/pipe/workshop?n=200。管道会等到二百个接收者都连上同一条路径。每个接收者就是一个浏览器标签,在接收端 URL 后追加 ?video——Hoody 提供一个内嵌的 MSE 播放器。中间没有平台,字节从不落盘,你停掉编码器时 URL 自动失效。
ffmpeg -f x11grab -i :0 -c:v libvpx -f webm 读取显示并把 webm 写到 stdout。摄像头、幻灯片、终端——只要在 :0 上的都行。
curl -T - 把 stdin PUT 到 /api/v1/pipe/workshop?n=200。管道会保持发送端打开,直到二百个接收者连上匹配路径。
把带 ?video 的接收端 URL 贴到活动页或私信里。无 app、无注册、无日历邀请——参与者点一下就行。
管道返回一个嵌入了 MSE video 元素的 HTML 页。两百个浏览器标签以最慢接收者的速度同步观看实时流。
?n=200 给观众数封顶。管道最多支持 256 个接收者,并转发发送端的 Content-Type,让浏览器内的 MSE 播放器能解码这条流。n 不匹配返回 400。当你 ctrl-C 编码器时,URL 自动失效——没什么需要清理。
一个 200 人的工作坊,一般意味着升级套餐、设账号墙,加上一份你不想要的录播。把这些都拿掉,剩下的就是一条管道 URL——笔记本只出一份流,零账号,零事后清理。
字节只离开你的笔记本一次。管道负责扇出。你的上行不会乘以观众规模——决定节奏的是最慢的观众,而不是你的带宽。
无 Zoom 席位档、无 Twitch 用户名、无 YouTube 频道。主讲人有 Hoody。两百个观众有浏览器。名单到此为止。
管道纯流式——字节穿过去,什么都不写。当你停掉编码器时,URL 就死了。无保留策略、无 GDPR 工单、无关于谁拥有录像的 FTC 同意弹窗。
n 在每条管道路径上封顶 256。更大规模的观众,请从同一个编码器扇出到多条管道路径,或在管道 URL 前架一层会聚合的 CDN。
同一套 pipe + ?video 机制,根据你要填的房间不同,可以有三种读法。最后都收敛到同一行命令。
你不想为一个周六下午升级 Zoom。把屏幕流出去,把 URL 贴到活动页,然后停止为一年只用四次的容量付费。
没有任何东西被录在某台服务器上。管道流式转发;什么都不存。学生不需要 Twitch 用户名、Discord 或 Google 账号——他们只需要一个 URL。
Meetup 链接会被转发、嵌入、镜像。任何拿到 URL 的人都能打开;你 ctrl-C 时,URL 对所有人同时消失。观众规模可以扩,平台不必跟着扩。
一场工作坊、一个 URL、200 个安静的席位。无平台、无登录。
每个活动组织者都会攒一堆广播工具——每一个都假设你买套餐、开账号,或留一份你没要的录像。管道 URL 不假设其中任何一项。
下次再有两百人报名,发给他们一个 URL——不是会议邀请。