このトピックでは、LiveChannelsの作成、一覧表示、削除など、LiveChannelsで実行できる一般的な操作について説明します。
LiveChannelを作成する
リアルタイムメッセージングプロトコル (RTMP) を使用してオーディオおよびビデオデータをアップロードする前に、PutLiveChannel操作を呼び出してLiveChannelを作成する必要があります。 PutLiveChannelリクエストへの応答には、LiveChannelにストリームを取り込むために使用されるURLと、取り込まれたストリームを再生するために使用されるURLが含まれます。
次のコードは、LiveChannelを作成する方法の例を示しています。
const OSS = require('ali-OSS ');
const store = new OSS({
// バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。
リージョン: 'yourRegion' 、
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID、
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、
// バケットの名前を指定します。
bucket: 'examplebucket' 、})
// 作成するLiveChannelの名前を指定します。 スラッシュ (/) を含めることはできません。 例: mychannel.
const cid = 'mychannel';
const conf = {
// LiveChannelの説明を指定します。 説明の長さは最大128バイトです。
説明: 「これは私のチャンネルです」、
// LiveChannelのステータスを指定します。 この例では、Statusパラメーターはenabledに設定されています。 LiveChannelを無効にする場合は、Statusパラメーターをdisabledに設定します。
ステータス: 'enabled' 、
ターゲット: {
// LiveChannelがアップロードされたデータを保存する形式を指定します。 HTTPライブストリーミング (HLS) 形式のみがサポートされています。
タイプ: 'HLS' 、
// 各TSセグメントの期間を指定します。 単位は秒です。
FragDuration: '10' 、
// TypeをHLSに設定した場合、M3U8ファイルに含まれるTSセグメントの数を指定する必要があります。
FragCount: '5' 、
// TypeをHLSに設定した場合、生成されるM3U8ファイルの名前を指定する必要があります。 名前の長さは6〜128バイトで、で終わる必要があります。m3u8。
PlaylistName: 'playlist.m3u8'
}
};
// LiveChannelを作成します。
store.putChannel(cid, conf).then(r=>console.log(r))
LiveChannelの設定を照会する
次のコードは、LiveChannelの設定を照会する方法の例を示しています。
const OSS = require('ali-OSS ');
const store = new OSS({
// バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。
リージョン: 'yourRegion' 、
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID、
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、
// バケットの名前を指定します。
bucket: 'examplebucket' 、})
// LiveChannelの名前を指定します。
const cid = 'mychannel';
// LiveChannelの設定を照会します。
store.getChannel(cid).then(r=>console.log(r));
LiveChannelのステータスを設定する
次のコードは、LiveChannelのステータスを設定する方法の例を示しています。
const OSS = require('ali-OSS ');
const store = new OSS({
// バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。
リージョン: 'yourRegion' 、
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID、
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、
// バケットの名前を指定します。
bucket: 'examplebucket' 、})
// LiveChannelの名前を指定します。
const cid = 'mychannel';
// LiveChannelは、有効または無効のいずれかの状態にすることができます。
// LiveChannelが無効状態の場合、LiveChannelにストリームを取り込むことはできません。 無効状態のLiveChannelにストリームを取り込むと、クライアントは約10秒後にLiveChannelから切断されます。
store.putChannelStatus(cid, 'disabled').then(r=>console.log(r));
LiveChannelのステータスを照会する
次のコードは、LiveChannelのストリーム取り込みステータスを照会する方法の例を示しています。
const OSS = require('ali-OSS ');
const store = new OSS({
// バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。
リージョン: 'yourRegion' 、
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID、
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、
// バケットの名前を指定します。
bucket: 'examplebucket' 、})
// LiveChannelの名前を指定します。
const cid = 'mychannel';
// LiveChannelのステータスを照会します。
store.getChannelStatus(cid).then(r=>console.log(r))
LiveChannelのプレイリストを生成する
PostVodPlaylist操作を呼び出して、指定したLiveChannelのVODプレイリストを生成できます。 OSSは、特定の期間内に指定されたLiveChannelに取り込まれたストリームによって生成されたTSセグメントを照会し、セグメントをM3U8プレイリストに収束させます。
次のコードは、指定したLiveChannelのプレイリストを生成する方法の例を示しています。
const OSS = require('ali-OSS ');
const store = new OSS({
// バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。
リージョン: 'yourRegion' 、
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID、
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、
// バケットの名前を指定します。
bucket: 'examplebucket' 、})
// LiveChannelの名前を指定します。
const cid = 'mychannel';
const r = await this.store.createVod(cid, 're-play', {)
// 生成されるTSセグメントを照会する時間範囲の開始を指定します。 値はUnixタイムスタンプです。
startTime: 1460464870、
// 生成されるTSセグメントを照会する時間範囲の終わりを指定します。 値はUnixタイムスタンプです。
endTime: 1460465877
// EndTimeの値はStartTimeの値より大きくなければなりません。 EndTimeとStartTimeの間の時間範囲は、1日以下である必要があります。
}).then(r=>console.log(r))
指定されたLiveChannelsのリスト
次のコードは、指定されたLiveChannelsを一覧表示する方法の例です。
const OSS = require('ali-OSS ');
const store = new OSS({
// バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。
リージョン: 'yourRegion' 、
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID、
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、
// バケットの名前を指定します。
bucket: 'examplebucket' 、})
const r = await this.store.listChannels({
// 名前が 'my' プレフィックスを含むLiveChannelsをリストします。
プレフィックス: 'my' 、
// LiveChannelsの最大数を3に戻すように設定します。
'max-keys': 3
}).then(r=>console.log(r))
LiveChannelのストリーム取り込みレコードの照会
GetLiveChannelHistory操作を呼び出して、指定したLiveChannelのストリーム取り込みレコードを照会できます。 GetLiveChannelHistoryリクエストに対する応答には、指定されたLiveChannelの最新のストリーム取り込みレコードが最大10件含まれます。
次のコードは、LiveChannelのストリーム取り込みレコードを照会する方法の例を示しています。
const OSS = require('ali-OSS ');
const store = new OSS({
// バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。
リージョン: 'yourRegion' 、
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID、
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、
// バケットの名前を指定します。
bucket: 'examplebucket' 、})
// LiveChannelの名前を指定します。
const cid = 'mychannel';
// LiveChannelのストリーム取り込みレコードを照会します。
store.getChannelHistory(cid).then(r=>console.log(r))
LiveChannelを削除する
クライアントがストリームを取り込んでいるLiveChannelを削除するDeleteLiveChannelリクエストを送信すると、リクエストは失敗します。
DeleteLiveChannel操作は、LiveChannelのみを削除し、LiveChannelに取り込まれたストリームによって生成されたファイルは削除しません。
次のコードは、LiveChannelを削除する方法の例を示しています。
const OSS = require('ali-OSS ');
const store = new OSS({
// バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。
リージョン: 'yourRegion' 、
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID、
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、
// バケットの名前を指定します。
bucket: 'examplebucket' 、})
// LiveChannelの名前を指定します。
const cid = 'mychannel';
// LiveChannelを削除します。
store.de leteChannel(cid).then(r=>console.log(r))
参考資料
LiveChannelを作成するために呼び出すことができるAPI操作の詳細については、「PutLiveChannel」をご参照ください。
LiveChannelの構成を照会するために呼び出すことができるAPI操作の詳細については、「GetLiveChannelInfo」をご参照ください。
LiveChannelのステータスを設定するために呼び出すことができるAPI操作の詳細については、「PutLiveChannelStatus」をご参照ください。
LiveChannelのストリーム取り込みステータスを照会するために呼び出すことができるAPI操作の詳細については、「GetLiveChannelStat」をご参照ください。
指定されたLiveChannelsを一覧表示するために呼び出すAPI操作の詳細については、「ListLiveChannel」をご参照ください。
LiveChannelのプレイリストを生成するために呼び出すAPI操作の詳細については、「PostVodPlaylist」をご参照ください。
LiveChannelのストリーム取り込みレコードを照会するために呼び出すことができるAPI操作の詳細については、「GetLiveChannelHistory」をご参照ください。
LiveChannelを削除するために呼び出すことができるAPI操作の詳細については、「DeleteLiveChannel」をご参照ください。