すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:LiveChannelsの一般的な操作

最終更新日:Dec 18, 2023

このトピックでは、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」をご参照ください。