• 沒有找到結果。

4.1 示例 1:创建单流录制任务

场景描述

若您需要对某一个房间的实时音视频进行录制,可以在加入房间后,调用录制接口创 建单流录制任务。

前提条件

● 已获取需要使用的SparkRTC服务的终端节点rtc-api.myhuaweicloud.com。

● 已创建用于存储录制文件的OBS桶。可以通过调用OBS 创建桶API进行创建,并 在SparkRTC控制台完成OBS桶授权。

API 参考 4 应用示例

总体流程

1. 获取用户Token

2. 创建SparkRTC应用

3. 创建录制规则

4. 配置录制回调

5. 终端用户加入SparkRTC房间

6. 创建单流录制任务

操作步骤

步骤1 获取用户Token,用于调用SparkRTC接口时进行认证鉴权。

在“我的凭证”页面获取

username

password

domainname

,调用如下接口获取 Token。详细信息请参见3.1 构造请求。

POST https://iam.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json

{ "auth": { "identity": { "methods": [

API 参考 4 应用示例

],

步骤2 调用创建应用接口创建SparkRTC应用。

1. 选择POST请求方法并输入URI。

https://rtc-api.myhuaweicloud.com/v2/apps

2. 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。

3. Request Body中传入如下参数:

{ "app_name" : "rtctest"

}

4. 请求响应成功后,返回已创建应用的ID。

{ "app_id": "5ff9701f2346968bb306cb43", }

步骤3 调用创建或更新录制规则接口,创建录制规则。

1. 选择POST请求方法并输入URI。

https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/record-rules

2. 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。

3. Request Body中传入如下参数:

{ "obs_addr": {

API 参考 4 应用示例

"bucket": "obsName", "location": "cn-north-4", "object": "Record/",

"project_id": "01234567890123456789012345678901"

},

"record_formats": ["MP4"], "mp4_config": {}

}

4. 请求响应成功后,返回已创建的录制规则。

{ "app_id": "5ff9701f2346968bb306cb43",

"rule_id": "5d0ec2c53a2c15625017adb8bbbcd9ab", "create_time": "2021-04-21T10:29:33Z",

"hls_config": { "record_cycle": 0,

"record_max_duration_to_merge_file": 0 },

"mp4_config": { "record_cycle": 7200,

"record_max_duration_to_merge_file": 0,

"record_prefix": "Record/{publish_domain}/{app}/{record_type}/{record_format}/

{stream}_{file_start_time}/{stream}_{file_start_time}"

"project_id": "01234567890123456789012345678901"

},

"record_formats": [ "MP4"

],

"update_time": "2021-04-21T10:29:33Z"

}

步骤4 调用RTC增值(录制)事件回调配置接口,配置录制回调。

1. 选择PUT请求方法并输入URI。

https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/record-callback

2. 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。

3. Request Body中传入如下参数:

{ "url": "http://mydomain.com/callback",

"auth_key": "8923ab8c2dcef4538923ab8c2dcef453"

}

4. 请求响应成功后,返回已创建的回调信息。

{ "app_id": "5ff9701f2346968bb306cb43", "record_callback": {

"auth_key": "8923ab8c2dcef4538923ab8c2dcef453", "update_time": "2021-04-07T12:05:18.0718Z", "url": "http://mydomain.com/callback", "notify_event_subscription": [

步骤5 终端用户通过SparkRTC APP加入某个SparkRTC房间,SparkRTC APP的集成开发请参 见客户端SDK,您也可以直接使用SparkRTC Demo进行验证。

步骤6 调用启动单流任务接口,创建录制任务。

1. 选择POST请求方法并输入URI。

API 参考 4 应用示例

https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/individual-stream-jobs

2. 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。

3. Request Body中传入如下参数:

{ "room_id": "room001", "user_id": "user001", "is_record_audio": true,

"video_type": "CAMERASTREAM", "resolution": "1280*720",

"resolution_policy": "DOWNWARD", "max_idle_time": 30,

"record_param": {

"record_rule_id": "5d0ec2c53a2c15625017adb8bbbcd9ab"

} }

4. 请求响应成功后,返回录制任务信息。

{ "app_id": "5ff9701f2346968bb306cb43", "create_time": "2021-04-21T10:51:55Z", "is_record_audio": true,

"job_id": "607f87cf00d861eeefffa6c88054cdab", "job_unique_id": "a77bb33dbdc948d8", "max_idle_time": 30,

"push_param": { "rtmp_urls": null },

"record_files": null, "record_param": {

"record_rule_id": "5d0ec2c53a2c15625017adb8bbbcd9ab"

},

"resolution_policy": "DOWNWARD", "resolution": "1280*720",

"room_id": "room001",

"start_time": "2021-04-21T10:51:55Z", "state": "INIT",

"stop_time": "0001-01-01T00:00:00Z",

"stream_name": "s_607f87cf00d861eeefffa6c88054cdab_room001_user001", "update_time": "2021-04-21T10:51:55Z",

"user_id": "user001",

"video_type": "CAMERASTREAM"

}

步骤7 SparkRTC房间结束音视频互动后,您可以在配置的OBS桶中获取录制文件。

----结束