全部產品
Search
文件中心

ApsaraVideo Live:StartLiveMPUTask - 建立混流轉推任務(新)

更新時間:Dec 13, 2025

建立混流轉推任務。

介面說明

單個應用 ID 預設支援單路轉推任務上限為 200 個,混流轉碼轉推任務上限為 40。如果您需要提升配額,請提交工單

混流任務生命週期

啟動

  • 主播首次開播,可以調用 StartLiveMPUTask 啟動旁路。

    • 若無使用者入會,會返回 channel 不存在錯誤。

    • 使用者開始推流時才會輸出旁路流。若單路任務使用者未推流,則旁路流無法播放。

    • 混流任務需保證至少有一個使用者有推流,旁路流才可播放。未推流的使用者對應的布局畫面會展示黑屏。

  • 客戶商務服務器建議記錄旁路任務狀態、任務類型、任務參數。

    • 任務狀態:啟動、停止。

    • 任務類型:單路、混流。

    • 任務參數:即最新的入參,例如:調用 UpdateLiveMPUTask 成功後,記錄最新任務參數。

  • 在連麥或者 PK 情境下,此時任務已經被更新為混流。若當前主播異常退出重新入會後,客戶商務服務器可以根據儲存的最新的任務類型和任務參數,直接調用 StartLiveMPUTask 啟動混流任務。

    • 如果啟動前任務未被系統自動清理,則直接啟動成功。

    • 如果任務還未被系統自動清理,則會返回任務已存在錯誤碼。

結束

  • 主播離會,需要主動調用 StopLiveMPUTask 停止旁路任務。

  • 若任務所指定的所有使用者均已離會但未主動調用 StopLiveMPUTask,系統會在 2 分鐘後對旁路任務進行停止。

QPS 限制

本介面的單使用者 QPS 限制為 500 次/秒。超過限制,API 呼叫會被限流,這可能會影響您的業務,請合理調用。

調試

您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。

調試

授權資訊

下表是API對應的授權資訊,可以在RAM權限原則語句的Action元素中使用,用來給RAM使用者或RAM角色授予調用此API的許可權。具體說明如下:

  • 操作:是指具體的許可權點。

  • 存取層級:是指每個操作的存取層級,取值為寫入(Write)、讀取(Read)或列出(List)。

  • 資源類型:是指操作中支援授權的資源類型。具體說明如下:

    • 對於必選的資源類型,用前面加 * 表示。

    • 對於不支援資源級授權的操作,用全部資源表示。

  • 條件關鍵字:是指雲產品自身定義的條件關鍵字。

  • 關聯操作:是指成功執行操作所需要的其他許可權。操作者必須同時具備關聯操作的許可權,操作才能成功。

操作

存取層級

資源類型

條件關鍵字

關聯操作

live:StartLiveMPUTask

create

*全部資源

*

請求參數

名稱

類型

必填

描述

樣本值

AppId

string

應用 ID,僅支援傳單個 ID。由大小寫字母、數字、底線、短劃線(-)組成,最大 64 字元。

yourAppId

ChannelId

string

頻道 ID,僅支援傳單個 ID。由大小寫字母、數字、底線、短劃線(-)組成,最大 64 字元。

yourChannelId

TaskId

string

任務 ID,僅支援傳單個 ID。由大小寫字母、數字、底線、短劃線(-)組成,最大 55 字元。此 ID 為旁路轉推的標識,需保證唯一。

yourTaskId

MixMode

string

混流模式。取值:

  • 0:單路轉推,不混流轉碼,僅轉推原始單路流,無需配置混流轉碼參數。

  • 1(預設值):混流轉碼轉推。

0

StreamURL

string

直播推流地址,僅支援 RTMP 協議,僅支援傳單個地址,最大長度不超過 2048 個字元。建置規則請參見推流地址和播放地址

說明
  • 對已開防盜鏈鑒權的網域名稱,需要在推流地址中包含鑒權串。

  • 禁止同一個 StreamURL 在不同任務中同時使用。

  • 任務停止 10S 之內,禁止使用同一個 StreamURL。

rtmp://example.com/live/stream

MultiStreamURL

array<object>

多地址轉推參數,可填寫多個直播推流地址。

說明

在設定任務的轉推地址時,StreamURL 參數與 MultiStreamURL 參數,只能配置其中一個參數,且必須配置其中一個參數。

object

URL

string

直播推流地址,僅支援 RTMP 協議,最大長度不超過 2048 個字元。建置規則請參見推流地址和播放地址

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

IsAliCdn

boolean

是否轉推到阿里雲 CDN。

  • false 為轉推非阿里雲 CDN。

  • true 為轉推阿里雲 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

單流轉推的使用者識別碼,一次只能轉推一路流。

yourSubUserId

TranscodeParams

object

混流轉碼轉推參數,混流轉碼轉推(MixMode=1)時必填。需要單流轉推時不填。

Background

object

混流全域背景圖。

RenderMode

string

子畫面輸出時的顯示模式:

  • 0:縮放並顯示黑底。

  • 1(預設):裁剪。

1

URL

string

全域背景圖 URL,最大長度不超過 2048 個字元。

yourImageUrl

EncodeParams

object

轉推輸出的編碼參數。

AudioOnly

string

是否為純音頻,取值:

  • true:純音頻,僅需要設定音頻相關參數。

  • false(預設值):非純音頻,除 VideoCodec 參數與 EnhancedParam 參數外,其它參數均不可為空。

false

AudioBitrate

string

音頻碼率,取值範圍:[8, 500],單位:kbps。

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],單位:kbps。

3500

VideoFramerate

string

視訊框架率,取值範圍:[1, 60],單位:fps。

25

VideoGop

string

視頻 GOP,取值範圍:[1, 60]。

20

VideoHeight

string

視頻高,取值範圍:[0, 1920],單位:px。

1000

VideoWidth

string

視頻寬,取值範圍:[0, 1920],單位:px。

1920

EnhancedParam

string

編碼增強參數,JSON 字串,目前支援的可選配置包括 profile 與 preset。

  • profile:編碼層級。當視頻編碼格式為 H.264 時,profile 支援的可選值包括:"baseline", "main", "high";當視頻編碼格式為 H.265 時,profile 支援的可選值包括:"main"。

  • preset:調節編碼速度和品質的平衡。preset 支援的可選值包括:"ultrafast", "superfast", "veryfast", "faster", "fast", "medium", "slow", "slower", "veryslow" "placebo"。每個值代表了一種編碼速度與輸出視頻品質的策略,從"ultrafast"(極快,編碼速度優先)到"placebo"(追求極致品質,編碼極慢)。

說明

例如設定 superfast,主要用於即時通訊領域。建議非編碼器專業技術人員,不設定該選項。

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

Layout

object

視頻布局資訊。

說明

視頻轉碼時,需要指定視頻布局資訊,包括布局座標(X,Y),布局窗格(Width,Height),疊放順序(ZOrder);純音頻轉碼時,禁止填寫視頻布局資訊。

UserPanes

array<object>

混流使用者窗格資訊。

array<object>

混流使用者窗格資訊。

UserInfo

object

該窗格對應的混流使用者資訊,不填時後台按照上行主播的進房順序自動填滿。

說明
  • 如果指定混流使用者資訊,該使用者資訊需要已在 TranscodeParams.UserInfos 參數中配置。

  • 僅針對原始流和視頻流有效。

SourceType

string

混流轉碼模式下視頻輸入資料流類型,僅針對視頻流(StreamType=2)有效。取值:

  • camera(預設值):網路攝影機。

  • shareScreen:螢幕畫面分享。

camera

ChannelId

string

混流使用者所在的頻道 ID,同頻道內混流的使用者可不填,跨頻道混流時建議填寫該參數。

yourChannelId

UserId

string

混流使用者識別碼。

yourSubUserId

Height

string

窗格高,歸一化百分比。

0.2632

Width

string

窗格寬,歸一化百分比。

0.3564

X

string

座標 X,歸一化百分比。

0.2456

Y

string

座標 Y,歸一化百分比。

0.3789

ZOrder

string

疊放順序,0 為最底層,1 層在 0 層之上,以此類推。

0

BackgroundImageUrl

string

子畫面的背景圖 URL,最大長度不超過 2048 個字元。當使用者關閉網路攝影機或未進入房間時,會在布局位置填充為此圖片。

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

混流時訂閱的使用者識別碼。

yourSubUserId

SeiParams

object

SEI 配置參數。

LayoutVolume

object

布局和音量 SEI,該參數內容可以為空白,表示攜帶預設的布局和音量 SEI。

FollowIdr

string

發送 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 的 payload 內容。

yourPayloadContent

PayloadContentKey

string

透傳 SEI 的 payload 內容對應的 key 值。不設定時,key 為預設值 udd。

yourPayloadContentKey

PayloadType

string

SEI 訊息的自訂 payload_type,取值範圍 100-254。不設定時,SEI 的 payload_type 為預設值為 5。

100

布局和音量 SEI

參數說明
canvas畫布資訊,參數資訊:
- w:畫布寬,單位:像素。
- h:畫布高,單位:像素。
- bgnd:畫布的背景顏色,格式為 RGB 定義下的十六進位整數。


stream視頻流資訊,參數資訊:
- uid:主播的使用者識別碼。
- paneid:該地區在窗格編號,取值[0,8]。
- zorder:該地區的疊放層級,取值範圍 [0,99]。
- x:該地區在畫布中對應的 x 座標,歸一化百分比。
- y:該地區在畫布中對應的 y 座標,歸一化百分比。
- w:該地區的寬度,歸一化百分比。
- h:該地區的高度,歸一化百分比。
- type:該地區視頻流的類型,取值:0:網路攝影機;1:螢幕畫面分享。
- status:該地區視頻流的狀態,取值:0:還未拉取到;1:已拉取到。
- muted:主播被靜音狀態,取值:0:未被靜音;1:被靜音。主播 PK 時,A 主播將 B 主播靜音,B 主播 muted 欄位將顯示被靜音狀態。
- vol:主播的音量(分貝),取值:[0,255]。
- vad :語音檢測,取值:[0,150],150 是有人聲,非 150 就是從有人聲到無聲的拖尾時間。











ts產生該資訊時的作業系統時間戳記,單位為毫秒。
verSEI 格式版本資訊,如目前的版本為 1.0.0.20220915。
udd客戶自訂的情境化事件,通過 PassThrough 參數下發,內容由 PayloadContent 參數指定。
說明

使用者拉取轉推流時,轉推流的流媒體資料會包含 SEI 資訊,使用者可藉助此功能傳遞一些自訂資訊。SEI 資訊在解碼視頻流時可以從視訊框架資料中擷取,具體格式參考參數說明表 PassThrough 參數。

以直播連麥情境為例:

如果只是單主播,觀眾端接收的 SEI 資訊裡 stream 集合只有一個成員資訊;如果是主播正在連麥或者 PK,觀眾端接收的 SEI 資訊裡 stream 集合會有多個成員資訊。 例如,當主播 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} 當主播 111 和觀眾 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} 判斷 stream 數組的個數可以知道當前直播布局是否發生切換,stream 數組的個數為 1 時,則是單主播推流;stream 數組的個數大於 1,則主播在連麥或 PK 中。通過成員的布局資訊,知道每個成員在混流布局中的具體位置。

透傳 SEI

  • 自訂 SEI,通過 StartLiveMPUTask 命令啟動混流轉推任務,在 PassThrough 參數中,指定 PayloadContent 內容;也可以在 UpdateLiveMPUTask 命令更新混流轉推任務時,在 PassThrough 參數中,指定 PayloadContent 內容。

  • 自訂 SEI 可以周期性發送,通過 PassThrough 參數中的 Interval 來設定周期,單位為 ms;

  • 自訂 SEI 也可以跟隨主要畫面格發送,通過 PassThrough 參數中的 FollowIdr 來設定。
    • 既可以按照 Interval 來周期性發送,也可以將 SEI 跟隨主要畫面格來發送,如 Interval:1000,FollowIdr: 1 表示每隔 1000ms 發送一次自訂 SEI,並且在發送主要畫面格時攜帶自訂 SEI。

    • 當不攜帶 Interval 以及不攜帶 FollowIdr 時,表示該自訂 SEI 只在調用時發送一次。

例如,當主播 111 單主播推流時,調用 UpdateLiveMPUTask 命令下發周期性 SEI,PassThrough 參數中的 Interval 設定為 1000,FollowIdr 設定為 0,PayloadContent 設定為"hello world",那麼每隔 1000ms 將發送一次自訂 SEI,觀眾端收到的 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"}

跨頻道多使用者混流

若您需要將跨多個頻道中的多個主播進行混流布局並轉推到直播服務時,您需要將發起跨頻道通話的主播的 UserID、ChannelID,以及對端的 UserID 作為入參建立混流任務。樣本如下: 在直播 PK 情境中,頻道 channelA 的主播 userA,通過用戶端介面發起了和頻道 channelB 主播 userB 的跨頻道 PK,並將兩個主播的混流畫面輸出給頻道 channelA 的麥下觀眾觀看。則,此時建立混流任務時關於頻道和使用者參數的指定示範如下:

  • ChannelID: 指定為 channelA

  • UserInfos->UserId :分別指定 userA 和 userB

說明

建立跨頻道多使用者的混流任務的前提是,已經通過用戶端 SDK 介面發起了跨頻道通話。如果不同頻道的使用者沒有進行通話,則無法建立跨房間混流任務。如何發起跨房間通話,請參見跨房間訂閱功能

返回參數

名稱

類型

描述

樣本值

object

請求 ID。

RequestId

string

請求 ID。

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

樣本

正常返回樣本

JSON格式

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

錯誤碼

HTTP status code

錯誤碼

錯誤資訊

描述

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

訪問錯誤中心查看更多錯誤碼。

變更歷史

更多資訊,參考變更詳情