当设备 A 播放 CCTV-1(源1)并已建立连接后,若设备 B 也请求播放同一频道(CCTV-1,源1),此时 rtp2httpd 能否复用该频道已有的组播链路,避免重复创建组播连接?
描述
当前 rtp2httpd 对每个客户端请求独立创建组播订阅(IGMP join),即使多个客户端请求完全相同的频道和源。这导致:
• 上游组播路由器需要维护多条重复路径,浪费带宽;
• 服务器自身产生大量冗余 RTP 解包、解码线程。
期望行为:
- 当客户端 A 已建立 cctv1/source1 的组播连接后,客户端 B 请求同一资源时自动复用该连接,仅复制数据流分发给 B。
- 采用引用计数管理生命周期,最后一个客户端断开后释放组播资源。
- 提供配置开关(reuse_group_mcast = true/false),默认开启。
附加说明:
• 复用层应位于 RTP 数据到达之后、HTTP 封装之前,确保不影响现有转码/录制流程。
• 需兼容 IPv4/IPv6 双栈组播地址。
• 建议新增 /api/v1/multicast/reuse_stats 接口查询复用效率。
当设备 A 播放 CCTV-1(源1)并已建立连接后,若设备 B 也请求播放同一频道(CCTV-1,源1),此时 rtp2httpd 能否复用该频道已有的组播链路,避免重复创建组播连接?
描述
当前 rtp2httpd 对每个客户端请求独立创建组播订阅(IGMP join),即使多个客户端请求完全相同的频道和源。这导致:
• 上游组播路由器需要维护多条重复路径,浪费带宽;
• 服务器自身产生大量冗余 RTP 解包、解码线程。
期望行为:
附加说明:
• 复用层应位于 RTP 数据到达之后、HTTP 封装之前,确保不影响现有转码/录制流程。
• 需兼容 IPv4/IPv6 双栈组播地址。
• 建议新增 /api/v1/multicast/reuse_stats 接口查询复用效率。