组播断流续命v2.0 来了:多人同看只占一份下行带宽+可视化面板来了

距离 UDP Stream 上一个版本发布已经过去了一段时间。

在 v1.0 版本中,我们解决了最让人头疼的 udpxy 后台重启导致播放器断开的问题,实现了“断流自动续命”。

但是发现有个bug:家里三台电视同时看同一个节目,设备会建立了三个连接去拉流,因此做了更新一版。

为了解决这个bug,更新了UDP Stream v2.0 (及后续 v2.2 NetMon 版本) ,对核心代码进行重构,带来了共享缓存机制可视化监控面板

🚀 v2.0 核心更新解读

1. 同频道共享下载

在旧版本中,如果有 3 个客户端(电视/手机)同时播放同一个频道(URL),容器会开启 3 个下载线程,占用 3 份带宽。

v2.0 引入了单例广播模式:

不管有多少个客户端连接同一个 URL,容器只建立 1 个下载线程,向源头拉取 1 份 数据,然后在内存中“广播”分发给所有观众。

效果立竿见影:

  • 省带宽:多人同看,源头(光猫/VPS)带宽占用降低 N 倍。
  • 降负载:保护脆弱的 udpxy 服务不被高并发冲垮。

👇 看图说话: 如下图所示,“在线观众”显示为 2 人,但左上角的“活跃流数量”仅为 1。这意味着 2 个人在共享这 1 条下载通道,极大地节省了入站带宽!

组播断流续命v2.0 来了:多人同看只占一份下行带宽+可视化面板来了
同一个URL

2. 全新可视化仪表盘 (Dashboard)

告别枯燥的 JSON 接口,现在访问 http://ip:端口/status,你将看到科技感十足的实时监控面板。

  • 实时网速监测
  • ↓ 下载速度 (RX):容器从源头拉取数据的速度。
  • ↑ 上传速度 (TX):容器分发给所有客户端的总速度。
  • 注:如果多人共享,你会发现 TX 往往大于 RX,这就是省流的证明!
  • 资源监控:实时查看内存占用(RSS)和活跃连接数。
  • 流状态详情:可以看到每个频道的观看人数、运行时间、已传输数据量以及缓冲区健康度
组播断流续命v2.0 来了:多人同看只占一份下行带宽+可视化面板来了
可视面板

👇 多路并发也能清晰展示

3. 智能起播缓冲:拒绝“开局就卡”

在 v2.0 中,我们优化了数据发送逻辑。当新用户连接时,程序不会急着立刻转发数据,而是强制在队列里积攒够 2MB 数据后,再开始向播放器发送。

这有什么用? 虽然这可能会让起播速度慢 0.5~1 秒,但这 2MB 的“安全垫”能有效防止因起播时网络波动导致的画面卡顿,让播放体验更丝滑。


💡 避坑指南:卡顿 vs 断流

很多朋友对这两个概念有误解,这里特别说明一下本工具的能力边界

❌ 无法解决“卡顿”

  • 现象:画面转圈缓冲,或者像 PPT 一样一顿一顿,网速忽快忽慢。
  • 原因:通常是源头质量差、网络丢包或带宽不足。
  • 结论:如果源头本身就在卡,神仙也救不了。本工具无法凭空变出带宽。

✅ 专治“断流”

  • 现象:画面突然黑屏,播放器直接退出,或者报错停止。
  • 原因:通常是源服务器(如 udpxy)重启、崩溃,或者是 Session 超时。
  • 结论这才是本工具的强项! 当源头断开时,它会在后台疯狂重连,同时“欺骗”播放器连接依然存在,直到源头恢复,实现“无感续命”。

🛠️ 部署与升级

镜像已推送到 GitHub Container Registry,支持 x86 和 ARM64。

Docker Run 命令(推荐):

由于国内网络环境原因,直接拉取 ghcr.io 可能会非常慢或失败。强烈建议使用南京大学的镜像加速服务:

docker run -d \
  --name udp-stream \
  --restart=always \
  -p 5000:5000 \
  ghcr.nju.edu.cn/cqshushu/udp-stream:latest

注意:如果你之前有安装版本,请先停止并删除镜像和旧容器,然后使用上面的命令拉取新镜像。


⚠️ 部署架构建议

✅ 场景一:内网部署,内网使用(强烈推荐)

架构:NAS/软路由部署容器 ➡ 家里电视/手机观看。

评价:⭐⭐⭐⭐⭐

理由

  • 这是本工具的最佳战场。
  • 内网千兆环境传输稳定,无二次转发损耗。
  • 完美利用 v2.0 的“共享下载”特性,减轻光猫负担。
  • 配合可视化面板,轻松监控家里谁在看电视。

❌ 场景二:内网部署,公网转发使用(不建议)

架构:NAS 部署容器 ➡ 路由器端口映射/FRP ➡ 外部(公司/朋友家)观看。

评价:⭐

理由

  • 极易卡顿,体验极差。
  • 多重转发瓶颈:数据流向是 光猫 -> NAS -> 路由器NAT -> 运营商公网 -> 朋友设备。经过了多次路由转发和封装,每一跳都会增加延迟和丢包风险。
  • 上行带宽限制:家庭宽带的上行通常很小(30M左右)。虽然 v2.0 帮你在内网省了下载流量,但转发给外部朋友时,每一路视频都要实打实地占用你的上行带宽。3 个朋友看高清台,你家宽带上行瞬间就爆了。

结语: v2.0 是一个里程碑式的版本,不仅让内网分发更高效,更让一切状态看得见、摸得着。

1人评论了“组播断流续命v2.0 来了:多人同看只占一份下行带宽+可视化面板来了”

  1. Pingback: udp stream v2.3组播断流续命:接口生成工具上线,支持 TXT/M3U 互转 - 医工学习日志

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部