新建OTT频道
功能介绍
创建频道接口,支持创建OTT频道。
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
URI
POST /v1/{project_id}/ott/channels
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID,获取方法请参考获取项目ID。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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访问服务。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
domain |
是 |
String |
频道推流域名 |
app_name |
是 |
String |
组名或应用名 |
id |
是 |
String |
频道ID。频道唯一标识,为必填项。 |
name |
否 |
String |
频道名。可选配置 |
state |
是 |
String |
频道状态
|
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 |
音频输出配置 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
input_protocol |
是 |
String |
频道入流协议
|
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”。
|
ip_port_mode |
否 |
Boolean |
当推流协议为SRT_PUSH时,如果配置了直推源站,编码器不支持输入streamid,需要打开设置为true |
ip_whitelist |
否 |
String |
SRT_PUSH类型时,客户push ip白名单 |
scte35_source |
否 |
String |
广告的scte35信号源。 仅HLS_PULL类型的频道支持此配置,且目前仅支持SEGMENTS。 |
ad_triggers |
否 |
Array of strings |
广告触发器配置。 包含如下取值:
|
audio_selectors |
否 |
Array of InputAudioSelector objects |
设置音频选择器,最多设置8个音频选择器 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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类型时的拉流时延。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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类型时的拉流时延。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
input_loss_threshold_msec |
否 |
Integer |
入流停止的时长阈值。到达此阈值后,自动触发主备切换。 单位:毫秒,取值范围:0 - 3600000。 非必填,默认填2000ms。 |
input_preference |
否 |
String |
以主入流URL为第一优先级(PRIMARY)或主备URL平等切换(EQUAL)。 如果是平等切换时,使用的是备URL,不会自动切换至主URL。 非必填,默认值为EQUAL。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
音频选择器的名称。仅支持大小写字母、数字、中划线和下划线。 同一个频道中每个选择器的名称需要唯一。 |
selector_settings |
否 |
AudioSelectorSettings object |
设置音频选择器 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
audio_language_selection |
否 |
AudioSelectorLangSelection object |
设置语言选择器 |
audio_pid_selection |
否 |
AudioSelectorPidSelection object |
设置PID选择器 |
audio_hls_selection |
否 |
AudioSelectorHlsSelection object |
设置Hls选择器 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
language_code |
是 |
String |
语言简称,输入2或3个小写字母的语言代码。 |
language_selection_policy |
否 |
String |
语言输出策略。 取值如下:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
rollingbuffer_duration |
是 |
Integer |
最大回看录制时长。在此时间段内会连续不断的录制,为必选项 单位:秒。取值为“0”时,表示不支持录制;最大支持录制14天 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
hls_package |
否 |
Array of HlsPackageItem objects |
HLS打包信息 |
dash_package |
否 |
Array of DashPackageItem objects |
DASH打包信息 |
mss_package |
否 |
Array of MssPackageItem objects |
MSS打包信息 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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"]。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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"。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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 |
播放相关配置 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
key |
否 |
String |
拉流URL中用于码率过滤的参数 |
max_bandwidth |
否 |
Integer |
最大码率,单位:bps 取值范围:0 - 104,857,600(100Mbps) |
min_bandwidth |
否 |
Integer |
最小码率,单位:bps 取值范围:0 - 104,857,600(100Mbps) |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
key_rotation_interval_seconds |
否 |
Integer |
密钥缓存时间。如果密钥不变,默认缓存七天。 请注意:目前为保留字段,不支持配置。 |
encryption_method |
否 |
String |
加密方式。 请注意:目前为保留字段,不支持配置。 |
level |
否 |
String |
取值如下:
默认值:content |
resource_id |
是 |
String |
客户生成的DRM内容ID |
system_ids |
是 |
Array of strings |
system_id枚举值。 取值如下:
|
url |
是 |
String |
获取密钥的DRM地址 |
speke_version |
是 |
String |
drm speke 版本号 当前只支持1.0 |
request_mode |
是 |
String |
请求模式。 取值如下:
|
http_headers |
否 |
Array of HttpHeader objects |
需要添加在drm请求头中的鉴权信息。最多支持配置5个。 仅direct_http请求模式支持配置http_headers。 |
urn |
否 |
String |
functiongraph_proxy请求模式需要提供functiongraph的urn。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
record |
否 |
Array of RecordRequestArgs objects |
录制播放相关配置 |
timeshift |
否 |
Array of TimeshiftRequestArgs objects |
时移播放相关配置 |
live |
否 |
Array of LiveRequestArgs objects |
直播播放相关配置 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
start_time |
否 |
String |
开始时间 |
end_time |
否 |
String |
结束时间 |
format |
否 |
String |
格式 |
unit |
否 |
String |
单位 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
audio_descriptions |
否 |
Array of audio_descriptions objects |
音频输出配置的描述信息 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
音频输出配置的名称。仅支持大小写字母,数字,中划线(-),下划线(_)。 同一个频道不同的音频输出配置名称,不允许重复。 |
audio_selector_name |
是 |
String |
音频选择器名称 |
language_code_control |
否 |
String |
语言代码控制。这里的设置不会修改音频实际的语言,只会修改音频对外展示的语言。 包含如下选项:
|
language_code |
否 |
String |
语言代码,输入2或3个小写字母。 |
stream_name |
否 |
String |
流名称 |
响应参数
状态码: 201
参数 |
参数类型 |
描述 |
---|---|---|
result_code |
String |
错误码 |
result_msg |
String |
错误描述 |
domain |
String |
推流域名 |
app_name |
String |
组名或应用名,为必填项 |
id |
String |
频道ID。频道唯一标识,为必填项 |
sources |
Array of SourceRsp objects |
推流URL列表。创建频道时,只有入流协议为RTMP_PUSH时,会返回推流URL列表 |
参数 |
参数类型 |
描述 |
---|---|---|
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
参数 |
参数类型 |
描述 |
---|---|---|
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" }
响应示例
状态码: 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 |
Demo Information |
400 |
Error response |
错误码
请参见错误码。