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

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

最終更新日:Nov 08, 2024

このトピックでは、LiveChannelsの作成、一覧表示、削除など、LiveChannelsで実行できる一般的な操作について説明します。

LiveChannelを作成する

リアルタイムメッセージングプロトコル (RTMP) を使用してオーディオおよびビデオデータをアップロードする前に、PutLiveChannel操作を呼び出してLiveChannelを作成する必要があります。 PutLiveChannelリクエストへの応答には、LiveChannelにストリームを取り込むために使用されるURLと、取り込まれたストリームを再生するために使用されるURLが含まれます。

次のコードは、LiveChannelを作成する方法の例を示しています。

const OSS = require('ali-oss');

const store = new OSS({
  // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
  region: 'yourRegion',
  // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Specify the name of the bucket. 
  bucket: 'examplebucket',
})

// Specify the name of the LiveChannel that you want to create. The name cannot contain forward slashes (/). Example: mychannel. 
const cid = 'mychannel';
const conf = {
  // Specify the description of the LiveChannel. The description can be up to 128 bytes in length. 
  Description: 'this is my channel',
  // Specify the status of the LiveChannel. In this example, the Status parameter is set to enabled, which indicates that the LiveChannel is enabled. If you want to disable the LiveChannel, set the Status parameter to disabled. 
  Status: 'enabled',
  Target: {
    // Specify the format in which the LiveChannel stores the uploaded data. Only the HTTP Live Streaming (HLS) format is supported. 
    Type: 'HLS',
    // Specify the duration of each TS segment. Unit: seconds. 
    FragDuration: '10',
    // If you set Type to HLS, you must specify the number of TS segments that are included in the M3U8 file. 
    FragCount: '5',
    // If you set Type to HLS, you must specify the name of the generated M3U8 file. The name must be 6 to 128 bytes in length and end with .m3u8. 
    PlaylistName: 'playlist.m3u8'
  }
};

// Create the LiveChannel. 
store.putChannel(cid, conf).then(r=>console.log(r))

LiveChannelの設定を照会する

次のコードは、LiveChannelの設定を照会する方法の例を示しています。

const OSS = require('ali-oss');

const store = new OSS({
  // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
  region: 'yourRegion',
  // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Specify the name of the bucket. 
  bucket: 'examplebucket',
})

// Specify the name of the LiveChannel.
const cid = 'mychannel'; 

// Query the configurations of the LiveChannel. 
store.getChannel(cid).then(r=>console.log(r));

LiveChannelのステータスを設定する

次のコードは、LiveChannelのステータスを設定する方法の例を示しています。

const OSS = require('ali-oss');

const store = new OSS({
  // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
  region: 'yourRegion',
  // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Specify the name of the bucket. 
  bucket: 'examplebucket',
})

// Specify the name of the LiveChannel. 
const cid = 'mychannel';

// A LiveChannel can be in one of the following states: enabled or disabled. 
// If a LiveChannel is in the disabled state, you cannot ingest streams to the LiveChannel. If you ingest a stream to a LiveChannel that is in the disabled state, your client is disconnected from the LiveChannel after approximately 10 seconds. 
store.putChannelStatus(cid, 'disabled').then(r=>console.log(r));

LiveChannelのステータスを照会する

次のコードは、LiveChannelのストリーム取り込みステータスを照会する方法の例を示しています。

const OSS = require('ali-oss');

const store = new OSS({
  // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
  region: 'yourRegion',
  // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Specify the name of the bucket. 
  bucket: 'examplebucket',
})

// Specify the name of the LiveChannel. 
const cid = 'mychannel';
// Query the status of the 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({
  // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
  region: 'yourRegion',
  // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Specify the name of the bucket. 
  bucket: 'examplebucket',
})

// Specify the name of the LiveChannel. 
const cid = 'mychannel';

const r = await this.store.createVod(cid, 're-play', {
  // Specify the beginning of the time range to query the TS segments that are generated. The value is a Unix timestamp. 
  startTime: 1460464870,
  // Specify the end of the time range to query the TS segments that are generated. The value is a Unix timestamp. 
  endTime: 1460465877
  // The value of EndTime must be greater than the value of StartTime. The time range between EndTime and StartTime must be less than or equal to one day. 
}).then(r=>console.log(r))

指定されたLiveChannelsのリスト

次のコードは、指定されたLiveChannelsを一覧表示する方法の例です。

const OSS = require('ali-oss');

const store = new OSS({
  // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
  region: 'yourRegion',
  // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Specify the name of the bucket. 
  bucket: 'examplebucket',
})

const r = await this.store.listChannels({
  // List LiveChannels whose names contain the 'my' prefix. 
  prefix: 'my',
  // Set the maximum number of LiveChannels to return to 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({
  // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
  region: 'yourRegion',
  // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Specify the name of the bucket. 
  bucket: 'examplebucket',
})

// Specify the name of the LiveChannel. 
const cid = 'mychannel';
// Query the stream ingest records of the 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({
  // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
  region: 'yourRegion',
  // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Specify the name of the bucket. 
  bucket: 'examplebucket',
})

// Specify the name of the LiveChannel. 
const cid = 'mychannel'; 

// Delete the LiveChannel. 
store.deleteChannel(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」をご参照ください。