直播架构原理
我们把直播流设想成一个流通道,直播流流程可简述为四个步骤
- 通过推流SDK集成在终端的推流工具进行资源采集、编码后上传()
- 服务端SDK负责直播流地址的分发、统计、调度等优化
- 集成拉流SDK的拉流终端进行解码解析、播放(通过服务端分配的拉流地址进行播放)
- 业务服务器负责流地址的管理、授权、认证。
涉及协议
RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题。
参考连接
HTTP Live Streaming(缩写是HLS)是由苹果公司提出基于HTTP的流媒体网络传输协议。是苹果公司QuickTime X和iPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。
参考链接
HDL(HTTP-FLV)即将音视频数据封装成 FLV(Flash Video),然后通过 HTTP 协议传输给客户端。
参考连接
相关工具(推播流SDK)
阿里云云直播解决方案快速入门
为了能够顺利快速完成视频直播体验、请提前准备并了解下述列表内容
- 注册阿里云账号、并开通服务
- 注册、并备案域名
- 开通【视频直播】、【视频导播】服务
- 创建Bucket【OSS对象存储】
授予【视频直播】对【OSS对象存储】的访问权限【AliyunMTSDefaultRole】
可选:授予RAM用户的【视频直播】、【OSS对象存储】权限
6.推流工具使用简要使用(OBS、杏林推流)
架构大图
服务开通
说明 您可以登录阿里云控制台,在 账号管理 > 实名认证中完成实名认证。
域名配置
添加域名
生成域创建直播活动之前,您需要先添加直播域名,请按照以下步骤完成操作
前提条件
- 如果您要进行国内的直播活动,需提供已备案的域名才可使用直播服务。
- 如果您的域名还未备案,请先将域名备案。
_
操作步骤
- 登录视频直播控制台。
- 单击域名管理 > 添加域名 。
说明 您需要分别添加 推流域名和 播流域名。
- 配置播流域名,并单击下一步。
说明
- 直播中心:指直播中心所在地域,直播推流域名与播流域名必须在一个地域。
- 业务类型:指域名的加速类型,推流域名与播流域名分别对应推流加速与播流加速。
- CDN加速区域:指域名可执行加速的地域。
- 播流域名添加成功。请您重复以上步骤添加推流域名。
- 单击返回域名列表。
- 单击添加域名。
-
关联域名
推流域名与播放域名添加成功后,您需要进行域名的关联才能进行推流和播流操作。 先通过AddLiveDomain添加域名,域名添加成功后,再通过自定义key生成鉴权串,最后通过
推、播流域名+AppName+StreamName + 鉴权串
组成推、播流地址 登录 视频直播控制台。
- 单击 域名管理。
- 选择所需的 播流域名,并单击右侧的 域名配置。
- 在 基本配置 > 推流信息 中,选择 推流信息 并单击 未配置。
- 在推流域名下拉列表中,选择所需的 推流域名 并单击 确定。
- 如果需要关联多个推流域名,请您单击页面下方的 添加推流信息 进行关联。
配置鉴权
URL 鉴权功能旨在保护用户站点的内容资源不被非法站点下载盗用。鉴权功能默认为开启状态,建议您保持默认开启状态,否则会出现直播被盗录、盗播的风险。
当鉴权功能开启时,有默认鉴权和自定义鉴权两种鉴权方式,您可按需选择默认鉴权或自定义鉴权。
- 默认鉴权默认鉴权中,鉴权key随机分配,有效时长 30 分钟。超过有效时间,鉴权失效。
- 登录 视频直播控制台。
- 单击 直播管理 > 地址生成器 > 边缘推流。
说明 边缘推流可以把视频推流至最优 CDN 节点,以减少卡顿、拉流缓慢的问题。建议您优先选择 边缘推流。 - 选择需要鉴权的 播流域名、关联的推流域名,输入相应的 AppName 和 StreamName,并单击 开始生成。
说明 您可以按需对推流域名或播放域名进行鉴权。建议您对推流域名和播流域名都进行鉴权,以减少直播被盗录、盗播的风险。
您可以获得鉴权的推流地址和播流地址。
- 自定义鉴权如不采用默认配置,您也可以对鉴权主KEY、副KEY、有效时长、AppName和StreamName等进行自定义,然后再生成鉴权URL进行推流。
说明 主KEY 是计算加密字符串的一个密钥。若 主KEY 执行更换,所有使用 主KEY 的地址会立即失效。 副KEY 的作用是,当 主KEY 需要更换时,使用 主KEY 的推流或播放地址不会马上中断, 副KEY 做为更换的桥接。
- 在 直播管理 > 地址生成器 > 边缘推流 中,选择需要鉴权的 播流域名、关联的推流域名,输入相应的 AppName 和 StreamName,并单击 开始生成。
您可以获得鉴权的推流地址和播流地址。推流工具
PC
推流工具:下载并安装推流工具。本文以使用OBS推流工具为例说明。下载地址见 OBS官方下载地址。
播放工具:下载并安装播流工具。本文以使用VLC播放器为例说明。下载地址见 VLC media player官方下载地址手机
推流工具:在应用商店搜索【杏林推流】安装即可、使用请参考推流工具使用
RAM授予权限
- 直播录制下来的文件存储在用户OSS的Bucket中,需要对直播服务Live授权访问OSS,去授权
- 查看授权是否成功:主账号于阿里云官网,搜索“访问控制”> RAM角色管理 > 搜索角色:AliyunMTSDefaultRole > 角色授权策略
- 如使用子账号查看是否有AliyunMTSDefaultRole授权,需要主账号为其子账号配置AliyunRAMFullAccess权限