更新时间:2024-09-14 GMT+08:00

示例1:创建频道

本节通过调用一系列媒体直播的API来创建频道。

涉及API

当您使用Token认证方式完成认证鉴权时,需要获取用户Token并在调用接口时增加“X-Auth-Token”到业务接口请求消息头中。

操作步骤

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

    详细信息请参见构造请求。以“华北-北京四”为示例,若您需要调用其它区域的媒体直播接口,请替换成对应区域的IAM终端节点

    POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens
    Content-Type: application/json
    {
      "auth": {
        "identity": {
          "methods": [
            "password"
          ],
          "password": {
            "user": {
              "name": "username", 
              "password": "password", 
              "domain": {
                "name": "domainname" 
              }
            }
          }
        },
        "scope": {
          "project": {
             "name": "projectname"      
     }
        }
      }
    }
    图1所示,红框中的信息为获取用户Token。
    图1 获取用户Token

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

    POST https://live.cn-north-4.myhuaweicloud.com/v1/{project_id}/ott/channels
    “live.cn-north-4.myhuaweicloud.com”为媒体直播服务的终端节点,您可以在终端节点中获取。

    调用IAM接口的区域需与调用媒体直播接口的区域一致,如调用“cn-north-4”区域的IAM接口获取用户Token,则该Token仅能用于调用“cn-north-4”区域媒体直播接口的鉴权。

  3. 在请求消息头中增加“X-Auth-Token”,值设置为1中获取的用户Token。
  4. 在请求消息体中传入如下所示的参数,具体参数说明可参考新建OTT频道接口。

    {
        "domain": "push.domain.com",
        "app_name": "ott",
        "id": "testChannel",
        "name": "testChannel",
        "input": {
            "input_protocol": "FLV_PULL",
            "sources": [
                {
                    "url": "http://push.domain.com/ott/testChannel/index.flv",
                    "bitrate": 2048,
                    "width": 2096,
                    "height": 1024
                }
            ]
        },
        "record_settings": {
            "rollingbuffer_duration": 3600
        },
        "encoder_settings": [
            {
                "template_id": "hd"
            }
        ],
        "endpoints": [
            {
                "hls_package": [
                    {
                        "url": "pull.domain.com/ott/testChannel/index.m3u8",
                        "stream_selection": [
                            {
                                "key": "bitrate=900000-1800000",
                                "max_bandwidth": 1800000,
                                "min_bandwidth": 900000
                            }
                        ],
                        "segment_duration_seconds": 4,
                        "encryption": {
                                    "level": "content",
                                    "resource_id": "test",
                                    "system_ids": [
                                        "FairPlay"
                                    ],
                                    "url": "http://IP:Port/tkm/v1/owner/Data",
                                    "speke_version": "1.0",
                                    "request_mode": "direct_http",
                                    "http_headers": [
                                        {
                                            "key": "Authorization",
                                            "value": "Basic aHVhd2VpY********************XM1Qjd6"
                                        }
                                    ]
                                }
                    }
                ]
            }
        ],
        "state": "ON"
    }

    请求响应成功后,无返回参数,状态码为201 Created。

    若请求失败,返回如下所示的错误码及错误描述,状态码为400 Bad Request。

    "result_code": "LIVE.100011001",
    "result_msg": "Request parameters is invalid"