Skip to content

feat: 实现同频道同源的组播连接复用,降低网络开销与系统负载 #748

Description

@CGG888

当设备 A 播放 CCTV-1(源1)并已建立连接后,若设备 B 也请求播放同一频道(CCTV-1,源1),此时 rtp2httpd 能否复用该频道已有的组播链路,避免重复创建组播连接?

描述
当前 rtp2httpd 对每个客户端请求独立创建组播订阅(IGMP join),即使多个客户端请求完全相同的频道和源。这导致:
• 上游组播路由器需要维护多条重复路径,浪费带宽;

• 服务器自身产生大量冗余 RTP 解包、解码线程。

期望行为:

  1. 当客户端 A 已建立 cctv1/source1 的组播连接后,客户端 B 请求同一资源时自动复用该连接,仅复制数据流分发给 B。
  2. 采用引用计数管理生命周期,最后一个客户端断开后释放组播资源。
  3. 提供配置开关(reuse_group_mcast = true/false),默认开启。

附加说明:
• 复用层应位于 RTP 数据到达之后、HTTP 封装之前,确保不影响现有转码/录制流程。

• 需兼容 IPv4/IPv6 双栈组播地址。

• 建议新增 /api/v1/multicast/reuse_stats 接口查询复用效率。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions