极速直播提供观众端多码率功能。开启该功能后,观众端可以观看按不同模版转码后的主播流,转码模版可以通过 RESTful API 自定义配置。
每个转码模版对应一个独立的转码频道,以相应的分辨率为频道后缀名。以上图为例:主播 A 和主播 B 在名为 "channel" 的频道中发流,当你创建了名为 "360p" 的转码模版后,观众端进入名为 "channel_360p" 的频道,就能看到主播 A 和主播 B 对应的转码流;同理你还可以创建名为 "720p" 的转码模版。
观众端多码率功能目前处于公测阶段,可免费使用。
前提条件
在实现多码率功能前,请确保:
实现多码率功能
实现多码率功能的基础步骤如下:
- 创建转码模版。
- 观众端加入对应的转码频道,即可观看转码后的主播流。
- (可选)观众端切换码率:观众需要先退出当前的转码频道,再加入目标转码频道。
其中步骤 1 通过调用 RESTful API 实现,详见 API 参考。
开发注意事项
转码频道相关限制
- 开启多码率功能后,注意不要使用与转码频道名相同的频道名。例如:主播在 "channel" 频道中直播,你创建了转码模版 "360p"(对应的转码频道为 "channel_360p"),则你不能再使用 "channel_360p" 这个频道名来创建新频道。
- 转码频道内主播的用户 ID 与原频道一致,因此原频道的主播不能同时以观众的身份加入转码频道。
- 为避免观众端加入不存在的转码频道,声网建议你在业务层添加逻辑,引导用户选择正确的转码频道。
转码的开始与停止
多码率功能遵循按需转码的原则,开始与停止转码的条件如下:
- 开始转码:第一位观众加入转码频道后,开始对原频道的每条主播流进行转码。其中原频道的使用场景必须设为直播场景,其它场景暂不支持。
- 停止转码:
- 原频道主播退出频道超过 1 分钟时,停止所有转码频道内对该主播流的转码。
- 转码频道超过 1 分钟没有观众时, 停止该转码频道内对所有主播流的转码。
参考信息
API 参考
多码率功能提供两种形式的 RESTful API 参考文档:
- 在线访问:支持在线调试,提供多种语言的示例代码。如果该链接访问速度较慢,可以尝试更改你的网络配置。
- 下载离线文件:与在线访问相比,不支持在线调试,仅包含一种语言的示例代码。如果需要调试和生成其它语言的示例代码,参考以下步骤:
- 下载
abr.json
文件。
- 下载 Postman。
- 在 Postman 中导入步骤 1 中下载的
abr.json
文件,根据参数解释填入参数,即可在 Postman 中调试和查看示例代码。具体操作可以参考 Postman 官方文档。