云服务器内容精选

  • 请求示例 PUT https://{endpoint}/v1/{project_id}/ott/channels/encorder-settings { "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test", "encoder_settings" : [ { "template_id" : "ld" } ] }
  • 响应示例 状态码: 200 Demo Information { "result_code" : "LIVE.100000000", "result_msg" : "SUC CES S", "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test" } 状态码: 400 Error response { "result_code" : "LIVE.103011019", "result_msg" : "The resource to access is not exists", "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test2" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token,使用Token鉴权方式时必选。通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Access-Control-Allow-Internal 否 String 服务鉴权Token,服务开启鉴权,必须携带Access-Control-Allow-Internal访问服务。 Access-Control-Allow-External 否 String 服务鉴权Token,服务开启鉴权,必须携带Access-Control-Allow-External访问服务。 表3 请求Body参数 参数 是否必选 参数类型 描述 domain 是 String 频道推流 域名 app_name 是 String 组名或应用名 id 是 String 频道ID。频道唯一标识,为必填项 encoder_settings 否 Array of encoder_settings objects 转码模板配置 encoder_settings_expand 否 EncoderSettingsExpand object 音频输出配置 表4 encoder_settings 参数 是否必选 参数类型 描述 template_id 否 String 转码模板ID 表5 EncoderSettingsExpand 参数 是否必选 参数类型 描述 audio_descriptions 否 Array of audio_descriptions objects 音频输出配置的描述信息 表6 audio_descriptions 参数 是否必选 参数类型 描述 name 是 String 音频输出配置的名称。仅支持大小写字母,数字,中划线(-),下划线(_)。 同一个频道不同的音频输出配置名称,不允许重复。 audio_selector_name 是 String 音频选择器名称 language_code_control 否 String 语言代码控制。这里的设置不会修改音频实际的语言,只会修改音频对外展示的语言。 包含如下选项: FOLLOW_INPUT:如果所选音频选择器对应的输出音频有语言,则与其保持一致,否则会以这里配置的语言代码和流名称进行兜底。推荐当前选项,为默认值。 USE_CONFIGURED:用户根据实际情况自定义输出音频的语言和流名称。 language_code 否 String 语言代码,输入2或3个小写字母。 stream_name 否 String 流名称
  • 响应参数 状态码: 200 表7 响应Body参数 参数 参数类型 描述 result_code String 错误码 result_msg String 错误描述 domain String 推流域名 app_name String 组名或应用名,为必填项 id String 频道ID。频道唯一标识,为必填项 sources Array of SourceRsp objects 推流URL列表。创建频道时,只有入流协议为RTMP_PUSH时,会返回推流URL列表 表8 SourceRsp 参数 参数类型 描述 url String RTMP推流地址 bitrate Integer 码率。 单位:bps。取值范围:(0,104,857,600](100Mbps) width Integer 分辨率对应宽的值。取值范围:0 - 4096(4K) height Integer 分辨率对应高的值。取值范围:0 - 2160(4K) enable_snapshot Boolean 描述是否使用该流做截图 状态码: 400 表9 响应Body参数 参数 参数类型 描述 result_code String 错误码 result_msg String 错误描述 domain String 推流域名 app_name String 组名或应用名,为必填项 id String 频道ID。频道唯一标识,为必填项
  • 操作步骤 获取用户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 选择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”区域媒体直播接口的鉴权。 在请求消息头中增加“X-Auth-Token”,值设置为1中获取的用户Token。 在请求消息体中传入如下所示的参数,具体参数说明可参考新建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"
  • 请求示例 PUT https://{endpoint}/v1/{project_id}/ott/channels/endpoints { "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test", "endpoints" : [ { "hls_package" : [ { "url" : "pull.testott.hls.com/ott/test/index.m3u8", "stream_selection" : [ { "key" : "sss", "max_bandwidth" : 1000, "min_bandwidth" : 100 } ], "hls_version" : "1", "segment_duration_seconds" : 4, "playlist_window_seconds" : 3600 } ], "dash_package" : [ { "url" : "pull.testott.hls.com/ott/test/index.mpd", "stream_selection" : [ { "key" : "bitrate=900000-1800000", "max_bandwidth" : 1800000, "min_bandwidth" : 900000 } ], "segment_duration_seconds" : 4, "playlist_window_seconds" : 3600 } ], "mss_package" : [ { "url" : "pull.testott.hls.com/ott/channel/manifest", "stream_selection" : [ { "key" : "bitrate=900000-1800000", "max_bandwidth" : 1800000, "min_bandwidth" : 900000 } ], "segment_duration_seconds" : 4, "playlist_window_seconds" : 3600 } ] } ] }
  • 响应示例 状态码: 200 Demo Information { "result_code" : "LIVE.100000000", "result_msg" : "SUCCESS", "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test" } 状态码: 400 Error response { "result_code" : "LIVE.100011001", "result_msg" : "param check failed", "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "" }
  • 响应参数 状态码: 200 表15 响应Body参数 参数 参数类型 描述 result_code String 错误码 result_msg String 错误描述 domain String 推流域名 app_name String 组名或应用名,为必填项 id String 频道ID。频道唯一标识,为必填项 sources Array of SourceRsp objects 推流URL列表。创建频道时,只有入流协议为RTMP_PUSH时,会返回推流URL列表 表16 SourceRsp 参数 参数类型 描述 url String RTMP推流地址 bitrate Integer 码率。 单位:bps。取值范围:(0,104,857,600](100Mbps) width Integer 分辨率对应宽的值。取值范围:0 - 4096(4K) height Integer 分辨率对应高的值。取值范围:0 - 2160(4K) enable_snapshot Boolean 描述是否使用该流做截图 状态码: 400 表17 响应Body参数 参数 参数类型 描述 result_code String 错误码 result_msg String 错误描述 domain String 推流域名 app_name String 组名或应用名,为必填项 id String 频道ID。频道唯一标识,为必填项
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token,使用Token鉴权方式时必选。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Access-Control-Allow-Internal 否 String 服务鉴权Token,服务开启鉴权,必须携带Access-Control-Allow-Internal访问服务。 Access-Control-Allow-External 否 String 服务鉴权Token,服务开启鉴权,必须携带Access-Control-Allow-External访问服务。 表3 请求Body参数 参数 是否必选 参数类型 描述 domain 是 String 频道推流域名 app_name 是 String 组名或应用名 id 是 String 频道ID。频道唯一标识,为必填项 endpoints 否 Array of EndpointItem objects 频道出流信息 表4 EndpointItem 参数 是否必选 参数类型 描述 hls_package 否 Array of HlsPackageItem objects HLS打包信息 dash_package 否 Array of DashPackageItem objects DASH打包信息 mss_package 否 Array of MssPackageItem objects MSS打包信息 表5 HlsPackageItem 参数 是否必选 参数类型 描述 url 是 String 客户自定义的拉流地址,包括方法、域名、路径 stream_selection 否 Array of StreamSelectionItem objects 从全量流中过滤出一个码率在[min, max]区间的流。如果不需要码率过滤可不选。 hls_version 否 String HLS版本号 segment_duration_seconds 是 Integer 频道输出分片的时长,为必选项 单位:秒。取值范围:1-10 说明: 修改分片时长会影响已录制内容的时移和回看服务,请谨慎修改! playlist_window_seconds 否 Integer 频道直播返回分片的窗口长度,为频道输出分片的时长乘以数量后得到的值。实际返回的分片数不小于3个。 单位:秒。取值范围:0 - 86400(24小时转化成秒后的取值) encryption 否 Encryption object 加密信息 ads 否 Object 广告配置 ext_args 否 Object 其他额外参数 request_args 否 PackageRequestArgs object 播放相关配置 ad_marker 否 Array of strings 广告标识。 HLS取值:["ENHANCED_SCTE35"]。 表6 DashPackageItem 参数 是否必选 参数类型 描述 url 是 String 客户自定义的拉流地址,包括方法、域名、路径 stream_selection 否 Array of StreamSelectionItem objects 从全量流中过滤出一个码率在[min, max]区间的流。如果不需要码率过滤可不选。 segment_duration_seconds 是 Integer 频道输出分片的时长,为必选项 单位:秒。取值范围:1-10 说明: 修改分片时长会影响已录制内容的时移和回看服务,请谨慎修改! playlist_window_seconds 否 Integer 频道直播返回分片的窗口长度,为频道输出分片的时长乘以数量后得到的值。实际返回的分片数不小于3个。 单位:秒。取值范围:0 - 86400(24小时转化成秒后的取值) encryption 否 Encryption object 加密信息 ads 否 Object 广告配置 ext_args 否 Object 其他额外参数 request_args 否 PackageRequestArgs object 播放相关配置 ad_marker 否 String 广告标识。 DASH取值:"xml+bin"。 表7 MssPackageItem 参数 是否必选 参数类型 描述 url 是 String 客户自定义的拉流地址,包括方法、域名、路径 stream_selection 否 Array of StreamSelectionItem objects 从全量流中过滤出一个码率在[min, max]区间的流。如果不需要码率过滤可不选。 segment_duration_seconds 是 Integer 频道输出分片的时长,为必选项 单位:秒。取值范围:1-10 说明: 修改分片时长会影响已录制内容的时移和回看服务,请谨慎修改! playlist_window_seconds 否 Integer 频道直播返回分片的窗口长度,为频道输出分片的时长乘以数量后得到的值。实际返回的分片数不小于3个。 单位:秒。取值范围:0 - 86400(24小时转化成秒后的取值) encryption 否 Encryption object 加密信息 ext_args 否 Object 其他额外参数 delay_segment 否 Integer 延播时长,单位秒 request_args 否 PackageRequestArgs object 播放相关配置 表8 StreamSelectionItem 参数 是否必选 参数类型 描述 key 否 String 拉流URL中用于码率过滤的参数 max_bandwidth 否 Integer 最大码率,单位:bps 取值范围:0 - 104,857,600(100Mbps) min_bandwidth 否 Integer 最小码率,单位:bps 取值范围:0 - 104,857,600(100Mbps) 表9 Encryption 参数 是否必选 参数类型 描述 key_rotation_interval_seconds 否 Integer 密钥缓存时间。如果密钥不变,默认缓存七天。 请注意:目前为保留字段,不支持配置。 encryption_method 否 String 加密方式。 请注意:目前为保留字段,不支持配置。 level 否 String 取值如下: content:一个频道对应一个密钥 profile:一个码率对应一个密钥 默认值:content resource_id 是 String 客户生成的DRM内容ID system_ids 是 Array of strings system_id枚举值。 取值如下: HLS:FairPlay DASH:Widevine、PlayReady MSS:PlayReady url 是 String 获取密钥的DRM地址 speke_version 是 String drm speke 版本号 当前只支持1.0 request_mode 是 String 请求模式。 取值如下: direct_http:HTTP(S)直接访问DRM。 functiongraph_proxy:FunctionGraph代理访问DRM。 http_headers 否 Array of HttpHeader objects 需要添加在drm请求头中的鉴权信息。最多支持配置5个。 仅direct_http请求模式支持配置http_headers。 urn 否 String functiongraph_proxy请求模式需要提供functiongraph的urn。 表10 HttpHeader 参数 是否必选 参数类型 描述 key 是 String 请求头中key字段名 value 是 String 请求头中key对应的value值 表11 PackageRequestArgs 参数 是否必选 参数类型 描述 record 否 Array of RecordRequestArgs objects 录制播放相关配置 timeshift 否 Array of TimeshiftRequestArgs objects 时移播放相关配置 live 否 Array of LiveRequestArgs objects 直播播放相关配置 表12 RecordRequestArgs 参数 是否必选 参数类型 描述 start_time 否 String 开始时间 end_time 否 String 结束时间 format 否 String 格式 unit 否 String 单位 表13 TimeshiftRequestArgs 参数 是否必选 参数类型 描述 back_time 否 String 时移时长字段名 unit 否 String 单位 表14 LiveRequestArgs 参数 是否必选 参数类型 描述 delay 否 String 时延字段 unit 否 String 单位
  • 响应示例 状态码: 200 Demo Information { "result_code" : "LIVE.100000000", "result_msg" : "SUCCESS", "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test" } 状态码: 400 Error response { "result_code" : "LIVE.103011019", "result_msg" : "The resource to access is not exists", "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test2" }
  • 请求示例 PUT https://{endpoint}/v1/{project_id}/ott/channels/record-settings { "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test", "record_settings" : { "rollingbuffer_duration" : 3600 } }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token,使用Token鉴权方式时必选。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Access-Control-Allow-Internal 否 String 服务鉴权Token,服务开启鉴权,必须携带Access-Control-Allow-Internal访问服务。 Access-Control-Allow-External 否 String 服务鉴权Token,服务开启鉴权,必须携带Access-Control-Allow-External访问服务。 表3 请求Body参数 参数 是否必选 参数类型 描述 domain 是 String 频道推流域名 app_name 是 String 组名或应用名 id 是 String 频道ID。频道唯一标识,为必填项 record_settings 否 record_settings object 回看录制的配置信息。 表4 record_settings 参数 是否必选 参数类型 描述 rollingbuffer_duration 否 Integer 最大回看录制时长。在此时间段内会连续不断的录制,为必选项 单位:秒。取值为“0”时,表示不支持录制;最大支持录制14天。
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 result_code String 错误码 result_msg String 错误描述 domain String 推流域名 app_name String 组名或应用名,为必填项 id String 频道ID。频道唯一标识,为必填项 状态码: 400 表6 响应Body参数 参数 参数类型 描述 result_code String 错误码 result_msg String 错误描述 domain String 推流域名 app_name String 组名或应用名,为必填项 id String 频道ID。频道唯一标识,为必填项
  • 请求示例 PUT https://{endpoint}/v1/{project_id}/ott/channels/input { "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test", "input" : { "input_protocol" : "RTMP_PUSH", "sources" : [ { "width" : 100, "bitrate_for3u8" : false, "enable_snapshot" : false, "bitrate" : 1024, "passphrase" : "", "url" : "rtmp://192.168.8.158/ott/adtestdrm?vhost=pull.testott.hls.com", "height" : 100 } ] } }
  • 响应示例 状态码: 200 Demo Information { "result_code" : "LIVE.100000000", "result_msg" : "SUCCESS", "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test" } 状态码: 400 Error response { "result_code" : "LIVE.103011019", "result_msg" : "The resource to access is not exists", "domain" : "push.testott.hls.com", "app_name" : "test", "id" : "test-abc" }