创建直播拉流转推任务 - CreatePullTask
功能介绍
根据租户指定的拉流源以及拉流任务信息创建直播拉流转推任务
调用方法
请参见如何调用API。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权,具体权限要求请参见权限和授权项。
- 如果使用身份策略授权,需具备如下身份策略权限。
授权项
访问级别
资源类型(*为必须)
条件键
别名
依赖的授权项
live:stream:createPullTask
Write
-
-
-
-
URI
POST /v1/{project_id}/pull/stream/task
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
project_id |
是 |
String |
项目ID,获取方法请参考获取项目ID。 |
请求参数
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
X-Auth-Token |
否 |
String |
用户Token,使用Token鉴权方式时必填。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
region |
否 |
String |
任务执行区域,如果指定推流域名,则region需要与推流域名直播源站一致,缺省为租户归属region |
|
source_type |
是 |
String |
拉流源类型 PullLivePushLive:拉转推(拉直播推直播) PullVodPushLive:轮播(拉点播推直播) |
|
source_urls |
是 |
Array of strings |
拉流源URL 当 source_type 为 PullLivePushLive 时,只能填写一个URL 当 source_type 为 PullVodPushLive 时,可以指定多个轮播源文件URL |
|
domain |
否 |
String |
推流域名 |
|
app_name |
否 |
String |
推流app |
|
stream_name |
否 |
String |
推流流名 |
|
push_args |
否 |
String |
推流参数 |
|
destination_url |
否 |
String |
完整的目标URL。 如果指定此参数,domain、app_name和stream_name需要传入空字符串或不传。 |
|
start_time |
否 |
String |
任务启动时间,时间格式: "2006-01-02T15:04:05Z" 必须小于结束时间,缺省为当前时间 |
|
end_time |
否 |
String |
任务结束时间,时间格式: "2006-01-02T15:04:05Z" 必须大于开始时间,至多为开始时间+7天 |
|
vod_loop_time |
否 |
String |
轮播播放次数,仅当source_type为PullVodPushLive生效。缺省值”-1”。-1:无限轮播,以结束时间为准;N:按文件列表播放N轮,以播放完成和结束时间先到的为准。不传、为空("")时按缺省值生效 |
|
vod_refresh_type |
否 |
String |
轮播文件播放形式,仅当source_type为PullVodPushLive生效。缺省值immediate_new_source immediate_new_source:立即播放新的文件源 continue_from_file_start:从上次断流URL文件重新播放(更新任务时有效) continue_from_break_point:从上次断流URL文件断流位置重新播放(更新任务时有效) |
|
vod_start_video_index |
否 |
Integer |
指定播放文件的下标,仅当source_type为PullVodPushLive生效。缺省值 0,从0开始表示第一个文件,最大值 len(source_urls)-1 |
|
vod_start_video_time |
否 |
Integer |
缺省值 0,指定从上述指定文件的第几秒开始播放,仅当source_type为PullVodPushLive生效 |
|
backup_source_type |
否 |
String |
备源的类型
注意事项:
|
|
backup_source_urls |
否 |
Array of strings |
备源URL,仅当source_type为PullVodPushLive生效。 |
|
callback_events |
否 |
Array of strings |
要回调的事件列表(不填则回调全部)
|
|
callback_url |
否 |
String |
回调接收地址 |
|
src_area |
否 |
String |
指定拉流就近区域 |
|
dst_area |
否 |
String |
指定推流就近区域 |
响应参数
状态码:200
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
task_id |
String |
任务id |
|
request_id |
String |
请求id |
状态码:400
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
error_code |
String |
错误码 |
|
error_msg |
String |
错误描述 |
|
request_id |
String |
请求id |
请求示例
POST https://{endpoint}/v1/{project_id}/pull/stream/task
{
"region" : "cn-north-4",
"source_type" : "PullLivePushLive",
"source_urls" : [ "rtmp://play.example.huawei.com/live/stream1" ],
"domain" : "publish.example.huawei.com",
"app_name" : "live",
"stream_name" : "test",
"start_time" : "2018-05-19T18:00:00Z",
"end_time" : "2018-05-19T21:00:00Z",
"push_args" : "arg1=value1",
"callback_events" : [ "TaskStart", "TaskExit", "TaskAlarm" ],
"callback_url" : "callback.example.com",
"backup_source_type" : "PullLivePushLive",
"backup_source_urls" : [ "rtmp://play.example.huawei.com/live/stream1_bak" ]
}
响应示例
状态码:200
创建拉流转推任务成功
{
"task_id" : "7864b3dc-e92f-42db-a754-08e627b6d8dd",
"request_id" : "85968475-e92f-42db-a754-08e627b6d8dd"
}
状态码:400
创建转推三方任务失败
{
"error_code" : "LIVE.100011001",
"error_msg" : "Request Illegal",
"request_id" : "85968475-e92f-42db-a754-08e627b6d8dd"
}
状态码
|
状态码 |
描述 |
|---|---|
|
200 |
创建拉流转推任务成功 |
|
400 |
创建转推三方任务失败 |
错误码
请参见错误码。