zoukankan      html  css  js  c++  java
  • 【音视频】自研直播推流-流程概览

    入行直播项目也有很久了(2年算个坎吗?),从业务需求变成底层音视频需求测试,过程中遇到很多盲点和知识误区。

    所以更加注重底层服务的交互,分细节整理完流程图和测试手段,感觉了却一桩大事。

     

    注:观众上麦变嘉宾(即推流又拉流):

    1、推流

    2、拉主播流和房间内其他嘉宾的流


    核心点总结:

    1. 客户端SDK

      1. ip探测:发生在每次中心启动/开播时,有egde变化则会自动更新可用edge,保证服务正常。
      2. 降级策略:多路用户进房间拉流超时,则会自动降级为合流,播放。
      3. 混流功能:支持go mixer pro混音设备,将音乐与话筒采集的数据进行混音。
    2. 流媒体服务+信令(mp+signal):线上一共36台egde,QA环境目前可用8台。

      1. edge等同于mp,所有流的来源都是mp提供的。
      2. 断网重连:房间内的用户网络断开,根据房间ID去实时更新流个数。
      3. 级联:一个edge上的服务不可用,则会自动探测可用edge支持服务,级联业务担保。
      4. signal直连:同一台edge上拉流。
    3. center中心

      1. 与客户端:(http)
        1. 鉴权auth:center提供给前端可用的edge,保证服务的可用性。
        2. 刷新edgeList:在APP内,每2个小时数自动刷新一次,更新edgeList。
      2. 与signal:(rpc)
        1. edge注册:心跳、保活、ping、mp管理
        2. peer Add/peer Remove:
        3. 用户分配角色:Participant PeerList、Viewer PeerList、ViewerCdn PeerList
      3. 级联:跨edge:切换用户edge
        1. 连麦
        2. pk
      4. room host/quit -> edge close room
      5. 限流/负载警报
    4. 计算中心+信令(cc+signal)

      1. 流程:业务 -> 客户端 -> signal -> center -> cc - cdn
      2. mix Stream(混流):start/stop
      3. signal Stream(单流)

  • 相关阅读:
    Codefoces Gym 101652 【最大连续和】
    HYSBZ 4034 【树链剖分】+【线段树 】
    Codeforces Gym 101291C【优先队列】
    Codeforces gym 101291 M (最长交替子序列)【DP】
    HDU 3308 LCIS (经典区间合并)【线段树】
    POJ 3237 Tree (树链剖分+边权转点权)
    POJ 2763 Housewife Wind (树链剖分+边权转点权)
    P1054 等价表达式
    P1107 [BJWC2008]雷涛的小猫
    P1552 [APIO2012]派遣
  • 原文地址:https://www.cnblogs.com/darlingmz/p/12098567.html
Copyright © 2011-2022 走看看