2024/10/25 14:59:33
实现合流录制
云端录制支持单流录制、合流录制和页面录制三种模式。合流录制模式指录制并混合频道内所有指定 UID 的音视频,生成一个包含所有指定 UID 音视频的 HLS (HTTP Live Streaming) 流媒体点播文件和可选的 MP4 格式文件。
前提条件
开始前,请参考使用 RESTful API 开始云端录制进行一次完整的录制流程体验。
实现步骤
本节介绍如何在申请录制服务器资源后,实现合流录制。
开始录制
在调用 start
方法时,你需要将 mode
参数设置为 mix
,开启合流录制模式。
注意
录制模式的设置必须在开始录制的时候完成,不支持在录制开始后切换模式。
以下介绍设置合流录制的 clientRequest
关键配置,确保你进行正确设置以实现预期的录制效果。
字段 | 配置内容 |
---|---|
recordingConfig | JSON Object,用于配置音频流订阅、转码、输出音频属性。 |
storageConfig | JSON Object,第三方云存储设置。 |
请求示例如下:
-
请求 URL:
HTTPhttps://api.sd-rtn.com/v1/apps/<yourappid>/cloud_recording/resourceid/<resourceid>/mode/mix/start
-
请求 Body 内容:
JSON{
"uid": "527841",
"cname": "httpClient463224",
"clientRequest": {
"token": "<token if any>",
"recordingConfig": {
"maxIdleTime": 30,
"streamTypes": 2,
"audioProfile": 1,
"channelType": 0,
"videoStreamType": 0,
"transcodingConfig": {
"height": 640,
"width": 360,
"bitrate": 500,
"fps": 15,
"mixedVideoLayout": 1,
"backgroundColor": "#FF0000"
},
"subscribeVideoUids": [
"123",
"456"
],
"subscribeAudioUids": [
"123",
"456"
],
"subscribeUidGroup": 0
},
"recordingFileConfig": {
"avFileType": [
"hls",
"mp4"
]
},
"storageConfig": {
"accessKey": "xxxxxxf",
"region": 3,
"bucket": "xxxxx",
"secretKey": "xxxxx",
"vendor": 2,
"fileNamePrefix": [
"directory1",
"directory2"
]
}
}
}
停止录制
录制完成后,调用 stop
方法离开频道,停止录制。录制停止后如需再次录制,必须再调用 acquire
方法请求一个新的 Resource ID。
请求示例如下:
-
请求 URL:
HTTPhttps://api.sd-rtn.com/v1/apps/<yourappid>/cloud_recording/resourceid/<resourceid>/sid/<sid>/mode/mix/stop
-
请求 Body 内容:
JSON{
"cname": "httpClient463224",
"uid": "527841",
"clientRequest": {}
}
录制生成文件
录制后共生成一个 M3U8 文件和多个 TS 文件。根据 avFileType
字段的设置,还有可能生成一个或多个 MP4 文件。录制文件的切片和命名原则详见录制文件介绍。
合流录制生成的文件如下图所示:
开发注意事项
Native 端、Web 端及框架端用户在用户中途停止发流或退出频道后的显示策略如下:
取消发布本地视频 | 禁用视频轨道 | 退出频道 |
---|---|---|
|
| 优先显示画布背景图,如无画布背景图则显示画布背景色。如果画布背景色也未设置,则显示默认的黑色画布背景色。 |
参考信息
相关文档
在合流录制过程中,你还可以参考如下文档:
API 参考
你可以参考以下方法了解字段详情: