全部产品
Search
文档中心

Object Storage Service:PutLiveChannel

更新时间:Jul 02, 2025

Sebelum mengunggah data audio dan video menggunakan Real-Time Messaging Protocol (RTMP), Anda harus memanggil operasi PutLiveChannel untuk membuat LiveChannel. Tanggapan terhadap permintaan PutLiveChannel mencakup URL untuk memasukkan aliran ke LiveChannel dan URL untuk memutar aliran yang dimasukkan.

Catatan

Anda dapat menggunakan URL yang dikembalikan untuk memasukkan dan memutar aliran. Berdasarkan nama LiveChannel yang diberikan, Anda juga dapat melakukan operasi seperti memeriksa status pemasukan aliran, memeriksa catatan pemasukan aliran, dan menonaktifkan pemasukan aliran.

Permissions

Secara default, akun Alibaba Cloud memiliki semua izin. Pengguna RAM atau Peran RAM di bawah akun Alibaba Cloud tidak memiliki izin apa pun secara default. Akun Alibaba Cloud atau administrator akun harus memberikan izin operasi melalui RAM Policy atau Bucket Policy.

API

Action

Definition

PutLiveChannel

oss:PutLiveChannel

Membuat LiveChannel sebelum Anda mengunggah data audio dan video menggunakan Real-Time Messaging Protocol (RTMP).

Sintaksis Permintaan

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>Deskripsi Channel</Description>
  <Status>Status Channel</Status>
  <Target>
     <Type>HLS</Type>
     <FragDuration>Durasi Fragmen</FragDuration>
     <FragCount>Jumlah Fragmen</FragCount>
     <PlaylistName>Nama Playlist</PlaylistName>
  </Target>
  <Snapshot>
    <RoleName>Peran Snapshot RAM</RoleName>
    <DestBucket>Bucket tujuan Snapshot</DestBucket>
    <NotifyTopic>Topik Notifikasi MNS</NotifyTopic>
    <Interval>Interval Snapshot dalam detik</Interval>
  </Snapshot>
</LiveChannelConfiguration>

Header Permintaan

Header

Tipe

Diperlukan

Deskripsi

ChannelName

String

Ya

Nama LiveChannel yang ingin Anda buat. Nama tersebut harus sesuai dengan konvensi penamaan objek dan tidak boleh mengandung garis miring (/).

Parameter Permintaan

Parameter

Tipe

Diperlukan

Deskripsi

LiveChannelConfiguration

Container

Ya

Kontainer yang menyimpan konfigurasi LiveChannel.

Node anak: Description, Status, dan Target

Node induk: none

Description

String

Tidak

Deskripsi LiveChannel. Deskripsi bisa mencapai 128 byte panjangnya.

Node anak: none

Node induk: LiveChannelConfiguration

Status

Enumerated string

Tidak

Status LiveChannel.

Node anak: none

Node induk: LiveChannelConfiguration

Nilai valid: enabled dan disabled

Nilai default: enabled

Target

Container

Ya

Kontainer yang menyimpan konfigurasi yang digunakan oleh LiveChannel untuk menyimpan data yang diunggah.

Node anak: Type, FragDuration, FragCount, dan PlaylistName

Node induk: LiveChannelConfiguration

Type

Enumerated string

Ya

Format penyimpanan data yang diunggah oleh LiveChannel.

Node anak: none

Node induk: Target

Nilai valid: HLS

Catatan
  • Ketika Anda mengatur nilai Type menjadi HLS, Object Storage Service (OSS) memperbarui file m3u8 setiap kali file ts dihasilkan. Jumlah maksimum file ts terbaru yang dapat disertakan dalam file m3u8 ditentukan oleh parameter FragCount.

  • Ketika Anda mengatur nilai Type menjadi HLS dan durasi data audio dan video yang ditulis ke file ts saat ini melebihi durasi yang ditentukan oleh FragDuration, OSS beralih ke file ts berikutnya untuk menulis data sebelum key frame berikutnya diterima. Jika OSS tidak menerima key frame berikutnya setelah max(2*FragDuration, 60s), OSS secara paksa beralih ke file ts berikutnya. Dalam hal ini, tersendat mungkin terjadi selama pemutaran aliran.

FragDuration

String

Tidak

Durasi setiap file ts ketika Anda mengatur nilai Type menjadi HLS.

Satuan: detik

Node anak: none

Node induk: Target

Nilai valid: [1, 100]

Nilai default: 5

Catatan

Jika Anda tidak menentukan nilai untuk parameter FragDuration dan FragCount, nilai default dari kedua parameter tersebut akan digunakan. Anda harus menentukan parameter FragDuration dan FragCount secara bersamaan.

FragCount

String

Tidak

Jumlah file ts yang disertakan dalam file m3u8 ketika nilai Type adalah HLS.

Node anak: none

Node induk: Target

Nilai valid: [1, 100]

Nilai default: 3

Catatan

Jika Anda tidak menentukan nilai untuk parameter FragDuration dan FragCount, nilai default dari kedua parameter tersebut akan digunakan. Anda harus menentukan parameter FragDuration dan FragCount secara bersamaan.

PlaylistName

String

Tidak

Nama file m3u8 yang dihasilkan ketika nilai Type adalah HLS. Nama tersebut harus memiliki panjang 6 hingga 128 byte. Nama tersebut harus diakhiri dengan .m3u8.

Node anak: none

Node induk: Target

Nilai default: playlist.m3u8

Snapshot

Container

Tidak

Kontainer yang menyimpan opsi operasi snapshot frekuensi tinggi.

Node anak: RoleName, DestBucket, NotifyTopic, dan Interval

Node induk: LiveChannelConfiguration

RoleName

String

Tidak

Nama peran yang digunakan untuk melakukan operasi snapshot frekuensi tinggi. Peran tersebut harus memiliki izin tulis pada DestBucket dan izin untuk mengirim pesan ke NotifyTopic.

Node anak: none

Node induk: Snapshot

DestBucket

String

Tidak

Bucket yang menyimpan hasil operasi snapshot frekuensi tinggi. Bucket tersebut harus dimiliki oleh pemilik yang sama dengan bucket saat ini.

Node anak: none

Node induk: Snapshot

NotifyTopic

String

Tidak

Topik MNS yang digunakan untuk memberi tahu pengguna tentang hasil operasi snapshot frekuensi tinggi.

Node anak: none

Node induk: Snapshot

Interval

NUMERIC

Ya

Interval operasi snapshot frekuensi tinggi. Jika tidak ada key frame, seperti inline frame, dalam interval tersebut, tidak ada snapshot yang diambil.

Satuan: detik

Node anak: none

Node induk: Snapshot

Nilai valid: [1, 100]

Secara default, parameter ini dibiarkan kosong.

Parameter Tanggapan

Parameter

Tipe

Deskripsi

CreateLiveChannelResult

Container

Kontainer yang menyimpan tanggapan terhadap permintaan CreateLiveChannel.

Node anak: PublishUrls dan PlayUrls

Node induk: none

PublishUrls

Container

Kontainer yang menyimpan URL yang digunakan untuk memasukkan aliran ke LiveChannel.

Node anak: Url

Node induk: CreateLiveChannelResult

Url

String

URL yang digunakan untuk memasukkan aliran ke LiveChannel.

Node anak: none

Node induk: PublishUrls

Catatan
  • URL yang digunakan untuk memasukkan aliran tidak ditandatangani. Jika daftar kontrol akses (ACL) bucket bukan publik baca/tulis, Anda harus menambahkan tanda tangan ke URL sebelum menggunakan URL untuk mengakses bucket.

  • URL yang digunakan untuk memutar aliran tidak ditandatangani. Jika ACL bucket bersifat pribadi, Anda harus menambahkan tanda tangan ke URL sebelum menggunakan URL untuk mengakses bucket.

PlayUrls

Container

Kontainer yang menyimpan URL yang digunakan untuk memutar aliran yang dimasukkan ke LiveChannel.

Node anak: Url

Node induk: CreateLiveChannelResult

Url

String

URL yang digunakan untuk memutar aliran yang dimasukkan ke LiveChannel.

Node anak: none

Node induk: PlayUrls

Contoh

Permintaan sampel

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: OOSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
<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>

Tanggapan sampel

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>