
# 创建视频流
#### 功能介绍
该接口用于创建视频流。包括RTMP以及HTTP-FLV类型视频流。
- 创建RTMP视频流时，用户可根据实际需求选择是否配置密钥，如果配置了密钥，则进行RTMP推流时需要提供认证Token。如果不配置该参数，则推流时不需要进行认证。
- 创建HTTP-FLV视频流时，需要HTTP-FLV视频流的拉流地址，且地址必须是http或https协议的合法URL。
自定义流名称只能使用英文字母（a\~z，A-Z）、数字（0\~9）以及连接符（-、_），连接符（-、_）不能连续出现、不能单独注册，也不能放在开头和结尾。长度不低于 8，不超过128个字符。
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=VIS&api=CreateStream)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### URI
POST /v1/{project_id}/streams
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                              |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID，获取方法请参考[获取项目ID](https://support.huaweicloud.com/api-vis/vis_03_0005.html)。 |
   
#### 请求参数
表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。拉流地址参考[获取视频流地址](https://support.huaweicloud.com/api-vis/ListStreamsAddresses.html)。 |
| 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凭证](https://support.huaweicloud.com/api-vis/CreateAkskCertificate.html)接口生成。配置了密钥access_key后，在推流时，需要在原始推流地址后面加上若干查询参数，作为推流认证信息,具体请参见[推流鉴权规则](https://support.huaweicloud.com/usermanual-vis/vis_02_0012.html)。如果不配置该参数，表示不提供access_key，则推流时不需要进行认证。                         |
| description | 否    | String                                                         | 视频流的描述信息，可填字符串最大长度为500。                                                                                                                                                                                                                                                                                                                                                                                             |
| tag         | 否    | Array of [StreamTag] objects | 和视频流关联的标签，一个视频流最多添加10个标签。                                                                                                                                                                                                                                                                                                                                                                                           |
   
 表4StreamTag 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                 |
|:---|:---|:---|:---|
| 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 | 和视频流关联的标签。                                                                                                                                                                                                                                          |
   
 表6StreamTag 
| 参数    | 参数类型   | 描述                                                                                 |
|:---|:---|:---|
| 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**
请求错误。具体返回错误码请参考[错误码说明](https://support.huaweicloud.com/api-vis/vis_03_0047.html)
```
{
  "error_msg" : "Invalid request parameter, url can not be null or empty when access type is HTTP-FLV.",
  "error_code" : "VIS.0005"
}
```
#### 状态码
| 状态码 | 描述                                                                               |
|:---|:---|
| 201 | 正常                                                                               |
| 400 | 请求错误。具体返回错误码请参考[错误码说明](https://support.huaweicloud.com/api-vis/vis_03_0047.html) |
   
