このトピックでは、LiveChannel の作成、一覧表示、削除など、LiveChannel の一般的な操作について説明します。
LiveChannel の作成
リアルタイムメッセージングプロトコル (RTMP) 経由で音声および動画データをアップロードする前に、この API 操作を呼び出して LiveChannel を作成する必要があります。PutLiveChannel API 操作は、RTMP アップストリーミング URL と対応する再生 URL を返します。
次のコードは、LiveChannel を作成する方法を示しています。
const OSS = require('ali-oss');
const store = new OSS({
// yourRegion をバケットが所在するリージョンに置き換えます。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
region: 'yourRegion',
// 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// バケット名を指定します。
bucket: 'examplebucket',
})
// LiveChannel 名を指定します。名前にスラッシュ (/) を含めることはできません。例:mychannel。
const cid = 'mychannel';
const conf = {
// LiveChannel の説明を指定します。説明の長さは最大 128 バイトです。
Description: 'this is my channel',
// LiveChannel のステータスを指定します。この例では、ステータスは enabled に設定されています。LiveChannel を無効にするには、このパラメーターを disabled に設定します。
Status: 'enabled',
Target: {
// ダンプタイプを指定します。HLS のみがサポートされています。
Type: 'HLS',
// 各 .ts ファイルの期間を秒単位で指定します。
FragDuration: '10',
// Type が HLS に設定されている場合は、.m3u8 ファイル内の .ts ファイルの数を指定します。
FragCount: '5',
// Type が HLS に設定されている場合は、生成される .m3u8 ファイルの名前を指定します。名前は .m3u8 で終わり、長さは 6〜128 バイトである必要があります。
PlaylistName: 'playlist.m3u8'
}
};
// LiveChannel を作成します。
store.putChannel(cid, conf).then(r=>console.log(r))LiveChannel 情報の取得
次のコードは、特定の LiveChannel の情報を取得する方法を示しています。
const OSS = require('ali-oss');
const store = new OSS({
// yourRegion をバケットが所在するリージョンに置き換えます。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
region: 'yourRegion',
// 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// バケット名を指定します。
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({
// yourRegion をバケットが所在するリージョンに置き換えます。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
region: 'yourRegion',
// 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// バケット名を指定します。
bucket: 'examplebucket',
})
// LiveChannel 名を指定します。
const cid = 'mychannel';
// LiveChannel は有効または無効にできます。
// LiveChannel が無効になっている場合、OSS はそのチャンネルへのアップストリーミングをブロックします。クライアントがチャンネルにストリームをアップストリーミングしている場合、クライアントは約 10 秒の遅延後に切断されます。
store.putChannelStatus(cid, 'disabled').then(r=>console.log(r));LiveChannel ステータス情報の取得
次のコードは、特定の LiveChannel のアップストリーミングステータスを取得する方法を示しています。
const OSS = require('ali-oss');
const store = new OSS({
// yourRegion をバケットが所在するリージョンに置き換えます。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
region: 'yourRegion',
// 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// バケット名を指定します。
bucket: 'examplebucket',
})
// LiveChannel 名を指定します。
const cid = 'mychannel';
// LiveChannel のステータス情報を取得します。
store.getChannelStatus(cid).then(r=>console.log(r))LiveChannel プレイリストの生成
PostVodPlaylist API 操作は、特定の LiveChannel のビデオオンデマンド (VOD) プレイリストを生成します。この操作は、指定された時間範囲内に LiveChannel へのアップストリーミングから生成された .ts ファイルを OSS にクエリし、それらを .m3u8 プレイリストに結合します。
次のコードは、LiveChannel プレイリストを生成する方法を示しています。
const OSS = require('ali-oss');
const store = new OSS({
// yourRegion をバケットが所在するリージョンに置き換えます。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
region: 'yourRegion',
// 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// バケット名を指定します。
bucket: 'examplebucket',
})
// LiveChannel 名を指定します。
const cid = 'mychannel';
const r = await this.store.createVod(cid, 're-play', {
// .ts ファイルをクエリする開始時刻を指定します。時刻は UNIX タイムスタンプである必要があります。
startTime: 1460464870,
// .ts ファイルをクエリする終了時刻を指定します。時刻は UNIX タイムスタンプである必要があります。
endTime: 1460465877
// 終了時刻は開始時刻より後でなければなりません。期間は 1 日を超えることはできません。
}).then(r=>console.log(r))特定の LiveChannel の一覧表示
次のコードは、特定の LiveChannel を一覧表示する方法を示しています。
const OSS = require('ali-oss');
const store = new OSS({
// yourRegion をバケットが所在するリージョンに置き換えます。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
region: 'yourRegion',
// 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// バケット名を指定します。
bucket: 'examplebucket',
})
const r = await this.store.listChannels({
// プレフィックスが 'my' の LiveChannel を一覧表示します。
prefix: 'my',
// 最大 3 つの LiveChannel を返すように指定します。
'max-keys': 3
}).then(r=>console.log(r))LiveChannel のアップストリーミングレコードの取得
GetLiveChannelHistory API 操作は、特定の LiveChannel のアップストリーミングレコードを取得します。GetLiveChannelHistory API 操作は、指定された LiveChannel の最後の 10 件のアップストリーミングレコードを返します。
次のコードは、LiveChannel のアップストリーミングレコードを取得する方法を示しています。
const OSS = require('ali-oss');
const store = new OSS({
// yourRegion をバケットが所在するリージョンに置き換えます。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
region: 'yourRegion',
// 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// バケット名を指定します。
bucket: 'examplebucket',
})
// LiveChannel 名を指定します。
const cid = 'mychannel';
// LiveChannel のアップストリーミングレコードを取得します。
store.getChannelHistory(cid).then(r=>console.log(r))LiveChannel の削除
クライアントが LiveChannel にストリームをアップストリーミングしている場合、削除リクエストは失敗します。
DeleteLiveChannel API 操作は LiveChannel のみを削除します。アップストリーミングから生成されたファイルは削除されません。
次のコードは、特定の LiveChannel を削除する方法を示しています。
const OSS = require('ali-oss');
const store = new OSS({
// yourRegion をバケットが所在するリージョンに置き換えます。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
region: 'yourRegion',
// 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// バケット名を指定します。
bucket: 'examplebucket',
})
// LiveChannel 名を指定します。
const cid = 'mychannel';
// LiveChannel を削除します。
store.deleteChannel(cid).then(r=>console.log(r))関連ドキュメント
PutLiveChannel API 操作の詳細については、「PutLiveChannel」をご参照ください。
GetLiveChannelInfo API 操作の詳細については、「GetLiveChannelInfo」をご参照ください。
PutLiveChannelStatus API 操作の詳細については、「PutLiveChannelStatus」をご参照ください。
GetLiveChannelStat API 操作の詳細については、「GetLiveChannelStat」をご参照ください。
特定の LiveChannel を一覧表示する API 操作の詳細については、「ListLiveChannel」をご参照ください。
PostVodPlaylist API 操作の詳細については、「PostVodPlaylist」をご参照ください。
GetLiveChannelHistory API 操作の詳細については、「GetLiveChannelHistory」をご参照ください。
DeleteLiveChannel API 操作の詳細については、「DeleteLiveChannel」をご参照ください。