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(单流)

  • 相关阅读:
    poj 2325 Persistent Numbers (贪心+高精度)
    迷宫 (BFS)
    poj1087 A Plug for UNIX & poj1459 Power Network (最大流)
    hdu 3549 Flow Problem (最大流)
    CodeForces Round #179 (295A)
    poj 1328 Radar Installation
    HTML 网页游戏 2048
    图论加边算法--链式向前星
    c语言 字符版 简易2048
    POJ 2115 C Looooops(扩展欧几里得)
  • 原文地址:https://www.cnblogs.com/darlingmz/p/12098567.html
Copyright © 2011-2022 走看看