更新时间:2024-07-03 GMT+08:00
分享

创建视频流

功能介绍

该接口用于创建视频流。包括RTMP以及HTTP-FLV类型视频流。

  • 创建RTMP视频流时,用户可根据实际需求选择是否配置密钥,如果配置了密钥,则进行RTMP推流时需要提供认证Token。如果不配置该参数,则推流时不需要进行认证。
  • 创建HTTP-FLV视频流时,需要HTTP-FLV视频流的拉流地址,且地址必须是http或https协议的合法URL。

自定义流名称只能使用英文字母a~z,A-Z)、数字(0~9)以及连接符(-、_),连接符(-、__)不能连续出现、不能单独注册,也不能放在开头和结尾。长度不低于 8,不超过128个字符。

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

URI

POST /v1/{project_id}/streams

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,获取方法请参考获取项目ID

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

普通租户的token。

Authorization

String

使用AK/SK方式认证时必选,携带的鉴权信息。

X-Sdk-Date

String

使用AK/SK方式认证时必选,请求的发生时间。

X-Project-Id

String

使用AK/SK方式认证时必选,携带项目ID信息。

表3 请求Body参数

参数

是否必选

参数类型

描述

name

String

自定义流名称只能使用英文字母a~z,A-Z)、数字(0~9)以及连接符(-、_),连接符(-、__)不能连续出现、不能单独注册,也不能放在开头和结尾。长度不低于 8,不超过128个字符。

access_type

String

视频接入类型,当前支持HTTP-FLV和RTMP协议,不区分大小写。

encode_type

String

视频流编码格式,当前支持H264,不区分大小写。

share_type

String

视频流共享类型。

  • PRIVATE:非共享。
  • PUBLIC:共享。

不填时默认为PRIVATE,不区分大小写。当值为PRIVATE,用户在拉取视频时会鉴权,拉流时必须在请求头中添加X-Auth-Token,值为创建视频流的用户的Token。拉流地址参考获取视频流地址

url

String

当视频类型为RTMP协议时,不需要该参数。当视频类型为HTTP-FLV协议时,该参数必填,表示HTTP-FLV协议视频流的拉流地址。该地址必须是http或https协议的合法URL,格式要求以“http://”或“https://”开头的字符串,例如“http://xxxx.xxx”。

access_key

String

当视频类型为HTTP-FLV时,不需要该参数。视频接入类型是RTMP时,该参数表示密钥access_key,用户可根据自己实际需求选择是否配置。如果配置了密钥access_key,则进行RTMP推流时需要提供认证Token。这里的密钥access_key由创建AK/SK凭证接口生成。配置了密钥access_key后,在推流时,需要在原始推流地址后面加上若干查询参数,作为推流认证信息,具体请参见推流鉴权规则。如果不配置该参数,表示不提供access_key,则推流时不需要进行认证。

description

String

视频流的描述信息,可填字符串最大长度为500。

tag

Array of StreamTag objects

和视频流关联的标签,一个视频流最多添加10个标签。

表4 StreamTag

参数

是否必选

参数类型

描述

key

String

标签的键。最大长度为36个UNICODE字符(一-鿿),可以包含大小写字母、数字、中划线(-)或者下划线(_),不能包含其他的特殊字符。

value

String

标签的值。最大长度为43个UNICODE字符(一-鿿),可以包含大小写字母、数字、点(.)、中划线(-)或者下划线(_),不能包含其他的特殊字符,也可以为空字符串。

响应参数

状态码: 201

表5 响应Body参数

参数

参数类型

描述

stream_id

String

视频流ID。

name

String

视频流的名称。

encode_type

String

视频流编码格式。

access_type

String

视频接入类型。

access_key

String

RTMP视频流的密钥。接入类型(access_type)为RTMP时,才有该参数。

url

String

HTTP-FLV视频流的拉流地址。接入类型(access_type)为HTTP-FLV时,才有该参数。

share_type

String

视频流共享类型。

state

String

视频流状态。

  • ACTIVE:表示已激活。
  • STOPPED:表示已停用。

默认为STOPPED。

created_at

Number

视频流创建时间,UTC时间,格式为:YYYY-MM-DDTHH:MM:SSZ。

updated_at

Number

视频流更新时间,UTC时间,格式为:YYYY-MM-DDTHH:MM:SSZ。

description

String

视频流描述信息。

tag

Array of StreamTag objects

和视频流关联的标签。

表6 StreamTag

参数

参数类型

描述

key

String

标签的键。最大长度为36个UNICODE字符(一-鿿),可以包含大小写字母、数字、中划线(-)或者下划线(_),不能包含其他的特殊字符。

value

String

标签的值。最大长度为43个UNICODE字符(一-鿿),可以包含大小写字母、数字、点(.)、中划线(-)或者下划线(_),不能包含其他的特殊字符,也可以为空字符串。

请求示例

  • RTMP
    POST /v1/3266392d188c47d09948b1**********/streams
    
    {
      "name" : "stream_test1",
      "access_type" : "RTMP",
      "encode_type" : "H264",
      "share_type" : "PUBLIC",
      "access_key" : "ALKJOWLKJSDNFGO******KSJDF",
      "description" : "",
      "tag" : [ {
        "key" : "group",
        "value" : "number1"
      } ]
    }
  • HTTP-FLV
    POST /v1/3266392d188c47d09948b1**********/streams
    
    {
      "name" : "stream_test2",
      "access_type" : "HTTP-FLV",
      "encode_type" : "H264",
      "share_type" : "PUBLIC",
      "url" : "https://xxxxxxxx.com/live",
      "description" : "",
      "tag" : [ {
        "key" : "group",
        "value" : "number1"
      } ]
    }

响应示例

状态码: 201

正常

  • 示例 1
    {
      "stream_id" : "stream-0BOPSRsT",
      "name" : "stream_test1",
      "encode_type" : "H264",
      "access_type" : "RTMP",
      "access_key" : "ALKJOWLKJSDNFGO******KSJDF",
      "share_type" : "PUBLIC",
      "state" : "STOPPED",
      "created_at" : "2018-06-12T13:00:01Z",
      "updated_at" : "2018-06-12T13:00:01Z",
      "description" : "",
      "tag" : [ {
        "key" : "group",
        "value" : "number1"
      } ]
    }
  • 示例 2
    {
      "stream_id" : "stream-9IzU3TdL",
      "name" : "stream_test2",
      "encode_type" : "H264",
      "access_type" : "HTTP-FLV",
      "url" : "https://xxxxxxxx.com/live",
      "share_type" : "PUBLIC",
      "state" : "STOPPED",
      "created_at" : "2018-06-12T13:00:01Z",
      "updated_at" : "2018-06-12T13:00:01Z",
      "description" : "",
      "tag" : [ {
        "key" : "group",
        "value" : "number1"
      } ]
    }

状态码: 400

请求错误。具体返回错误码请参考错误码说明

{
  "error_msg" : "Invalid request parameter, url can not be null or empty when access type is HTTP-FLV.",
  "error_code" : "VIS.0005"
}

状态码

状态码

描述

201

正常

400

请求错误。具体返回错误码请参考错误码说明

相关文档