全部產品
Search
文件中心

Object Storage Service:PutLiveChannel

更新時間:Jun 19, 2024

通過RTMP協議上傳音視頻資料前,必須先調用該介面建立一個LiveChannel。調用PutLiveChannel介面會返回RTMP推流地址,以及對應的播放地址。

說明

您可以使用返回的地址進行推流、播放,您還可以根據該LiveChannel的名稱來發起相關的操作,如查詢推流狀態、查詢推流記錄、禁止推流等。

請求文法

PUT /ChannelName?live HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT date
Content-Length: Size
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<LiveChannelConfiguration>
  <Description>ChannelDescription</Description>
  <Status>ChannelStatus</Status>
  <Target>
     <Type>HLS</Type>
     <FragDuration>FragDuration</FragDuration>
     <FragCount>FragCount</FragCount>
     <PlaylistName>PlaylistName</PlaylistName>
  </Target>
  <Snapshot>
    <RoleName>Snapshot ram role</RoleName>
    <DestBucket>Snapshot dest bucket</DestBucket>
    <NotifyTopic>Notify topic of MNS</NotifyTopic>
    <Interval>Snapshot interval in second</Interval>
  </Snapshot>
</LiveChannelConfiguration>

要求標頭

名稱

類型

是否必選

描述

ChannelName

字串

必須符合ObjectName的命名規範,另外,ChannelName不能包含斜杠(/)。

請求元素

名稱

類型

是否必選

描述

LiveChannelConfiguration

容器

儲存LiveChannel配置的容器。

子節點:Description、Status、Target

父節點:無

Description

字串

LiveChannel的描述資訊,最長128位元組。

子節點:無

父節點:LiveChannelConfiguration

Status

枚舉字串

指定LiveChannel的狀態。

子節點:無

父節點:LiveChannelConfiguration

有效值:enableddisabled

預設值:enabled

Target

容器

儲存轉儲配置的容器。

子節點:Type、FragDuration、FragCount、PlaylistName

父節點:LiveChannelConfiguration

Type

枚舉字串

指定轉儲的類型。

子節點:無

父節點:Target

有效值:HLS

說明
  • 轉儲類型為HLS時,OSS會在產生每個ts檔案後更新m3u8檔案。m3u8檔案中最多包含最近的FragCount個ts檔案。

  • 轉儲類型為HLS時,寫入當前ts檔案的音視頻資料時間長度達到FragDuration指定的時間長度後,OSS會在收到下一個主要畫面格的時切換到下一個ts檔案;如果max (2*FragDuration, 60s)後仍未收到下一個主要畫面格,OSS將強制切換檔案,此時可能引起播放時卡頓。

FragDuration

字串

當Type為HLS時,指定每個ts檔案的時間長度。

單位:秒

子節點:無

父節點:Target

取值範圍:[1, 100]

預設值:5

說明

FragDuration和FragCount的預設值只有在兩者都未指定時才會生效;指定了其中一個,則另一個的值也必須指定。

FragCount

字串

當Type為HLS時,指定m3u8檔案中包含ts檔案的個數。

子節點:無

父節點:Target

取值範圍:[1, 100]

預設值:3

說明

FragDuration和FragCount的預設值只有在兩者都未指定時才會生效;指定了其中一個,則另一個的值也必須指定。

PlaylistName

字串

當Type為HLS時,指定產生的m3u8檔案的名稱。必須以”.m3u8”結尾,長度範圍為[6, 128]。

子節點:無

父節點:Target

預設值:playlist.m3u8

Snapshot

容器

儲存高頻截圖操作Snapshot選項的容器。

子節點:RoleName、DestBucket、NotifyTopic、Interval

父節點:LiveChannelConfiguration

RoleName

字串

用於高頻截圖操作的角色名稱,要求有DestBucket的寫入權限和向NotifyTopic發訊息的許可權。

子節點:無

父節點:Snapshot

DestBucket

字串

儲存高頻截圖目標Bucket,要求與當前Bucket是同一個Owner。

子節點:無

父節點:Snapshot

NotifyTopic

字串

用於通知使用者高頻截圖操作結果的MNS的Topic。

子節點:無

父節點:Snapshot

Interval

數字

高頻截圖的間隔長度。如果該段間隔時間內沒有主要畫面格(I 幀),則該間隔時間不截圖。

單位:秒

子節點:無

父節點:Snapshot

取值範圍:[1, 100]

預設值:無

響應元素

名稱

類型

描述

CreateLiveChannelResult

容器

儲存CreateLiveChannel請求結果的容器。

子節點:PublishUrls,PlayUrls

父節點:無

PublishUrls

容器

儲存推流地址的容器。

子節點:Url

父節點:CreateLiveChannelResult

Url

字串

推流地址。

子節點:無

父節點:PublishUrls

說明
  • 推流地址是未加簽名的URL,如Bucket ACL非public-read-write,則需先進行簽名才可訪問。

  • 播放地址是未加簽名的URL,如Bucket ACL為private,則需先進行簽名才可訪問。

PlayUrls

容器

儲存播放地址的容器。

子節點:Url

父節點:CreateLiveChannelResult

Url

字串

播放地址。

子節點:無

父節點:PlayUrls

樣本

請求樣本

PUT /test-channel?live HTTP/1.1
Date: Wed, 24 Aug 2016 11:11:28 GMT
Content-Length: 333
Host: test-bucket.oss-cn-hangzhou.aliyuncs.com
Authorization: OSS qn6q**************:77Dv****************

<?xml version="1.0" encoding="utf-8"?>
<LiveChannelConfiguration>
    <Description/>
    <Status>enabled</Status>
    <Target>
        <Type>HLS</Type>
        <FragDuration>2</FragDuration>
        <FragCount>3</FragCount>
    </Target>
    <Snapshot>
        <RoleName>role_for_snapshot</RoleName>
        <DestBucket>snapshotdest</DestBucket>
        <NotifyTopic>snapshotnotify</NotifyTopic>
        <Interval>1</Interval>
     </Snapshot>
</LiveChannelConfiguration>

返回樣本

HTTP/1.1 200
content-length: 259
server: AliyunOSS
x-oss-server-time: 4
connection: close
x-oss-request-id: 57BD8419B92475920B0002F1
date: Wed, 24 Aug 2016 11:11:28 GMT
x-oss-bucket-storage-type: standard
content-type: application/xml

<?xml version="1.0" encoding="UTF-8"?>
<CreateLiveChannelResult>
  <PublishUrls>
    <Url>rtmp://test-bucket.oss-cn-hangzhou.aliyuncs.com/live/test-channel</Url>
  </PublishUrls>
  <PlayUrls>
    <Url>http://test-bucket.oss-cn-hangzhou.aliyuncs.com/test-channel/playlist.m3u8</Url>
  </PlayUrls>
</CreateLiveChannelResult>