全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
对象存储 OSS

PutLiveChannel

更新时间:2017-06-07 13:26:11

通过RTMP协议上传音视频数据前,必须先调用该接口来创建一个LiveChannel。该接口会返回RTMP推流地址,以及对应的播放地址。用户可以使用返回的地址进行推流、播放。另外,用户可以根据该LiveChannel的名称来发起相关的操作,如查询推流状态、查询推流记录、禁止推流等。

请求语法

  1. PUT /ChannelName?live HTTP/1.1
  2. Host: BucketName.oss-cn-hangzhou.aliyuncs.com
  3. Date: GMT date
  4. Content-Length: Size
  5. Authorization: SignatureValue
  6. <?xml version="1.0" encoding="UTF-8"?>
  7. <LiveChannelConfiguration>
  8. <Description>ChannelDescription</Description>
  9. <Status>ChannelStatus</Status>
  10. <Target>
  11. <Type>HLS</Type>
  12. <FragDuration>FragDuration</FragDuration>
  13. <FragCount>FragCount</FragCount>
  14. <PlayListName>PlaylistName</PlayListName>
  15. </Target>
  16. </LiveChannelConfiguration>

请求元素(Request Elements)

名称 描述 是否必需
LiveChannelConfiguration 保存LiveChannel配置的容器。
类型:容器
子节点:Description、Status、Target
父节点:无
Description LiveChannel的描述信息,最长128字节。
类型:字符串
子节点:无
父节点:LiveChannelConfiguration
Status 指定LiveChannel的状态。
类型:枚举字符串
子节点:无
父节点:LiveChannelConfiguration
有效值:enabled、disabled

默认值:enabled
Target 保存转储配置的容器。
类型:容器
子节点:Type、FragDuration、FragCount、PlaylistName
父节点:LiveChannelConfiguration
Type 指定转储的类型。
类型:枚举字符串
子节点:无
父节点:Target
有效值:HLS
FragDuration 当Type为HLS时,指定每个ts文件的时长(单位:秒),取值范围为[1, 100]的整数。
类型:字符串
子节点:无
父节点: Target

默认值:5
FragCount 当Type为HLS时,指定m3u8文件中包含ts文件的个数,取值范围为[1, 100]的整数。
类型:字符串
子节点:无
父节点:Target

默认值: 3
PlaylistName 当Type为HLS时,指定生成的m3u8文件的名称,必须以”.m3u8”结尾,长度范围为[6, 128]。
类型:字符串
子节点:无
父节点:Target

默认值:playlist.m3u8

细节分析

  1. ChannelName必须符合ObjectName的命名规范,另外,ChannelName不能包含”/“。
  2. FragDuration和FragCount的默认值只有在两者都未指定时才会生效;指定了其中一个,则另一个的值也必须指定。
  3. 转储类型为HLS时,OSS会在生成每个ts文件后,更新m3u8文件;m3u8文件中最多包含最近的FragCount个ts文件。
  4. 转储类型为HLS时,写入当前ts文件的音视频数据时长达到FragDuration指定的时长后,OSS会在收到下一个关键帧的时候切换到下一个ts文件;如果max(2*FragDuration, 60s)后仍未收到下一个关键帧,OSS强制切换文件,此时可能引起播放时卡顿。

响应元素

名称 描述
CreateLiveChannelResult 保存CreateLiveChannel请求结果的容器。
类型:容器
子节点:PublishUrls,PlayUrls
父节点:无
PublishUrls 保存推流地址的容器。
类型:容器
子节点:Url
父节点:CreateLiveChannelResult
Url 推流地址。
类型:字符串
子节点:无
父节点:PublishUrls
PlayUrls 保存推流地址的容器。
类型:容器
子节点:Url
父节点:CreateLiveChannelResult
Url 播放地址。
类型:字符串
子节点:无
父节点:PlayUrls

细节分析

  1. 推流地址是未加签名的url,如果bucket acl非public-read-write,那么需要首先进行签名才能进行访问。
  2. 播放地址是未加签名的url,如果bucket acl为private,那么需要首先进行签名才能进行访问。

实例

请求示例

  1. PUT /test-channel?live HTTP/1.1
  2. Date: Wed, 24 Aug 2016 11:11:28 GMT
  3. Content-Length: 333
  4. Host: test-bucket.oss-cn-hangzhou.aliyuncs.com
  5. Authorization: OSS YJjHKOKWDWINLKXv:hvwOZJRh8toAj3DZvtsuPgf+agA=
  6. <?xml version="1.0" encoding="utf-8"?>
  7. <LiveChannelConfiguration>
  8. <Description/>
  9. <Status>enabled</Status>
  10. <Target>
  11. <Type>HLS</Type>
  12. <FragDuration>2</FragDuration>
  13. <FragCount>3</FragCount>
  14. </Target>
  15. </LiveChannelConfiguration>

返回示例

  1. HTTP/1.1 200
  2. content-length: 259
  3. server: AliyunOSS
  4. x-oss-server-time: 4
  5. connection: close
  6. x-oss-request-id: 57BD8419B92475920B0002F1
  7. date: Wed, 24 Aug 2016 11:11:28 GMT
  8. x-oss-bucket-storage-type: standard
  9. content-type: application/xml
  10. <?xml version="1.0" encoding="UTF-8"?>
  11. <CreateLiveChannelResult>
  12. <PublishUrls>
  13. <Url>rtmp://test-bucket.oss-cn-hangzhou.aliyuncs.com/live/test-channel</Url>
  14. </PublishUrls>
  15. <PlayUrls>
  16. <Url>http://test-bucket.oss-cn-hangzhou.aliyuncs.com/test-channel/playlist.m3u8</Url>
  17. </PlayUrls>
  18. </CreateLiveChannelResult>
本文导读目录