Topik ini menjelaskan operasi umum untuk LiveChannels, seperti membuat, menampilkan daftar, dan menghapus LiveChannels.
Buat LiveChannel
Sebelum mengunggah data audio dan video melalui Real-Time Messaging Protocol (RTMP), Anda harus memanggil operasi API ini untuk membuat LiveChannel. Operasi API PutLiveChannel mengembalikan URL ingest RTMP dan URL pemutaran yang sesuai.
Kode berikut menunjukkan cara membuat LiveChannel:
const OSS = require('ali-oss');
const store = new OSS({
// Ganti yourRegion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke oss-cn-hangzhou.
region: 'yourRegion',
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Tentukan nama bucket.
bucket: 'examplebucket',
})
// Tentukan nama LiveChannel. Nama tidak boleh mengandung garis miring (/). Contohnya, mychannel.
const cid = 'mychannel';
const conf = {
// Tentukan deskripsi LiveChannel. Panjang deskripsi maksimal 128 byte.
Description: 'this is my channel',
// Tentukan status LiveChannel. Pada contoh ini, status diatur ke enabled. Untuk menonaktifkan LiveChannel, atur parameter ini ke disabled.
Status: 'enabled',
Target: {
// Tentukan tipe dump. Hanya HLS yang didukung.
Type: 'HLS',
// Tentukan durasi setiap file .ts dalam satuan detik.
FragDuration: '10',
// Jika Type diatur ke HLS, tentukan jumlah file .ts dalam file .m3u8.
FragCount: '5',
// Jika Type diatur ke HLS, tentukan nama file .m3u8 yang dihasilkan. Nama harus diakhiri dengan .m3u8 dan panjangnya antara 6 hingga 128 byte.
PlaylistName: 'playlist.m3u8'
}
};
// Buat LiveChannel.
store.putChannel(cid, conf).then(r=>console.log(r))Dapatkan informasi LiveChannel
Kode berikut menunjukkan cara mengambil informasi tentang LiveChannel tertentu:
const OSS = require('ali-oss');
const store = new OSS({
// Ganti yourRegion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke oss-cn-hangzhou.
region: 'yourRegion',
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Tentukan nama bucket.
bucket: 'examplebucket',
})
// Tentukan nama LiveChannel.
const cid = 'mychannel';
// Dapatkan informasi tentang LiveChannel.
store.getChannel(cid).then(r=>console.log(r));Atur status LiveChannel
Kode berikut menunjukkan cara mengatur status LiveChannel:
const OSS = require('ali-oss');
const store = new OSS({
// Ganti yourRegion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke oss-cn-hangzhou.
region: 'yourRegion',
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Tentukan nama bucket.
bucket: 'examplebucket',
})
// Tentukan nama LiveChannel.
const cid = 'mychannel';
// LiveChannel dapat diaktifkan atau dinonaktifkan.
// Jika LiveChannel dinonaktifkan, OSS akan memblokir pengambilan aliran ke saluran tersebut. Jika client sedang melakukan ingest aliran ke saluran tersebut, koneksi client akan terputus setelah jeda sekitar 10 detik.
store.putChannelStatus(cid, 'disabled').then(r=>console.log(r));Dapatkan informasi status LiveChannel
Kode berikut menunjukkan cara mengambil status ingest aliran dari LiveChannel tertentu:
const OSS = require('ali-oss');
const store = new OSS({
// Ganti yourRegion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke oss-cn-hangzhou.
region: 'yourRegion',
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Tentukan nama bucket.
bucket: 'examplebucket',
})
// Tentukan nama LiveChannel.
const cid = 'mychannel';
// Dapatkan informasi status LiveChannel.
store.getChannelStatus(cid).then(r=>console.log(r))Buat playlist LiveChannel
Operasi API PostVodPlaylist menghasilkan playlist video sesuai permintaan (VOD) untuk LiveChannel tertentu. Operasi ini melakukan kueri ke OSS untuk file .ts yang dihasilkan dari ingest aliran ke LiveChannel dalam rentang waktu tertentu, lalu menggabungkannya menjadi playlist .m3u8.
Kode berikut menunjukkan cara membuat playlist LiveChannel:
const OSS = require('ali-oss');
const store = new OSS({
// Ganti yourRegion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke oss-cn-hangzhou.
region: 'yourRegion',
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Tentukan nama bucket.
bucket: 'examplebucket',
})
// Tentukan nama LiveChannel.
const cid = 'mychannel';
const r = await this.store.createVod(cid, 're-play', {
// Tentukan waktu mulai untuk melakukan kueri file .ts. Waktu harus berupa stempel waktu UNIX.
startTime: 1460464870,
// Tentukan waktu akhir untuk melakukan kueri file .ts. Waktu harus berupa stempel waktu UNIX.
endTime: 1460465877
// Waktu akhir harus lebih lambat daripada waktu mulai. Rentang waktu tidak boleh melebihi satu hari.
}).then(r=>console.log(r))Tampilkan daftar LiveChannel tertentu
Kode berikut menunjukkan cara menampilkan daftar LiveChannel tertentu:
const OSS = require('ali-oss');
const store = new OSS({
// Ganti yourRegion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke oss-cn-hangzhou.
region: 'yourRegion',
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Tentukan nama bucket.
bucket: 'examplebucket',
})
const r = await this.store.listChannels({
// Tampilkan daftar LiveChannel dengan awalan 'my'.
prefix: 'my',
// Tentukan bahwa maksimal tiga LiveChannel yang dikembalikan.
'max-keys': 3
}).then(r=>console.log(r))Dapatkan catatan ingest aliran LiveChannel
Operasi API GetLiveChannelHistory mendapatkan catatan ingest aliran dari LiveChannel tertentu. Operasi API GetLiveChannelHistory mengembalikan 10 catatan ingest aliran terakhir untuk LiveChannel yang ditentukan.
Kode berikut menunjukkan cara mengambil catatan ingest aliran LiveChannel:
const OSS = require('ali-oss');
const store = new OSS({
// Ganti yourRegion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke oss-cn-hangzhou.
region: 'yourRegion',
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Tentukan nama bucket.
bucket: 'examplebucket',
})
// Tentukan nama LiveChannel.
const cid = 'mychannel';
// Dapatkan catatan ingest aliran LiveChannel.
store.getChannelHistory(cid).then(r=>console.log(r))Hapus LiveChannel
Jika klien sedang melakukan ingest aliran ke LiveChannel, permintaan penghapusan akan gagal.
Operasi API DeleteLiveChannel hanya menghapus LiveChannel dan tidak menghapus file yang dihasilkan dari ingest aliran.
Kode berikut menunjukkan cara menghapus LiveChannel tertentu:
const OSS = require('ali-oss');
const store = new OSS({
// Ganti yourRegion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke oss-cn-hangzhou.
region: 'yourRegion',
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Tentukan nama bucket.
bucket: 'examplebucket',
})
// Tentukan nama LiveChannel.
const cid = 'mychannel';
// Hapus LiveChannel.
store.deleteChannel(cid).then(r=>console.log(r))Referensi
Untuk detail mengenai operasi API PutLiveChannel, lihat PutLiveChannel.
Untuk detail mengenai operasi API GetLiveChannelInfo, lihat GetLiveChannelInfo.
Untuk detail mengenai operasi API PutLiveChannelStatus, lihat PutLiveChannelStatus.
Untuk detail mengenai operasi API GetLiveChannelStat, lihat GetLiveChannelStat.
Untuk informasi selengkapnya mengenai operasi API untuk menampilkan daftar LiveChannel tertentu, lihat ListLiveChannel.
Untuk detail mengenai operasi API PostVodPlaylist, lihat PostVodPlaylist.
Untuk detail mengenai operasi API GetLiveChannelHistory, lihat GetLiveChannelHistory.
Untuk detail mengenai operasi API DeleteLiveChannel, lihat DeleteLiveChannel.