本文主要介绍推流到 CDN 的具体步骤。
前提条件
已开通腾讯 云直播 服务。应国家相关部门的要求,直播播放必须配置播放域名,具体操作请参考 添加自有域名。
使用前提
开启旁路推流功能
- 登录 实时音视频控制台。
- 在左侧导航栏选择【应用管理】,单击目标应用所在行的【功能配置】。
- 在【旁路推流配置】中,单击【启用旁路推流】右侧的开关,在弹出的【开启旁路推流功能】对话框中,单击【开启旁路推流功能】即可开通。
使用场景
场景1: 推流到腾讯云 CDN
步骤一:配置播放域名并完成 CNAME
- 登录 云直播控制台。
- 在左侧导航栏选择【域名管理】,您会看到在您的域名列表新增了一个推流域名,格式为 xxxxx.livepush.myqcloud.com,其中 xxxxx 是一个数字,叫做 bizid,您可以在 实时音视频控制台 >【应用管理】>【应用信息】中查找到 bizid 信息。
- 单击【添加域名】,输入您已经备案过的播放域名,选择域名类型为【播放域名】,选择加速区域(默认为【中国大陆】),单击【确定】即可。
- 域名添加成功后,系统会为您自动分配一个 CNAME 域名(以.liveplay.myqcloud.com为后缀)。CNAME 域名不能直接访问,您需要在域名服务提供商处完成 CNAME 配置,配置生效后,即可享受云直播服务。具体操作请参见 CNAME 配置。
步骤二:关联用户的音视频流到直播 streamId
开启旁路推流功能后, TRTC 房间里的每一路画面都配备一路对应的播放地址,该地址的格式如下:
http://播放域名/live/[streamId].flv
- 若您选择“全局自动旁路”模式,进房并发布流的每一个用户都存在默认的 streamId 为
${sdkAppId}_${roomId}_${userId}_main
, 您可以使用 client.startPublishCDNStream 接口更改默认的 streamId
let options = { streamId: 'user_stream_001' }
try {
await client.startPublishCDNStream(options);
} catch (error) {
console.log('startPublishCDNStream failed', error);
}
- 若您选择“手动旁路模式”模式,您可以使用 client.startPublishCDNStream 接口指定 streamId 并开始向腾讯云 CDN 发布当前用户的音视频流。
let options = { streamId: 'user_stream_001' }
try {
await client.startPublishCDNStream(options);
} catch (error) {
console.log('startPublishCDNStream failed', error);
}
- 若您选择“手动旁路模式”模式,您可以使用 client.stopPublishCDNStream 接口停止向腾讯云 CDN 发布当前用户的音视频流。
try {
await client.stopPublishCDNStream();
} catch (error) {
console.log('stopPublishCDNStream failed', error);
}
场景2: 推流到指定 CDN
-
在任意云服务商获取 CDN 推拉流地址。
-
在 实时音视频控制台 >【应用管理】>【应用信息】中查找到 appid 和 bizid 信息。
-
使用 client.startPublishCDNStream 接口开始向指定 CDN 地址发布当前用户的音视频流。
let options = {
appId: 0,
bizId: 0,
url: ''
}
try {
await client.startPublishCDNStream(options);
} catch (error) {
console.log('startPublishCDNStream failed', error);
}
- 使用 client.stopPublishCDNStream 接口停止向指定 CDN 发布当前用户的音视频流。
try {
await client.stopPublishCDNStream();
} catch (error) {
console.log('stopPublishCDNStream failed', error);
}
特殊说明
v4.10.0 及其之前版本,您可以通过调用 TRTC.createClient 接口传入 streamId 参数绑定直播 CDN 流 ID。
v4.10.1 及其之后版本,TRTC.createClient 接口的 streamId 参数被废弃。请您通过 client.startPublishCDNStream 接口传入 streamId 参数绑定直播 CDN 流 ID。