云服务器内容精选

  • 视频直播 支持哪些区域? 视频直播服务包含云直播和媒体直播,目前仅在下述区域部署了直播源站。 云直播:华北-北京四、亚太-新加坡 媒体直播:华北-北京四、亚太-新加坡、中东-利雅得 “华北-北京一”源站因资源有限,不再拓展新业务功能和新用户,只保障存量业务功能和用户。如果用户需要体验直播最新功能或业务量级较大,建议迁移至Live主用源站,即中国站用户可使用“华北-北京四”,国际站用户可使用“亚太-新加坡”。由于 华为云直播 的加速节点目前是覆盖中国大陆区域的,所以推流端所在区域不影响直播服务的使用。 父主题: 产品咨询
  • 频道入流约束 表1 频道入流约束 限制项 说明 转码帧率 转码帧率不支持配置高于源流。 转码分辨率 转码分辨率不支持配置高于入流分辨率。 音视频编码器 视频支持H.264、H.265。 音频支持AAC、MP1、MP2和MP3。 注意:MP1、MP2和MP3仅支持TS入流,默认转码成AAC输出。 不支持字幕。 入流规范 入流规范,如下所示: 支持RTMP推流。 支持HTTP-FLV拉流,起播需携带sequence header。 支持HLS-PULL拉流,支持HLS V3、HTTP或HTTPS协议。 支持SRT-Listener推流,仅支持TS流,支持携带streamid或不携带streamid。 支持SRT-Caller拉流,仅支持TS流。 不支持输入加密流。 不支持纯音频入流,须至少一路视频;不支持纯视频输出,系统会自动补齐一路静音流。 主备输入流的编码器参数必须保持一致,否则主备输入流切换过程中,播放可能会中断。 入流码率≤50Mbps,帧率≤60fps,分辨率≤4K。 入流GOP时长 入流GOP时长的设置建议如下所示: 入流GOP时长推荐取值为1秒或其整数倍。 频道配置的切片时长必须≥GOP时长,推荐取值为GOP时长的整数倍。
  • 区域限制 视频直播服务包含云直播和媒体直播,目前仅在下述区域部署了直播源站。 云直播:华北-北京四、亚太-新加坡 媒体直播:华北-北京四、亚太-新加坡、中东-利雅得 “华北-北京一”源站因资源有限,不再拓展新业务功能和新用户,只保障存量业务功能和用户。如果用户需要体验直播最新功能或业务量级较大,建议迁移至Live主用源站,即中国站用户可使用“华北-北京四”,国际站用户可使用“亚太-新加坡”。由于华为云直播的加速节点目前是覆盖中国大陆区域的,所以推流端所在区域不影响直播服务的使用。 父主题: 使用限制
  • 修订记录 表1 修订记录 发布日期 修改说明 2024-02-23 第五十一次发布: 本次变更如下: 修改创建录制规则和修改录制规则接口FLV、MP4格式的“record_cycle” 字段最大值。 2023-09-19 第五十次发布: 本次变更如下: 修改转码模板管理组接口。请求参数新增字段bitrate_adaptive和i_frame_policy,并更新字段templateName、PVC、hdlb、width、height、iFrameInterval、gop的参数说明。 2023-07-24 第四十九次发布: 本次变更如下: 修改查询转码用量接口,增加按小时结算的资源出账描述和请求示例。 修改查询直播各区域指标分布接口,增加查询数据用于对账,查询三个小时之前的描述。 修改创建录制视频索引文件接口,补充接口约束说明和状态码描述,补充“start_time”和“end_time”参数说明。 2023-05-12 第四十八次发布: 本次变更如下: 增加错误码LIVE.100011022。 2023-05-06 第四十七次发布: 本次变更如下: 修改查询播放流量汇总接口描述,增加查询数据会延迟10分钟左右的描述。 2023-04-23 第四十六次发布: 本次变更如下: 修改查询转码用量接口描述,增加转码数据延时1小时的描述。 2023-04-18 第四十五次发布: 本次变更如下: 调整查询直播各区域指标分布接口的用户和API流量限制,用户流量限制由1次/秒变更为50次/秒,API流量限制由5次/秒变更为150次/秒。 2023-03-21 第四十四次发布: 本次变更如下: 新增鉴权、截图、HTTPS证书和OBS桶管理接口组。 修改创建录制规则和修改录制规则接口的“default_record_config”、“hls_config”和 “record_cycle” 字段的默认值。 2023-02-09 第四十三次发布: 本次变更如下: 修改创建录制规则和修改录制规则接口的“record_prefix”、“record_ts_prefix”参数的描述。 2023-01-18 第四十二次发布: 本次变更如下: 创建直播转码模板、创建录制规则接口新增计费说明。 “使用前必读”章节新增 域名 管理接口流控限制。 2023-01-06 第四十一次发布: 本次变更如下: 新增查询CDN上行推流质量数据接口。 修改查询播放带宽趋势、查询播放流量趋势、查询播放带宽峰值和查询播放流量汇总接口的“play_domains”参数为非必填。 查询播放带宽趋势、查询播放流量趋势、查询播放带宽峰值、查询播放流量汇总和查询流维度的观众趋势接口新增“service_type”参数。 查询上行带宽数据接口新增“type”参数。 2022-12-29 第四十次正式发布: 本次变更如下: 修改地区/国家代码对照表。 2022-12-27 第三十九次正式发布 本次变更如下: 新增查询直播各区域指标分布接口。 删除上行带宽数据接口“type”参数。 创建录制回调配置、修改录制回调配置接口增加成功状态的响应参数、请求参数key。 修改配置域名IPV6开关接口的请求示例。 修改地区/国家代码对照表。 2022-12-20 第三十八次正式发布 本次变更如下: 查询上行带宽数据接口新增“type”参数。 2022-12-07 第三十七次正式发布 本次变更如下: v1接口增加AK/SK鉴权头域。 下线查询直播各区域指标分布接口。 2022-11-08 第三十六次正式发布 本次变更如下: 删除查询播放带宽趋势接口中的“service_type”参数。 2022-09-29 第三十五次正式发布 本次变更如下: 删除录制回调管理接口中的“call_back_ssl_ca”和“call_back_ssl_verify”参数。 2022-09-27 第三十四次正式发布 本次变更如下: 修改查询录制规则配置接口的示例代码,删除“start_time”、“project_id”和“end_time”参数。 2022-09-08 第三十三次正式发布: 本次变更如下: 修改地区/国家代码对照表。 2022-09-06 第三十二次正式发布: 本次变更如下: 录制管理接口组新增创建录制视频索引文件接口。 2022-08-26 第三十一次正式发布: 本次变更如下: 修改查询直播各区域指标分布接口的“area”字段描述和返回体中的“name”字段描述。 修改查询转码用量接口、查询录制用量接口和查询截图用量接口的最大查询周期为1年。 新增地区/国家代码对照表。 2022-07-05 第三十次正式发布: 本次变更如下: 查询播放带宽趋势接口新增“service_type”参数。 所有接口中的响应Header参数“X-request-id”修改为“X-Request-Id”。 修改查询直播域名接口的响应示例。 2022-07-01 第二十九次正式发布 本次变更如下: 修改查询播放画像接口的参考示例。 2022-03-25 第二十八次正式发布 本次变更如下: 修改直播转码模板删除成功的状态码为200。 2022-03-01 第二十七次正式发布 本次变更如下: 调整查询直播中的流信息接口的用户和API流量限制,用户流量限制由4000次/分钟变更为1000次/分钟,API流量限制由8000次/分钟变更为2000次/分钟。 调整禁推恢复接口的用户和API流量限制,用户流量限制由4000次/分钟变更为3000次/分钟,API流量限制由8000次/分钟变更为6000次/分钟。 调整查询禁止直播推流列表接口的用户和API流量限制,用户流量限制由300次/分钟变更为3000次/分钟,API流量限制由3000次/分钟变更为6000次/分钟。 调整禁止直播推流和修改禁推属性接口的API流量限制,由8000次/分钟变更为12000次/分钟。 2022-02-28 第二十六次正式发布 本次变更如下: 删除查询直播转码任务数接口。 调整查询播放带宽趋势接口的用户流量限制,由300次/分钟变更为500次/分钟。 2022-02-22 第二十五次正式发布 本次变更如下: 流监控中增加查询流监控数据接口。 2022-01-26 第二十四次正式发布 本次变更如下: 修改录制管理接口组,删除“PLAN_RECORD”、“ON_DEMAND_RECORD”相关参数和说明。 修改录制回调管理接口组,删除“on_demand_callback_url”相关参数和说明。 数据统计分析中增加查询直播转码任务数接口和查询直播各区域指标分布接口。 2021-12-21 第二十三次正式发布 本次变更如下: 修改流管理接口组和转码模板管理接口组中“domain”参数的描述,变更为推流域名。 2021-12-16 第二十二次正式发布 本次变更如下: 修改创建录制规则接口的“default_record_config”参数为必填。 修改查询录制回调配置列表和查询录制规则列表接口的“offset”、“limit”参数的描述。 2021-11-26 第二十一次正式发布 本次变更如下: 查询录制用量接口,增加“publish_domain”参数。 查询推流帧率数据接口,增加返回的帧率数据列表粒度为1秒钟的描述。 查询推流码率数据接口,增加返回的码率数据列表粒度为1秒钟的描述。 查询历史推流列表接口,删除最大查询周期1个月的描述。 2021-10-27 第二十次正式发布 本次变更如下: 查询推流帧率数据和查询推流码率数据接口修改“data_list”参数描述,增加帧率和码率单位。 2021-09-26 第十九次正式发布 本次变更如下: 修改查询播放画像信息接口,增加约束描述,不统计协议为HLS的播放时长(play_duration)信息。 修改查询转码用量接口,增加“stream”参数。 2021-09-10 第十八次正式发布 本次变更如下: 录制管理中增加提交录制控制命令接口。 修改查询直播中的流信息接口,增加“video_frame_rate”、“audio_frame_rate”等参数。 2021-08-12 第十七次正式发布 本次变更如下: 查询播放带宽趋势接口和查询观众趋势接口增加“country”参数。 新增“国家名称缩写”章节内容。 2021-06-02 第十六次正式发布 本次变更如下: 创建录制规则接口修改“record_format”字段的格式,设置格式时必须使用大写字母。 2021-03-05 第十五次正式发布 本次变更如下: 上线录制管理接口组和录制回调管理接口组。 2021-01-28 第十四次正式发布 本次变更如下: 上线域名管理接口组和日志管理接口。 2021-01-19 第十三次正式发布 本次变更如下: 流管理中增加查询直播中的流信息接口。 2020-11-13 第十二次正式发布 本次变更如下: 数据统计分析中增加查询转码用量接口、查询录制用量接口和查询截图用量接口。 2020-09-17 第十一次正式发布 本次变更如下: 禁止直播推流接口修改“resume_time”字段的取值范围,默认值为7天,最大支持90天。 2020-08-25 第十次正式发布 本次变更如下: 数据统计分析中增加查询上行带宽数据接口、查询域名维度推流路数接口和查询历史推流列表接口。 2020-08-12 第九次正式发布 本次变更如下: 数据统计分析中增加查询直播拉流HTTP状态码接口。 2020-08-05 第八次正式发布 本次变更如下: 上线数据统计分析接口组和流监控接口组。 2020-07-30 第七次正式发布 本次变更如下: 增两个API应用示例,示例2:创建录制配置和示例3:禁止直播推流。 2020-05-20 第六次正式发布 本次变更如下: 所有接口增加“调试”内容,支持跳转到 API Explorer 进行接口调试。 2020-04-10 第五次正式发布 本次变更如下: 下线“查询直播推流列表”接口,后续将上线相关新接口。 2019-11-14 第四次正式发布 本次变更如下: 上线新版“查询直播推流列表”接口。 2019-07-27 第三次正式发布 本次变更如下: 修改转码模板管理接口,增加“iFrameInterval”、“GOP”等参数。 2019-06-27 第二次正式发布 本次变更如下: 增加应用示例章节,以具体接口为例,介绍如何调用直播API。 修改API参考文档,增加使用前必读和如何调用API章节。 2018-11-20 第一次正式商用发布。
  • 调用API获取项目ID 您还能通过调用查询指定条件下的项目信息API获取项目ID。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects/”,其中{Endpoint}为 IAM 的终端节点可以从地区和终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "region01", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
  • 请求示例 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" : "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" : "test", "id" : "test-abc" }
  • 响应参数 状态码:200 表16 响应Body参数 参数 参数类型 描述 result_code String 错误码 result_msg String 错误描述 domain String 推流域名 app_name String 组名或应用名,为必填项 id String 频道ID。频道唯一标识,为必填项 sources Array of SourceRsp objects 推流URL列表。创建频道时,只有入流协议为RTMP_PUSH时,会返回推流URL列表 表17 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 表18 响应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的值)。 Authorization 否 String 使用AK/SK方式认证时必填,携带的鉴权信息。 X-Sdk-Date 否 String 请求的发生时间,使用AK/SK方式认证时为必填项。 X-Project-Id 否 String 使用AK/SK方式认证时为必填项,携带项目ID信息。 表3 请求Body参数 参数 是否必选 参数类型 描述 domain 是 String 频道推流域名 app_name 是 String 组名或应用名 id 是 String 频道ID。频道唯一标识,为必填项 input 否 InputStreamInfo object 频道出流信息 encoder_settings_expand 否 EncoderSettingsExpand object 输出编码扩展 表4 InputStreamInfo 参数 是否必选 参数类型 描述 input_protocol 是 String 频道入流协议 FLV_PULL RTMP_PUSH HLS_PULL SRT_PULL SRT_PUSH sources 否 Array of SourcesInfo objects 频道主源流信息。入流协议为RTMP_PUSH和SRT_PUSH时,非必填项。其他情况下,均为必填项。 secondary_sources 否 Array of SecondarySourcesInfo objects 备入流数组,非必填项。如果有备入流,则主备入流必须保证路数、codec和分辨率均一致。入流协议为RTMP_PUSH时,无需填写。 failover_conditions 否 FailoverConditions object 非必填,频道供应商提供的主备音视频流URL切换的配置。 max_bandwidth_limit 否 Integer 当入流协议为HLS_PULL时,需要配置的最大带宽。 用户提供的拉流URL中,针对不同码率的音视频,均会携带带宽参数“BANDW IDT H”。 如果这里配置最大带宽,媒体直播服务从URL拉流时,会选择小于最大带宽且码率最大的音视频流,推流到源站。 如果这里未配置最大带宽,媒体直播服务从URL拉流时,会默认选择“BANDWIDTH”最高的音视频流,推流到源站。 ip_port_mode 否 Boolean 当推流协议为SRT_PUSH时,如果配置了直推源站,编码器不支持输入streamid,需要打开设置为true ip_whitelist 否 String SRT_PUSH类型时,客户推流的IP白名单 scte35_source 否 String 广告的scte35信号源。 仅HLS_PULL类型的频道支持此配置,且目前仅支持SEGMENTS。 ad_triggers 否 Array of strings 广告触发器配置。 包含如下取值: Splice insert:拼接插入 Provider advertisement:提供商广告 Distributor advertisement:分销商广告 Provider placement opportunity:提供商置放机会 Distributor placement opportunity:分销商置放机会 audio_selectors 否 Array of InputAudioSelector objects 设置音频选择器,最多设置8个音频选择器 表5 SourcesInfo 参数 是否必选 参数类型 描述 url 否 String 频道源流URL,用于外部拉流 bitrate 否 Integer 码率。无需直播转码时,此参数为必填项 单位:bps。取值范围:(0,104,857,600](100Mbps) width 否 Integer 分辨率对应宽的值,非必填项 取值范围:0 - 4096(4K) height 否 Integer 分辨率对应高的值,非必填项 取值范围:0 - 2160(4K) enable_snapshot 否 Boolean 描述是否使用该流做截图 bitrate_for3u8 否 Boolean 是否使用bitrate来固定码率。默认值:false passphrase 否 String 协议为SRT_PUSH时的加密信息 backup_urls 否 Array of strings 备入流地址列表 stream_id 否 String 频道为SRT_PULL类型时,拉流地址的Stream ID。 latency 否 Integer 频道为SRT_PULL类型时的拉流时延。 pbkeylen 否 Integer srt加密算法 16 = AES-128 24 = AES-192 32 = AES-256 表6 SecondarySourcesInfo 参数 是否必选 参数类型 描述 url 否 String 频道源流URL,用于外部拉流 bitrate 否 Integer 码率。无需直播转码时,此参数为必填项 单位:bps。取值范围:(0,104,857,600](100Mbps) width 否 Integer 分辨率对应宽的值,非必填项 取值范围:0 - 4096(4K) height 否 Integer 分辨率对应高的值,非必填项 取值范围:0 - 2160(4K) bitrate_for3u8 否 Boolean 是否使用bitrate来固定码率。默认值:false passphrase 否 String 协议为SRT_PUSH时的加密信息 backup_urls 否 Array of strings 备入流地址列表 stream_id 否 String 频道为SRT_PULL类型时,拉流地址的Stream ID。 latency 否 Integer 频道为SRT_PULL类型时的拉流时延。 表7 FailoverConditions 参数 是否必选 参数类型 描述 input_loss_threshold_msec 否 Integer 入流停止的时长阈值。到达此阈值后,自动触发主备切换。 单位:毫秒,取值范围:0 - 3600000。 非必填,默认填2000ms。 input_preference 否 String 以主入流URL为第一优先级(PRIMARY)或主备URL平等切换(EQUAL)。 如果是平等切换时,使用的是备URL,不会自动切换至主URL。 非必填,默认值为EQUAL。 表8 InputAudioSelector 参数 是否必选 参数类型 描述 name 是 String 音频选择器的名称。仅支持大小写字母、数字、中划线和下划线。 同一个频道中每个选择器的名称需要唯一。 selector_settings 否 AudioSelectorSettings object 设置音频选择器 表9 AudioSelectorSettings 参数 是否必选 参数类型 描述 audio_language_selection 否 AudioSelectorLangSelection object 设置语言选择器 audio_pid_selection 否 AudioSelectorPidSelection object 设置PID选择器 audio_hls_selection 否 AudioSelectorHlsSelection object 设置Hls选择器 表10 AudioSelectorLangSelection 参数 是否必选 参数类型 描述 language_code 是 String 语言简称,输入2或3个小写字母的语言代码。 language_selection_policy 否 String 语言输出策略。 取值如下: LOOSE:宽松匹配,示例“eng”会优先匹配源流中语言为English的音轨,如果匹配不到,则选择PID最小的音轨。 STRICT:严格匹配,示例“eng”会严格匹配源流中语言为English的音轨,如果匹配不到,媒体直播服务会自动补齐一个静音分片,当终端使用此音频选择器播放视频时,会静音播放。 表11 AudioSelectorPidSelection 参数 是否必选 参数类型 描述 pid 是 Integer 设置PID的值 表12 AudioSelectorHlsSelection 参数 是否必选 参数类型 描述 name 是 String hls音频选择器名 group_id 是 String hls音频选择器gid 表13 EncoderSettingsExpand 参数 是否必选 参数类型 描述 audio_descriptions 否 Array of audio_descriptions objects 音频输出配置的描述信息 video_descriptions 否 VideoDescriptions object 表14 audio_descriptions 参数 是否必选 参数类型 描述 name 是 String 音频输出配置的名称。仅支持大小写字母,数字,中划线(-),下划线(_)。 同一个频道不同的音频输出配置名称,不允许重复。 audio_selector_name 是 String 音频选择器名称 language_code_control 否 String 语言代码控制。这里的设置不会修改音频实际的语言,只会修改音频对外展示的语言。 包含如下选项: FOLLOW_INPUT:如果所选音频选择器对应的输出音频有语言,则与其保持一致,否则会以这里配置的语言代码和流名称进行兜底。推荐当前选项,为默认值。 USE_CONFIGURED:用户根据实际情况自定义输出音频的语言和流名称。 language_code 否 String 语言代码,输入2或3个小写字母。 stream_name 否 String 流名称 表15 VideoDescriptions 参数 是否必选 参数类型 描述 gop_duration_seconds 否 Integer 自定义gop时长,单位秒,有效取值[0,10]. 默认值0,表示跟随源流,不支持7和9,值无效时按默认值处理
  • OTT频道管理接口 表1 OTT频道管理接口 接口 说明 POST /v1/{project_id}/ott/channels 新建OTT频道 GET /v1/{project_id}/ott/channels 查询频道信息 DELETE /v1/{project_id}/ott/channels 删除频道信息 PUT /v1/{project_id}/ott/channels/endpoints 修改频道打包信息 PUT /v1/{project_id}/ott/channels/input 修改频道入流信息 PUT /v1/{project_id}/ott/channels/record-settings 修改频道录制信息 PUT /v1/{project_id}/ott/channels/general 修改频道通用信息 PUT /v1/{project_id}/ott/channels/state 修改频道状态 PUT /v1/{project_id}/ott/channels/encorder-settings 修改频道转码模板信息 POST /v1/{project_id}/ott/channels/statistic 查询频道统计信息
  • 响应示例 状态码:201 Demo Information { "result_code" : "LIVE.100000000", "result_msg" : "SUCCESS", "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test", "sources" : [ { "url" : "rtmp://push.testott.hls.com/ott/test_1024?request_source=ott&channel_id=test", "bitrate" : 1024, "width" : 100, "height" : 100 } ] } 状态码:400 Error response { "result_code" : "LIVE.100011001", "result_msg" : "output url pull.testott.hls.com/ott/test/index.m3u8 is exist", "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test" }
  • 响应参数 状态码:201 表29 响应Body参数 参数 参数类型 描述 result_code String 错误码 result_msg String 错误描述 domain String 推流域名 app_name String 组名或应用名,为必填项 id String 频道ID。频道唯一标识,为必填项 sources Array of SourceRsp objects 推流URL列表。创建频道时,只有入流协议为RTMP_PUSH时,会返回推流URL列表 表30 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 表31 响应Body参数 参数 参数类型 描述 result_code String 错误码 result_msg String 错误描述 domain String 推流域名 app_name String 组名或应用名,为必填项 id String 频道ID。频道唯一标识,为必填项
  • 请求示例 POST https://{endpoint}/v1/{project_id}/ott/channels { "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test", "name" : "testname", "input" : { "input_protocol" : "FLV_PULL", "sources" : [ { "url" : "http://192.168.0.1/ott/test.flv?vhost=pull.testott.hls.com", "bitrate" : 1024, "width" : 100, "height" : 100 } ], "failover_conditions" : { "input_loss_threshold_msec" : 100, "input_preference" : "EQUAL" } }, "record_settings" : { "rollingbuffer_duration" : 86400 }, "endpoints" : [ { "hls_package" : [ { "url" : "pull.testott.hls.com/ott/test/index.m3u8", "stream_selection" : [ { "key" : "sss", "max_bandwidth" : 100, "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 } ] } ], "state" : "OFF" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 用户Token,使用Token鉴权方式时为必填项。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Authorization 否 String 使用AK/SK方式认证时必填,携带的鉴权信息。 X-Sdk-Date 否 String 请求的发生时间,使用AK/SK方式认证时为必填项。 X-Project-Id 否 String 使用AK/SK方式认证时为必填项,携带项目ID信息。 表3 请求Body参数 参数 是否必选 参数类型 描述 domain 是 String 频道推流域名 app_name 是 String 组名或应用名 id 是 String 频道ID。频道唯一标识,为必填项。 name 否 String 频道名。可选配置 state 是 String 频道状态 ON:频道下发成功后,自动启动拉流、转码、录制等功能 OFF:仅保存频道信息,不启动频道 input 是 InputStreamInfo object 频道入流信息 encoder_settings 否 Array of encoder_settings objects 转码模板配置 record_settings 是 record_settings object 回看录制的配置信息。 endpoints 是 Array of EndpointItem objects 频道出流信息 encoder_settings_expand 否 EncoderSettingsExpand object 音频输出配置 表4 InputStreamInfo 参数 是否必选 参数类型 描述 input_protocol 是 String 频道入流协议 FLV_PULL RTMP_PUSH HLS_PULL SRT_PULL SRT_PUSH sources 否 Array of SourcesInfo objects 频道主源流信息。入流协议为RTMP_PUSH和SRT_PUSH时,非必填项。其他情况下,均为必填项。 secondary_sources 否 Array of SecondarySourcesInfo objects 备入流数组,非必填项。如果有备入流,则主备入流必须保证路数、codec和分辨率均一致。入流协议为RTMP_PUSH时,无需填写。 failover_conditions 否 FailoverConditions object 非必填,频道供应商提供的主备音视频流URL切换的配置。 max_bandwidth_limit 否 Integer 当入流协议为HLS_PULL时,需要配置的最大带宽。 用户提供的拉流URL中,针对不同码率的音视频,均会携带带宽参数“BANDWIDTH”。 如果这里配置最大带宽,媒体直播服务从URL拉流时,会选择小于最大带宽且码率最大的音视频流,推流到源站。 如果这里未配置最大带宽,媒体直播服务从URL拉流时,会默认选择“BANDWIDTH”最高的音视频流,推流到源站。 ip_port_mode 否 Boolean 当推流协议为SRT_PUSH时,如果配置了直推源站,编码器不支持输入streamid,需要打开设置为true ip_whitelist 否 String SRT_PUSH类型时,客户推流的IP白名单 scte35_source 否 String 广告的scte35信号源。 仅HLS_PULL类型的频道支持此配置,且目前仅支持SEGMENTS。 ad_triggers 否 Array of strings 广告触发器配置。 包含如下取值: Splice insert:拼接插入 Provider advertisement:提供商广告 Distributor advertisement:分销商广告 Provider placement opportunity:提供商置放机会 Distributor placement opportunity:分销商置放机会 audio_selectors 否 Array of InputAudioSelector objects 设置音频选择器,最多设置8个音频选择器 表5 SourcesInfo 参数 是否必选 参数类型 描述 url 否 String 频道源流URL,用于外部拉流 bitrate 否 Integer 码率。无需直播转码时,此参数为必填项 单位:bps。取值范围:(0,104,857,600](100Mbps) width 否 Integer 分辨率对应宽的值,非必填项 取值范围:0 - 4096(4K) height 否 Integer 分辨率对应高的值,非必填项 取值范围:0 - 2160(4K) enable_snapshot 否 Boolean 描述是否使用该流做截图 bitrate_for3u8 否 Boolean 是否使用bitrate来固定码率。默认值:false passphrase 否 String 协议为SRT_PUSH时的加密信息 backup_urls 否 Array of strings 备入流地址列表 stream_id 否 String 频道为SRT_PULL类型时,拉流地址的Stream ID。 latency 否 Integer 频道为SRT_PULL类型时的拉流时延。 pbkeylen 否 Integer srt加密算法 16 = AES-128 24 = AES-192 32 = AES-256 表6 SecondarySourcesInfo 参数 是否必选 参数类型 描述 url 否 String 频道源流URL,用于外部拉流 bitrate 否 Integer 码率。无需直播转码时,此参数为必填项 单位:bps。取值范围:(0,104,857,600](100Mbps) width 否 Integer 分辨率对应宽的值,非必填项 取值范围:0 - 4096(4K) height 否 Integer 分辨率对应高的值,非必填项 取值范围:0 - 2160(4K) bitrate_for3u8 否 Boolean 是否使用bitrate来固定码率。默认值:false passphrase 否 String 协议为SRT_PUSH时的加密信息 backup_urls 否 Array of strings 备入流地址列表 stream_id 否 String 频道为SRT_PULL类型时,拉流地址的Stream ID。 latency 否 Integer 频道为SRT_PULL类型时的拉流时延。 表7 FailoverConditions 参数 是否必选 参数类型 描述 input_loss_threshold_msec 否 Integer 入流停止的时长阈值。到达此阈值后,自动触发主备切换。 单位:毫秒,取值范围:0 - 3600000。 非必填,默认填2000ms。 input_preference 否 String 以主入流URL为第一优先级(PRIMARY)或主备URL平等切换(EQUAL)。 如果是平等切换时,使用的是备URL,不会自动切换至主URL。 非必填,默认值为EQUAL。 表8 InputAudioSelector 参数 是否必选 参数类型 描述 name 是 String 音频选择器的名称。仅支持大小写字母、数字、中划线和下划线。 同一个频道中每个选择器的名称需要唯一。 selector_settings 否 AudioSelectorSettings object 设置音频选择器 表9 AudioSelectorSettings 参数 是否必选 参数类型 描述 audio_language_selection 否 AudioSelectorLangSelection object 设置语言选择器 audio_pid_selection 否 AudioSelectorPidSelection object 设置PID选择器 audio_hls_selection 否 AudioSelectorHlsSelection object 设置Hls选择器 表10 AudioSelectorLangSelection 参数 是否必选 参数类型 描述 language_code 是 String 语言简称,输入2或3个小写字母的语言代码。 language_selection_policy 否 String 语言输出策略。 取值如下: LOOSE:宽松匹配,示例“eng”会优先匹配源流中语言为English的音轨,如果匹配不到,则选择PID最小的音轨。 STRICT:严格匹配,示例“eng”会严格匹配源流中语言为English的音轨,如果匹配不到,媒体直播服务会自动补齐一个静音分片,当终端使用此音频选择器播放视频时,会静音播放。 表11 AudioSelectorPidSelection 参数 是否必选 参数类型 描述 pid 是 Integer 设置PID的值 表12 AudioSelectorHlsSelection 参数 是否必选 参数类型 描述 name 是 String hls音频选择器名 group_id 是 String hls音频选择器gid 表13 encoder_settings 参数 是否必选 参数类型 描述 template_id 否 String 转码模板ID 表14 record_settings 参数 是否必选 参数类型 描述 rollingbuffer_duration 是 Integer 最大回看录制时长。在此时间段内会连续不断的录制,为必选项 单位:秒。取值为“0”时,表示不支持录制;最大支持录制14天 表15 EndpointItem 参数 是否必选 参数类型 描述 hls_package 否 Array of HlsPackageItem objects HLS打包信息 dash_package 否 Array of DashPackageItem objects DASH打包信息 mss_package 否 Array of MssPackageItem objects MSS打包信息 表16 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"]。 表17 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"。 suggested_presentation_delay 否 Integer 建议播放延迟 单位:秒。取值范围:[1 - 120] minimum_update_period 否 Integer 索引最短更新周期 单位:秒。取值范围:[1 - 120] min_buffer_time 否 Integer 最小缓冲时间 单位:秒。取值范围:[1 - 120] 表18 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 播放相关配置 表19 StreamSelectionItem 参数 是否必选 参数类型 描述 key 否 String 拉流URL中用于码率过滤的参数 max_bandwidth 否 Integer 最大码率,单位:bps 取值范围:0 - 104,857,600(100Mbps) min_bandwidth 否 Integer 最小码率,单位:bps 取值范围:0 - 104,857,600(100Mbps) 表20 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。 表21 HttpHeader 参数 是否必选 参数类型 描述 key 是 String 请求头中key字段名 value 是 String 请求头中key对应的value值 表22 PackageRequestArgs 参数 是否必选 参数类型 描述 record 否 Array of RecordRequestArgs objects 录制播放相关配置 timeshift 否 Array of TimeshiftRequestArgs objects 时移播放相关配置 live 否 Array of LiveRequestArgs objects 直播播放相关配置 表23 RecordRequestArgs 参数 是否必选 参数类型 描述 start_time 否 String 开始时间 end_time 否 String 结束时间 format 否 String 格式 unit 否 String 单位 表24 TimeshiftRequestArgs 参数 是否必选 参数类型 描述 back_time 否 String 时移时长字段名 unit 否 String 单位 表25 LiveRequestArgs 参数 是否必选 参数类型 描述 delay 否 String 时延字段 unit 否 String 单位 表26 EncoderSettingsExpand 参数 是否必选 参数类型 描述 audio_descriptions 否 Array of audio_descriptions objects 音频输出配置的描述信息 video_descriptions 否 VideoDescriptions object 表27 audio_descriptions 参数 是否必选 参数类型 描述 name 是 String 音频输出配置的名称。仅支持大小写字母,数字,中划线(-),下划线(_)。 同一个频道不同的音频输出配置名称,不允许重复。 audio_selector_name 是 String 音频选择器名称 language_code_control 否 String 语言代码控制。这里的设置不会修改音频实际的语言,只会修改音频对外展示的语言。 包含如下选项: FOLLOW_INPUT:如果所选音频选择器对应的输出音频有语言,则与其保持一致,否则会以这里配置的语言代码和流名称进行兜底。推荐当前选项,为默认值。 USE_CONFIGURED:用户根据实际情况自定义输出音频的语言和流名称。 language_code 否 String 语言代码,输入2或3个小写字母。 stream_name 否 String 流名称 表28 VideoDescriptions 参数 是否必选 参数类型 描述 gop_duration_seconds 否 Integer 自定义gop时长,单位秒,有效取值[0,10]. 默认值0,表示跟随源流,不支持7和9,值无效时按默认值处理
  • 响应示例 状态码:200 Demo Information { "total" : 1, "channels" : [ { "domain" : "push.testott.hls.com", "app_name" : "ott", "id" : "test", "name" : "testname", "input" : { "input_protocol" : "RTMP_PUSH", "sources" : [ { "url" : "rtmp://push.testott.hls.com/ott/test_1024?request_source=ott&channel_id=test", "bitrate" : 1024, "width" : 100, "height" : 100 } ], "failover_conditions" : { "input_loss_threshold_msec" : 100, "input_preference" : "EQUAL" } }, "record_settings" : { "rollingbuffer_duration" : 86400 }, "endpoints" : [ { "hls_package" : [ { "url" : "pull.testott.hls.com/ott/test/index.m3u8", "stream_selection" : [ { "key" : "sss", "max_bandwidth" : 0, "min_bandwidth" : 0 } ], "segment_duration_seconds" : 4, "playlist_window_seconds" : 3600, "request_args" : { "record" : [ { "start_time" : "begin", "end_time" : "end", "format" : "timestamp", "unit" : "second" } ], "timeshift" : [ { "back_time" : "begin", "unit" : "second" } ], "live" : null }, "hls_version" : "1" } ], "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, "request_args" : { "record" : [ { "start_time" : "begin", "end_time" : "end", "format" : "timestamp", "unit" : "second" } ], "timeshift" : [ { "back_time" : "begin", "unit" : "second" } ], "live" : null } } ], "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, "request_args" : { "record" : [ { "start_time" : "begin", "end_time" : "end", "format" : "timestamp", "unit" : "second" } ], "timeshift" : [ { "back_time" : "begin", "unit" : "second" } ], "live" : null } } ] } ], "state" : "OFF" } ] } 状态码: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" : "agbc" }