更新时间:2024-10-18 GMT+08:00
示例1:创建单流录制任务
场景描述
若您需要对某一个房间的实时音视频进行录制,可以在加入房间后,调用录制接口创建单流录制任务。
前提条件
- 已获取需要使用的SparkRTC服务的终端节点:rtc-api.myhuaweicloud.com。
- 已创建用于存储录制文件的OBS桶,并完成OBS桶授权。您可以通过调用OBS 创建桶API进行创建,并在SparkRTC控制台中完成OBS桶授权。
操作步骤
- 获取用户Token,用于调用SparkRTC接口时进行认证鉴权。
在“我的凭证”页面获取username、password、domainname,调用如下接口获取Token。详细信息请参见构造请求。
POST https://iam.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", //用户名。 "password": "password", //用户登录密码。 "domain": { "name": "domainname" //用户所属的账号名。 } } } }, "scope": { "domain": { "name": "domainname" //用户所属的账号名。 } } } }
如图1所示,红框中的信息为获取用户Token。 - 调用创建应用接口创建SparkRTC应用。
- 选择POST请求方法并输入URI。
https://rtc-api.myhuaweicloud.com/v2/apps
- 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。
- Request Body中传入如下参数:
{ "app_name" : "rtctest" }
- 请求响应成功后,返回已创建应用的ID。
{ "app_id": "5ff9701f2346968bb306cb43", }
- 选择POST请求方法并输入URI。
- 调用创建或更新录制规则接口,创建录制规则。
- 选择POST请求方法并输入URI。
https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/record-rules
- 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。
- Request Body中传入如下参数:
{ "obs_addr": { "bucket": "obsName", "location": "cn-north-4", "object": "Record/", "project_id": "01234567890123456789012345678901" }, "record_formats": ["MP4"], "mp4_config": {} }
- 请求响应成功后,返回已创建的录制规则。
{ "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}" }, "obs_addr": { "bucket": "obsName", "location": "cn-north-4", "object": "Record/", "project_id": "01234567890123456789012345678901" }, "record_formats": [ "MP4" ], "update_time": "2021-04-21T10:29:33Z" }
- 选择POST请求方法并输入URI。
- 调用RTC增值(录制)事件回调配置接口,配置录制回调。
- 选择PUT请求方法并输入URI。
https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/record-callback
- 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。
- Request Body中传入如下参数:
{ "url": "http://mydomain.com/callback", "auth_key": "8923ab8c2dcef4538923ab8c2dcef453" }
- 请求响应成功后,返回已创建的回调信息。
{ "app_id": "5ff9701f2346968bb306cb43", "record_callback": { "auth_key": "8923ab8c2dcef4538923ab8c2dcef453", "update_time": "2021-04-07T12:05:18.0718Z", "url": "http://mydomain.com/callback", "notify_event_subscription": [ "RECORD_NEW_FILE_START", "RECORD_FILE_COMPLETE", "CLOUD_RECORD_OVER" ] } }
- 选择PUT请求方法并输入URI。
- 终端用户通过SparkRTC APP加入某个SparkRTC房间,SparkRTC APP的集成开发请参见客户端SDK。
- 调用启动单流任务接口,创建录制任务。
- 选择POST请求方法并输入URI。
https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/individual-stream-jobs
- 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。
- 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" } }
- 请求响应成功后,返回录制任务信息。
{ "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" }
- 选择POST请求方法并输入URI。
- SparkRTC房间结束音视频互动后,您可以在配置的OBS桶中获取录制文件。
父主题: 应用示例