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

:StartLiveMPUTask

最終更新日:Dec 13, 2025

混合ストリームリレータスクを作成します。

操作説明

デフォルトでは、1 つのアプリケーションに対して最大 200 のシングルストリームリレータスクと最大 40 の混合ストリームリレータスクを作成できます。クォータを増やすには、チケットを送信してください。

ストリームリレータスクのライフサイクル

開始

  • StartLiveMPUTask 操作を呼び出してタスクを作成します。

    • ユーザーがチャネルに参加しない場合、チャネルが存在しないことを示すエラーが返されます。

    • ストリームが取り込まれない場合、ストリームリレーは実行されません。この場合、再生に利用できるリレーされたストリームはありません。

    • タスクが混合ストリームリレーモードの場合、再生用にリレーできるストリームを少なくとも 1 人のユーザーが取り込んでいることを確認してください。ストリームを取り込んでいないユーザーのペインには黒い画面が表示されます。

  • ビジネスサーバーでタスクステータス、タスクモード、およびタスクパラメーターを記録することを推奨します。

    • タスクステータス:開始または停止。

    • タスクモード:シングルストリームリレーまたは混合ストリームリレー。

    • タスクパラメーター:最新の入力パラメーター。たとえば、UpdateLiveMPUTask 操作の呼び出しが成功した後、最新のタスクパラメーターを記録します。

  • 共同ストリーミングやバトルシナリオでは、タスクは混合ストリームリレーモードになります。ストリーマーが例外によりチャネルから退出して再度チャネルに参加した場合、ビジネスサーバーで StartLiveMPUTask 操作を直接呼び出して、記録されたタスクパラメーターに基づいてストリームリレーを開始できます。

    • タスクがシステムによって自動的にクリアされていない場合、タスクは直接開始されます。

    • タスクがシステムによって自動的にクリアされていない場合、「タスクは既に存在します」というメッセージが返されます。

終了

  • ストリーマーがチャネルから退出した後、StopLiveMPUTask 操作を呼び出してタスクを停止する必要があります。

  • タスクで指定されたすべてのユーザーがチャネルから退出しても、StopLiveMPUTask 操作を呼び出さない場合、システムは 2 分後にタスクを停止します。

QPS 制限

1 アカウントあたり、毎秒最大 500 回この操作を呼び出すことができます。この制限を超えたリクエストはドロップされ、サービス中断が発生します。この操作を呼び出す際は、この制限に注意することを推奨します。

今すぐお試しください

この API を OpenAPI Explorer でお試しください。手作業による署名は必要ありません。呼び出しに成功すると、入力したパラメーターに基づき、資格情報が組み込まれた SDK コードが自動的に生成されます。このコードをダウンロードしてローカルで使用できます。

テスト

RAM 認証

下表に、この API を呼び出すために必要な認証情報を示します。認証情報は、RAM (Resource Access Management) ポリシーを使用して定義できます。以下で各列名について説明します。

  • アクション:特定のリソースに対して実行可能な操作。ポリシー構文ではAction要素として指定します。

  • API:アクションを具体的に実行するための API。

  • アクセスレベル:各 API に対して事前定義されているアクセスの種類。有効な値:create、list、get、update、delete。

  • リソースタイプ:アクションが作用するリソースの種類。リソースレベルでの権限をサポートするかどうかを示すことができます。ポリシーの有効性を確保するため、アクションの対象として適切なリソースを指定してください。

    • リソースレベルの権限を持つ API の場合、必要なリソースタイプはアスタリスク (*) でマークされます。ポリシーのResource要素で対応する ARN を指定してください。

    • リソースレベルの権限を持たない API の場合、「すべてのリソース」と表示され、ポリシーのResource要素でアスタリスク (*) でマークされます。

  • 条件キー:サービスによって定義された条件のキー。このキーにより、きめ細やかなアクセス制御が可能になります。この制御は、アクション単体に適用することも、特定のリソースに対するアクションに適用することもできます。Alibaba Cloud は、サービス固有の条件キーに加えて、すべての RAM 統合サービスに適用可能な一連の共通条件キーを提供しています。

  • 依存アクション:ある特定のアクションを実行するために、前提として実行が必要となる他のアクション。依存アクションの権限も RAM ユーザーまたは RAM ロールに付与する必要があります。

アクション

アクセスレベル

リソースタイプ

条件キー

依存アクション

live:StartLiveMPUTask

create

*All Resource

*

なし なし

リクエストパラメーター

パラメーター

必須 / 任意

説明

AppId

string

必須

アプリケーション ID。指定できるアプリケーション ID は 1 つだけです。ID は最大 64 文字で、文字、数字、アンダースコア (_)、ハイフン (-) を使用できます。

yourAppId

ChannelId

string

必須

チャネル ID。指定できるチャネル ID は 1 つだけです。ID は最大 64 文字で、文字、数字、アンダースコア (_)、ハイフン (-) を使用できます。

yourChannelId

TaskId

string

必須

タスク ID。指定できるタスク ID は 1 つだけです。ID は最大 55 文字で、文字、数字、アンダースコア (_)、ハイフン (-) を使用できます。ID は一意である必要があります。

yourTaskId

MixMode

string

必須

ストリームミキシングモード。有効な値:

  • 0:シングルストリームリレーモード。このモードでは、サービスは元の単一ストリームのみをリレーし、混合ストリームのトランスコーディングは行いません。混合ストリームのトランスコーディングに関するパラメーターを設定する必要はありません。

  • 1 (デフォルト):混合ストリームリレーモード。

0

StreamURL

string

任意

アップストリーミング URL。リアルタイムメッセージングプロトコル (RTMP) 形式で指定できるアップストリーミング URL は 1 つだけです。URL は最大 2,048 文字です。アップストリーミング URL の生成ルールについては、「アップストリーミング URL とストリーミング URL」をご参照ください。

説明
  • アップストリーミング URL がホットリンク保護が有効になっているドメイン名の下にある場合、URL にアクセストークンを含める必要があります。

  • 異なるタスクで同じアップストリーミング URL を使用することはできません。

  • タスクが停止してから 10 秒以内に同じアップストリーミング URL を使用することはできません。

rtmp://example.com/live/stream

MultiStreamURL

array<object>

任意

リレーする複数のアップストリーミング URL。このパラメーターを使用すると、複数のアップストリーミング URL を指定できます。

説明

StreamURL パラメーターと MultiStreamURL パラメーターは相互排他的です。2 つのパラメーターのいずれかを指定する必要があります。

object

任意

URL

string

任意

アップストリーミング URL。RTMP 形式のみがサポートされています。URL は最大 2,048 文字です。アップストリーミング URL の生成ルールについては、「アップストリーミング URL とストリーミング URL」をご参照ください。

rtmp://example.com/live/stream****

IsAliCdn

boolean

任意

Alibaba Cloud CDN を使用してストリームリレーを実行するかどうかを指定します。有効な値:

  • false:Alibaba Cloud CDN ではない CDN サービスを使用してストリームリレーを実行します。

  • true:Alibaba Cloud CDN を使用してストリームリレーを実行します。

説明

このパラメーターのデフォルト値は false です。

false

Region

string

任意

ストリームが混合されるリージョン。有効な値:

  • CN-Shanghai

  • AP-Singapore (デフォルト)

  • EMAA-Saudi

CN-Shanghai

MaxIdleTime

string

任意

アイドル接続のタイムアウト期間。単位:秒。有効な値の範囲:[10,86400]。

説明

タスクが MaxIdleTime パラメーターで指定された期間より長くアイドル状態である場合、タスクは自動的に停止します。パラメーターが指定されていない場合、タスクはチャネルが閉じられた後に停止します。

10

SingleSubParams

object

任意

シングルストリームリレーパラメーター。これらのパラメーターは、MixMode を 0 に設定した場合に必要です。混合ストリームリレーモードでは、これらのパラメーターを空のままにします。

SourceType

string

任意

ビデオソースのタイプ。このパラメーターは、StreamType を 2 に設定した場合にのみ有効です。有効な値:

  • camera (デフォルト)

  • shareScreen

camera

StreamType

string

任意

リレーするストリームのタイプ。有効な値:

  • 0 (デフォルト):オリジナルストリーム

  • 1:オーディオトラックのみ

  • 2:ビデオトラックのみ

0

UserId

string

必須

ユーザー ID。シングルストリームリレーモードでは、1 つのリクエストで 1 つのストリームのみをリレーできます。

yourSubUserId

TranscodeParams

object

任意

混合ストリームリレーパラメーター。これらのパラメーターは、MixMode を 1 に設定した場合に必要です。シングルストリームリレーモードを使用する場合は、これらのパラメーターを空のままにします。

Background

object

任意

グローバル背景画像。

RenderMode

string

任意

グローバル背景画像の表示モード。有効な値:

  • 0:背景画像をビューに合わせて比例的に拡大/縮小し、黒枠を表示します。

  • 1 (デフォルト):背景画像をビューに合わせてトリミングします。

1

URL

string

任意

グローバル背景画像の URL。URL は最大 2,048 文字です。

yourImageUrl

EncodeParams

object

任意

出力ストリームのエンコーディングパラメーター。

AudioOnly

string

任意

出力ストリームがオーディオのみのストリームであるかどうかを指定します。有効な値:

  • true:出力ストリームはオーディオのみのストリームです。このパラメーターを true に設定した場合、EncodeParams の下でオーディオ関連のパラメーターのみを設定する必要があります。

  • false (デフォルト):出力ストリームはオーディオのみのストリームではありません。このパラメーターを false に設定した場合、VideoCodec および EnhancedParam パラメーターを除き、EncodeParams の下のすべてのパラメーターを設定する必要があります。

false

AudioBitrate

string

任意

オーディオのビットレート。有効な値の範囲:[8,500]。単位:Kbit/s。

128

AudioChannels

string

任意

サウンドチャンネルの数。有効な値:1 および 2。

2

AudioSampleRate

string

任意

音声サンプリングレート。有効な値:8000、16000、32000、44100、および 48000。単位:Hz。

44100

VideoCodec

string

任意

ビデオコーデック。有効な値:

  • H.264 (デフォルト)

  • H.265

H.264

VideoBitrate

string

任意

ビデオのビットレート。有効な値の範囲:[1,10000]。単位:Kbit/s。

3500

VideoFramerate

string

任意

ビデオのフレームレート。有効な値の範囲:[1,60]。単位:フレーム/秒 (FPS)。

25

VideoGop

string

任意

ビデオの GOP (Group of Pictures) サイズ。有効な値の範囲:[1,60]。

20

VideoHeight

string

任意

ビデオの高さ。有効な値の範囲:[0,1920]。単位:ピクセル。

1000

VideoWidth

string

任意

ビデオの幅。有効な値の範囲:[0,1920]。単位:ピクセル。

1920

EnhancedParam

string

任意

エンコーディング拡張に使用されるパラメーターで、JSON 文字列です。パラメーターには、オプションのプロファイルとプリセットフィールドが含まれます。

  • profile:エンコーディングレベル。ビデオコーデックが H.264 の場合、このフィールドの有効な値は baseline、main、および high です。ビデオコーデックが H.265 の場合、このフィールドの有効な値は main です。

  • preset:エンコーディング速度とビデオ品質のトレードオフを調整します。このフィールドの有効な値は、ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow、および placebo です。各値は、エンコーディング速度とビデオ品質のトレードオフのレベルを指定します。たとえば、ultrafast プリセットはエンコーディング速度が最も速いですがビデオ品質は最も低く、placebo プリセットは最高のビデオ品質のためにエンコーディング速度を犠牲にします。

説明

preset フィールドの値 superfast は、リアルタイムコミュニケーションシナリオに適しています。プロのエンコーディングエンジニアでない場合は、このフィールドを設定しないことを推奨します。

{"profile": "high", "preset": "veryfast"}

Layout

object

任意

ビデオレイアウト情報。

説明

ビデオのトランスコーディングが必要な場合は、x 座標と y 座標、幅と高さ、レイヤーを含むビデオレイアウト情報を指定する必要があります。オーディオのみのトランスコーディングの場合は、ビデオレイアウト情報を空のままにします。

UserPanes

array<object>

任意

ペインに関する情報。

array<object>

任意

ペインに関する情報。

UserInfo

object

任意

ペインでストリームが再生されるユーザーに関する情報。このパラメーターを空のままにすると、システムはストリーマーがチャネルに参加する順序に基づいてこのパラメーターを自動的に設定します。

説明
  • このパラメーターを使用してユーザーの情報を指定する場合、そのユーザーの情報は TranscodeParams.UserInfos パラメーターでも指定する必要があります。

  • このパラメーターは、StreamType を 0 または 2 に設定した場合にのみ有効です。

SourceType

string

任意

ビデオソースのタイプ。このパラメーターは、StreamType を 2 に設定した場合にのみ有効です。有効な値:

  • camera (デフォルト)

  • shareScreen

camera

ChannelId

string

任意

ユーザーがいるチャネルの ID。ユーザーが同じチャネルにいる場合、このパラメーターを空のままにすることができます。チャネル間でストリームミキシングを実行する場合は、このパラメーターを指定することを推奨します。

yourChannelId

UserId

string

任意

ユーザー ID。

yourSubUserId

Height

string

任意

ペインの高さ。値は正規化されます。

0.2632

Width

string

任意

ペインの幅。値は正規化されます。

0.3564

X

string

任意

ペインの x 座標。値は正規化されます。

0.2456

Y

string

任意

ペインの y 座標。値は正規化されます。

0.3789

ZOrder

string

任意

ペインが存在するレイヤー。値 0 は最下層を示します。値が 1 増えるごとに、次の上位レイヤーを示します。

0

BackgroundImageUrl

string

任意

ペインの背景画像の URL。URL は最大 2,048 文字です。この画像は、ユーザーがカメラをオフにした場合やチャネルにいない場合に表示されます。

yourImageUrl

RenderMode

string

任意

ペインの表示モード。有効な値:

  • 0:ビデオをビューに合わせて比例的に拡大/縮小し、黒枠を表示します。

  • 1 (デフォルト):ビデオをビューに合わせてトリミングします。

1

UserInfos

array<object>

任意

ストリームがサブスクライブされているユーザーに関する情報。このパラメーターを空のままにすると、すべてのユーザーからのストリームが混合されます。

object

任意

ユーザーに関する情報。

SourceType

string

任意

サブスクライブされているビデオソースのタイプ。このパラメーターは、StreamType を 2 に設定した場合にのみ有効です。有効な値:

  • camera (デフォルト)

  • shareScreen

camera

StreamType

string

任意

サブスクライブされているリレーされたストリームのタイプ。有効な値:

  • 0 (デフォルト):オリジナルストリーム

  • 1:オーディオトラックのみ

  • 2:ビデオトラックのみ

0

ChannelId

string

任意

サブスクライブされているユーザーがいるチャネルの ID。ユーザーが同じチャネルにいる場合、このパラメーターを空のままにすることができます。チャネル間でストリームミキシングを実行する場合は、このパラメーターを指定することを推奨します。

yourChannelId

UserId

string

必須

サブスクライブされているユーザーの ID。

yourSubUserId

SeiParams

object

任意

補足的な拡張情報 (SEI) パラメーター。

LayoutVolume

object

任意

レイアウトとボリュームの SEI。このパラメーターを空のままにすると、デフォルトのレイアウトとボリュームの SEI が使用されます。

FollowIdr

string

任意

Instantaneous Decoder Refresh (IDR) フレームに SEI を含めるかどうかを指定します。有効な値:

  • 0:SEI を含めません。

  • 1:SEI を含めます。

0

Interval

string

任意

SEI が送信される間隔。有効な値の範囲:[1000,5000]。単位:ミリ秒。

1000

PassThrough

object

任意

SEI をパススルーするかどうかを指定します。

FollowIdr

string

任意

IDR フレームに SEI を含めるかどうかを指定します。有効な値:

  • 0:SEI を含めません。

  • 1:SEI を含めます。

0

Interval

string

任意

SEI が送信される間隔。有効な値の範囲:[1000,5000]。単位:ミリ秒。

1000

PayloadContent

string

任意

SEI のペイロードコンテンツ。

yourPayloadContent

PayloadContentKey

string

任意

SEI のペイロードコンテンツのキー。このパラメーターを指定しない場合、デフォルト値の udd が使用されます。

yourPayloadContentKey

PayloadType

string

任意

SEI のカスタム payload_type。有効な値の範囲:100~254。このパラメーターを指定しない場合、デフォルト値の 5 が使用されます。

100

レイアウトとボリュームの SEI

パラメーター説明
canvasキャンバスに関する情報。次のフィールドが含まれます:- w:キャンバスの幅。単位:ピクセル。- h:キャンバスの高さ。単位:ピクセル。- bgnd:キャンバスの背景色。16 進整数の形式の RGB 値です。
streamビデオストリームに関する情報。次のフィールドが含まれます:- uid:ストリーマーのユーザー ID。- paneid:キャンバス上のペインのシーケンス番号。有効な値の範囲:[0,8]。- zorder:ペインのレイヤー。有効な値の範囲:[0,99]。- x:キャンバス上のペインの x 座標。値は正規化されます。- y:キャンバス上のペインの y 座標。値は正規化されます。- w:ペインの幅。値は正規化されます。- h:ペインの高さ。値は正規化されます。- type:ペイン内のビデオストリームのソース。有効な値:0 (カメラ) および 1 (画面共有)。- status:ペイン内のビデオストリームのステータス。有効な値:0 (プルされていない) および 1 (プルされた)。- muted:ストリーマーのミュートステータス。有効な値:0 (ミュートされていない) および 1 (ミュートされた)。たとえば、2 人のストリーマー (ストリーマー A とストリーマー B) がバトルしている場合、ストリーマー A がストリーマー B をミュートすると、ストリーマー B に表示される muted フィールドは 1 になります。- vol:ストリーマーのボリューム。有効な値の範囲:[0,255]。単位:dB。- vad:人間の音声を検出します。有効な値の範囲:[0,150]。150 は人間の音声が検出されたことを示し、150 以外の値は人間の音声のボリュームが 0 に減少するまでの時間を示します。
tsSEI が生成されたときのオペレーティングシステムのタイムスタンプ。単位:ミリ秒。
verSEI のバージョン。たとえば、現在のバージョンは 1.0.0.20220915 です。
uddPassThrough パラメーターを使用して送信されるカスタムシナリオベースのイベント。イベントのコンテンツは PayloadContent パラメーターで指定されます。

リレーされたストリームのストリーミングデータには SEI が含まれており、カスタム情報を伝達するために使用できます。SEI は、デコード中にビデオフレームデータから抽出できます。SEI 形式については、「リクエストパラメーター」セクションの PassThrough パラメーターの説明をご参照ください。

次の例は、共同ストリーミングシナリオを示しています:

単一のストリーマーがストリーミングしている場合、視聴者が受信する SEI メッセージには 1 人の参加者の情報のみが含まれます。共同ストリーミングまたはバトルが発生した場合、視聴者が受信する SEI メッセージには複数の参加者の情報が含まれます。たとえば、ユーザー ID が 111 のストリーマーがストリーミングしている場合、次の形式の SEI フレームが視聴者側に送信されます:
{"canvas":{"w":1920,"h":1080,"bgnd":0},"stream":[{"uid":"111","paneid":-1,"zorder":0,"x":0,"y":0,"w":0,"h":0,"type":0,"status":1,"muted":0,"vol":0,"vad":0}],"ver":"1.0.0.20220915","ts":1697696105170} ユーザー ID が 111 のストリーマーがユーザー ID が 222 の共同ストリーマーと共同ストリーミングしている場合、次の形式の SEI フレームが視聴者側に送信されます:
{"canvas":{"w":1920,"h":1080,"bgnd":0},"stream":[{"uid":"111","paneid":0,"zorder":1,"x":0,"y":0.25,"w":0.5,"h":0.5,"type":0,"status":1,"muted":0,"vol":1,"vad":119},{"uid":"222","paneid":1,"zorder":1,"x":0.5018382,"y":0.25,"w":0.5,"h":0.5,"type":0,"status":1,"muted":0,"vol":60,"vad":123}],"ver":"1.0.0.20220915","ts":1697696106230} 視聴者は、ストリーム配列の数に基づいてストリーミングレイアウトが変更されたかどうかを判断できます。ストリーム配列が 1 つしか存在しない場合、単一のストリーマーがストリーミングしています。複数のストリーム配列が存在する場合、共同ストリーミングまたはバトルが進行中です。参加者のレイアウト情報は、混合ストリーム内の各参加者の位置を示すことができます。

SEI パススルー

  • カスタム SEI を設定するには、StartLiveMPUTask 操作を呼び出して混合ストリームリレータスクを開始し、PassThrough パラメーターの下で PayloadContent パラメーターを指定するか、UpdateLiveMPUTask 操作を呼び出して混合ストリームリレータスクを更新し、PassThrough パラメーターの下で PayloadContent パラメーターを指定します。

  • カスタム SEI は定期的に送信できます。PassThrough パラメーターの下の Interval パラメーターを使用して、ミリ秒単位で間隔を指定できます。

  • カスタム SEI は、PassThrough パラメーターの下の FollowIdr パラメーターを指定することで、キーフレームと共に送信することもできます。
    • カスタム SEI を定期的に送信し、同時にキーフレームと共にカスタム SEI を送信するように設定を構成できます。たとえば、Interval パラメーターを 1000 に、FollowIdr パラメーターを 1 に設定して、カスタム SEI を 1,000 ミリ秒ごとに送信し、キーフレームにカスタム SEI を含めることができます。

    • Interval パラメーターと FollowIdr パラメーターを指定しない場合、カスタム SEI は操作を呼び出したときに 1 回だけ送信されます。

たとえば、ユーザー ID が 111 のストリーマーがストリームを取り込み、UpdateLiveMPUTask 操作を呼び出して定期的な SEI を指定します。この操作では、Interval パラメーターは 1000 に、FollowIdr パラメーターは 0 に、PayloadContent パラメーターは "hello world" に設定されます。この場合、カスタム SEI は 1,000 ミリ秒ごとに送信されます。視聴者側で受信される SEI フレームは次の形式です:
{"canvas":{"w":1920,"h":1080,"bgnd":0},"stream":[{"uid":"111","paneid":-1,"zorder":0,"x":0,"y":0,"w":0,"h":0,"type":0,"status":1,"muted":0,"vol":0,"vad":0}],"ver":"1.0.0.20220915","ts":1697696109876,"udd":"hello world"}

チャネル間の混合ストリームリレー

複数のチャネルにまたがる複数のストリーマーからのストリームを混合し、混合ストリームを ApsaraVideo Live にリレーする場合は、チャネル間通話を開始したストリーマーのユーザー ID とチャネル ID、および他のストリーマーのユーザー ID を入力パラメーターとして指定して、混合ストリームリレータスクを作成する必要があります。例:バトルシナリオでは、チャネル A のストリーマー A がクライアントインターフェイスを使用してチャネル B のストリーマー B とのチャネル間バトルを開始し、混合ストリームをチャネル A の視聴者にリレーします。この例では、次のパラメーターが指定されます:

  • ChannelID:channelA

  • UserInfos の下の UserId:userA および userB

チャネル間の混合ストリームリレータスクを作成するには、クライアント側で SDK を使用してチャネル間通話が開始されていることを確認してください。異なるチャネルのユーザーが互いに通話していない場合、チャネル間の混合ストリームリレータスクを作成することはできません。チャネル間通話を開始する方法の詳細については、「チャネル間サブスクリプション」をご参照ください。

レスポンスフィールド

フィールド

説明

object

RequestId

string

リクエスト ID。

0F72851F-5DC1-1979-9B2C-450040316C3E

成功レスポンス

JSONJSON

{
  "RequestId": "0F72851F-5DC1-1979-9B2C-450040316C3E"
}

エラーコード

HTTP ステータスコード

エラーコード

エラーメッセージ

説明

400 InvalidParam %s
400 InvalidAppId %s
500 InternalError InternalError
403 OperationDenied Your account has not enabled the Live service
403 Forbidden %s
404 MissingParam %s

完全なリストについては、「エラーコード」をご参照ください。

変更履歴

完全なリストについては、「変更履歴」をご参照ください。