閱讀437 返回首頁    go 阿裏雲


PutLiveChannel__關於LiveChannel的操作_API 參考_對象存儲 OSS-阿裏雲

通過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>https://test-bucket.oss-cn-hangzhou.aliyuncs.com/test-channel/playlist.m3u8</Url>
  17. </PlayUrls>
  18. </CreateLiveChannelResult>

最後更新:2016-11-23 16:04:18

  上一篇:go PutLiveChannelStatus__關於LiveChannel的操作_API 參考_對象存儲 OSS-阿裏雲
  下一篇:go PostVodPlaylist__關於LiveChannel的操作_API 參考_對象存儲 OSS-阿裏雲