实时音视频 SparkRTC-示例1:创建单流录制任务:操作步骤

时间:2023-11-01 16:16:40

操作步骤

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

    “我的凭证”页面获取usernamepassworddomainname,调用如下接口获取Token。详细信息请参见构造请求
    POST https://iam.myhuaweicloud.com/v3/auth/tokensContent-Type: application/json{  "auth": {    "identity": {      "methods": [        "password"      ],      "password": {        "user": {          "name": "username", //用户名。          "password": "password", //用户登录密码。          "domain": {            "name": "domainname" //用户所属的账号名。            }        }      }    },    "scope": {      "domain": {         "name": "domainname"  //用户所属的账号名。      }    }  }}
    图1所示,红框中的信息为获取用户Token。
    图1 获取用户Token

  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": {"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}"},"obs_addr": {"bucket": "obsName","location": "cn-north-4","object": "Record/","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": ["RECORD_NEW_FILE_START","RECORD_FILE_COMPLETE","CLOUD_RECORD_OVER"]}}

  5. 终端用户通过SparkRTC APP加入某个SparkRTC房间,SparkRTC APP的集成开发请参见客户端SDK
  6. 调用启动单流任务接口,创建录制任务。

    1. 选择POST请求方法并输入URI。
      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桶中获取录制文件。
support.huaweicloud.com/api-rtc/rtc_07_0008.html