直播架构原理

我们把直播流设想成一个流通道,直播流流程可简述为四个步骤

  1. 通过推流SDK集成在终端的推流工具进行资源采集、编码后上传()
  2. 服务端SDK负责直播流地址的分发、统计、调度等优化
  3. 集成拉流SDK的拉流终端进行解码解析、播放(通过服务端分配的拉流地址进行播放)
  4. 业务服务器负责流地址的管理、授权、认证。

image.png

涉及协议

RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题。
参考连接
HTTP Live Streaming(缩写是HLS)是由苹果公司提出基于HTTP流媒体网络传输协议。是苹果公司QuickTime XiPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。
参考链接
HDL(HTTP-FLV)即将音视频数据封装成 FLV(Flash Video),然后通过 HTTP 协议传输给客户端。
参考连接

image.png

相关工具(推播流SDK)

阿里云云直播解决方案快速入门

为了能够顺利快速完成视频直播体验、请提前准备并了解下述列表内容

  1. 注册阿里云账号、并开通服务
  2. 注册、并备案域名
  3. 开通【视频直播】、【视频导播】服务
  4. 创建Bucket【OSS对象存储】
  5. 授予【视频直播】对【OSS对象存储】的访问权限【AliyunMTSDefaultRole】

    可选:授予RAM用户的【视频直播】、【OSS对象存储】权限

    6.推流工具使用简要使用(OBS、杏林推流)

架构大图

image.png

服务开通

  1. 阿里云官网,选择企业应用 > 视频云 > 视频直播
  2. 单击 立即开通进入开通页面。
    直播简述 - 图4
  3. 如果未实名认证,请您先进行实名认证。登录 阿里云官网,注册账号并完善个人信息和实名认证(个人或企业均可)。
    直播简述 - 图5

说明 您可以登录阿里云控制台,在 账号管理 > 实名认证中完成实名认证。

  1. 实名认证开通后,进入直播控制台。
  2. 云产品开通页,选择计费方式按使用流量计费按带宽峰值计费,勾选我已阅读并同意《视频直播服务协议》并单击立即开通,控制台即可使用。直播简述 - 图6

域名配置

添加域名

生成域创建直播活动之前,您需要先添加直播域名,请按照以下步骤完成操作

前提条件

  • 如果您要进行国内的直播活动,需提供已备案的域名才可使用直播服务。
  • 如果您的域名还未备案,请先将域名备案

_
操作步骤

  1. 登录视频直播控制台
  2. 单击域名管理 > 添加域名
    直播简述 - 图7

说明 您需要分别添加 推流域名播流域名

  1. 配置播流域名,并单击下一步直播简述 - 图8说明
    • 直播中心:指直播中心所在地域,直播推流域名播流域名必须在一个地域。
    • 业务类型:指域名的加速类型,推流域名播流域名分别对应推流加速与播流加速。
    • CDN加速区域:指域名可执行加速的地域。
  2. 播流域名添加成功。请您重复以上步骤添加推流域名
  3. 单击返回域名列表
  4. 单击添加域名
  5. 配置推流域名,并单击下一步推流域名添加成功。

    关联域名

    推流域名与播放域名添加成功后,您需要进行域名的关联才能进行推流和播流操作。 先通过AddLiveDomain添加域名,域名添加成功后,再通过自定义key生成鉴权串,最后通过 推、播流域名+AppName+StreamName + 鉴权串 组成推、播流地址

  6. 登录 视频直播控制台

  7. 单击 域名管理
  8. 选择所需的 播流域名,并单击右侧的 域名配置
    直播简述 - 图9
  9. 基本配置 > 推流信息 中,选择 推流信息 并单击 未配置
    直播简述 - 图10
  10. 在推流域名下拉列表中,选择所需的 推流域名 并单击 确定
    直播简述 - 图11
  11. 如果需要关联多个推流域名,请您单击页面下方的 添加推流信息 进行关联。
    直播简述 - 图12

配置鉴权

URL 鉴权功能旨在保护用户站点的内容资源不被非法站点下载盗用。鉴权功能默认为开启状态,建议您保持默认开启状态,否则会出现直播被盗录、盗播的风险。
当鉴权功能开启时,有默认鉴权和自定义鉴权两种鉴权方式,您可按需选择默认鉴权或自定义鉴权。

  • 默认鉴权默认鉴权中,鉴权key随机分配,有效时长 30 分钟。超过有效时间,鉴权失效。
    1. 登录 视频直播控制台
    2. 单击 直播管理 > 地址生成器 > 边缘推流
      说明 边缘推流可以把视频推流至最优 CDN 节点,以减少卡顿、拉流缓慢的问题。建议您优先选择 边缘推流
    3. 选择需要鉴权的 播流域名关联的推流域名,输入相应的 AppNameStreamName,并单击 开始生成
      直播简述 - 图13

说明 您可以按需对推流域名或播放域名进行鉴权。建议您对推流域名和播流域名都进行鉴权,以减少直播被盗录、盗播的风险。
您可以获得鉴权的推流地址和播流地址。
直播简述 - 图14

  • 自定义鉴权如不采用默认配置,您也可以对鉴权主KEY副KEY有效时长AppNameStreamName等进行自定义,然后再生成鉴权URL进行推流。
    1. 登录视频直播控制台。
    2. 单击 域名管理,分别选择您想要自定义鉴权的推流域名和播流域名,并单击 域名配置
      直播简述 - 图15
    3. 单击 访问控制,选择 URL 鉴权,并单击 修改配置
      直播简述 - 图16
      您还可以在 直播管理 > 地址生成器 > 边缘推流 中,单击 播流域名关联的推流域名 下方的 去修改 快速进入自定义鉴权页面。
      直播简述 - 图17
    4. URL 鉴权 页面,对 主KEY副KEY有效时长 进行自定义配置,并单击 确定
      直播简述 - 图18

说明 主KEY 是计算加密字符串的一个密钥。若 主KEY 执行更换,所有使用 主KEY 的地址会立即失效。 副KEY 的作用是,当 主KEY 需要更换时,使用 主KEY 的推流或播放地址不会马上中断, 副KEY 做为更换的桥接。

  1. 直播管理 > 地址生成器 > 边缘推流 中,选择需要鉴权的 播流域名关联的推流域名,输入相应的 AppNameStreamName,并单击 开始生成
    直播简述 - 图19
    您可以获得鉴权的推流地址和播流地址。

    推流工具

    PC

    推流工具:下载并安装推流工具。本文以使用OBS推流工具为例说明。下载地址见 OBS官方下载地址
    播放工具:下载并安装播流工具。本文以使用VLC播放器为例说明。下载地址见 VLC media player官方下载地址

    手机

    推流工具:在应用商店搜索【杏林推流】安装即可、使用请参考推流工具使用

RAM授予权限

  1. 直播录制下来的文件存储在用户OSS的Bucket中,需要对直播服务Live授权访问OSS,去授权
  2. 查看授权是否成功:主账号于阿里云官网,搜索“访问控制”> RAM角色管理 > 搜索角色:AliyunMTSDefaultRole > 角色授权策略
  3. 如使用子账号查看是否有AliyunMTSDefaultRole授权,需要主账号为其子账号配置AliyunRAMFullAccess权限

附: