通過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 有效值:enabled、disabled 預設值:enabled |
Target | 容器 | 是 | 儲存轉儲配置的容器。 子節點:Type、FragDuration、FragCount、PlaylistName 父節點:LiveChannelConfiguration |
Type | 枚舉字串 | 是 | 指定轉儲的類型。 子節點:無 父節點:Target 有效值:HLS 說明
|
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 說明
|
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>