全部產品
Search
文件中心

ApsaraVideo Live:雲端錄製回調資訊說明

更新時間:Dec 06, 2025

本文介紹雲端錄製回調的訊息格式及相關參數說明。

雲端錄製回調重試機制

若接收到的響應錯誤碼大於等於 500 或發生請求逾時,系統會向使用者重新發送一次回調訊息。

雲端錄製回調訊息格式

  • 本回調通過HTTP/HTTPS協議,以POST請求方式發送回調訊息到使用者配置的URL中。

  • 其中請求訊息的Body為JSON格式。

  • 收到回調訊息後,期望接收方返回以下內容:

    Header

    HttpStatus

    Body

    Content-Type: application/json

    200

    {

    "Code": 0,

    "Msg": "Success"

    }

雲端錄製回調參數說明

說明

當前雲端錄製回調僅支援發送任務狀態變化事件。

回調訊息頭(header)

參數名

Content-Type

application/json

ALI-LIVE-TIMESTAMP

僅當NotifyAuthKey有效時傳遞,樣本值:1748417138

ALI-LIVE-SIGNATURE

僅當NotifyAuthKey有效時傳遞,樣本值:abcdefgxxx

鑒權使用說明:當建立雲端錄製任務時,若傳入的 NotifyAuthKey 為有效值,系統在發送回調通知至使用者服務端時,HTTP 要求頭中將包含 ALI-LIVE-TIMESTAMPALI-LIVE-SIGNATURE 欄位,用於接收方進行簽名驗證,確保回調訊息的合法性與安全性。

其中,ALI-LIVE-SIGNATURE 的建置規則如下:

ALI-LIVE-SIGNATURE = MD5(MD5CONTENT)
MD5CONTENT = ALI-LIVE-TIMESTAMP + "|" + NotifyAuthKey
  1. 接收回調請求後,從要求標頭中提取 ALI-LIVE-TIMESTAMP 和 ALI-LIVE-SIGNATURE

  2. 使用本地儲存的 NotifyAuthKey 與提取出的 ALI-LIVE-TIMESTAMP,按相同規則拼接(中間用 | 串連),產生 MD5CONTENT

  3. 對 MD5CONTENT 執行 MD5 計算,得到簽名結果。

  4. 將計算出的簽名值與要求標頭中的 ALI-LIVE-SIGNATURE 進行比對。

若兩者不一致,則說明回調請求來源不可信,建議拒絕處理,以保障系統安全。

回調訊息體(body)

參數名

類型

描述

appId

string

應用Id。

channelId

string

頻道Id。

taskId

string

錄製任務Id。

eventType

string

事件類型,取值請參考事件類型說明表

callbackTs

integer

發送回調的時間,為毫秒級時間戳記。

例如:1744774345595。

payload

json string

其他資訊。詳細參數說明請參考其他資訊說明表

事件類型(eventType)說明

取值

含義

TaskCreated

任務已建立。

TaskStarting

任務啟動中。

TaskRunning

任務運行中。

TaskRecovering

異常恢複中。

TaskStopping

任務停止中。

TaskStopped

任務已停止。

TaskStartFailed

啟動失敗。

TaskUpdated

更新成功。

TaskUpdateFailed

更新失敗。

RecordStart

錄製正式開始。

RecordFailed

錄製異常恢複逾時。

RecordFileUploaded

錄製檔案成功上傳。

其他資訊(payload)說明

參數名

類型

描述

eventTs

integer

事件發生的時間,為毫秒級時間戳記。

例如:1744774345595。

taskStatus

string

任務狀態。取值請參見任務狀態說明表

說明

當事件類型(eventType)為錄製檔案成功上傳(RecordFileUploaded)時不會返回。

errorCode

string

錯誤碼。取值請參見錯誤說明表

errorMessage

string

錯誤資訊。取值請參見錯誤說明表

recordFileList

FileList

錄製檔案清單。詳細參數說明請參考錄製檔案清單說明表

說明

僅當事件類型(eventType)為任務運行中(TaskRunning)、任務停止中(TaskStopping)、任務已停止(TaskStopped)時會返回。

recordFile

RecordFile

錄製檔案資訊。僅當事件類型為錄製檔案成功上傳(RecordFileUploaded)時返回。詳細參數說明請參考錄製檔案資訊說明表

format

string

錄製檔案格式。僅當事件類型為錄製檔案成功上傳(RecordFileUploaded)時返回,表示本次回調對應的檔案格式。取值:

  • SLICE(暫不支援)

  • HLS

  • MP4

  • MP3

streamInfo

string

僅當事件類型為錄製正式開始(RecordStart)時返回。用於表示訂閱的哪一條流開始錄製。

  • 對於混流錄製,值統一為Mix;

  • 對於單流錄製,值為Single::{UserId}::{Suffix},其中:UserId為這條流對應的UserId;Suffix與訂閱時填寫的StreamType和SourceType有關:

    • 當StreamType為0時:如果SourceType為0,那麼Suffix為AV::C;如果SourceType為1,那麼Suffix為AV::S;

    • 當StreamType為1時:Suffix只能為A;

    • 當StreamType為2時(單流錄製暫不支援):如果SourceType為0,那麼Suffix為V::C;如果SourceType為1,那麼Suffix為V::S;

錄製檔案清單FileList)說明

參數名

類型

描述

mp3FileList

array<string>

mp3格式錄製檔案名稱數組。

mp4FileList

array<string>

mp4格式錄製檔案名稱數組。

hlsFileList

array<string>

HLS格式錄製檔案名稱數組。

vodMediaList

array<VodFileInfo>

VOD 媒體資源數組,僅當錄製到VOD時非空。錄製到 VOD 時,訂閱的各個流的錄製檔案集合,其中每一項對應著一個訂閱流。VodFileInfo類型的詳細參數說明請參考VOD檔案資訊說明表

VOD檔案資訊VodFileInfo)說明

參數名

類型

描述

stream

string

表示訂閱的流

  • 對於混流錄製,值統一為Mix

  • 對於單流錄製,值為Single::{UserId}::{Suffix}

    • UserId為這條流對應的UserId

    • Suffix與訂閱時填寫的StreamType和SourceType有關

      • 當StreamType為0時:如果SourceType為0,那麼Suffix為AV::C;如果SourceType為1,那麼Suffix為AV::S

      • 當StreamType為1時:Suffix只能為A

      • 當StreamType為2時(單流錄製暫不支援):如果SourceType為0,那麼Suffix為V::C;如果SourceType為1,那麼Suffix為V::S

mediaIds

array<string>

錄製過程中產生的媒體資源ID數組。

mergedIds

array<string>

錄製結束後產生的自動合并的媒體資源ID數組。僅當儲存到VOD時,指定了自動合并,並且錄製了1個以上的媒體資源時非空。

錄製檔案資訊RecordFile)說明

參數名

類型

描述

sliceFile

string

僅NotifyFileUploadedFormat參數指定時返回。

hlsFile

string

僅NotifyFileUploadedFormat參數指定時返回。

mp4File

string

僅NotifyFileUploadedFormat參數指定時返回。

mp3File

string

僅NotifyFileUploadedFormat參數指定時返回。

任務狀態(taskStatus)說明

說明

更新成功和更新失敗並不影響任務狀態,所以taskStatus欄位中不包含這兩種狀態。

狀態

含義

CREATED

任務建立完成返回。

STARTING

任務啟動中返回。

RUNNING

任務運行中返回。

RECOVERING

任務異常恢複中返回。

STOPPING

任務停止中返回。

STOPPED

任務已停止後返回。

FAILED

在任務啟動失敗後返回。

錯誤說明

說明

僅當事件類型(eventType)取值為異常恢複中(TaskRecovering)、啟動失敗(TaskStartFailed)以及更新失敗(TaskUpdateFailed)這三種類型時不為空白,其他類型為空白。

事件類型(eventType)

錯誤碼(errorCode)

錯誤資訊(errorMessage)

含義

啟動失敗(TaskStartFailed)

StartTaskError

Channel already closed

頻道已關閉。

Start task error

其他原因。

異常恢複中(TaskRecovering)

RunTaskError

The rms task failed

混流模組運行異常。

The record task failed

錄製模組運行異常。

更新失敗(TaskUpdateFailed)

UpdateTaskError

Update task error

任務更新失敗。

錄製異常恢複逾時(RecordFailed)

RunTaskError

Recovering status timeout

異常恢複逾時。

回調樣本

TaskStopped事件:

{
    "appId": "mytestappid",
    "callbackTs": 1755504873034,
    "channelId": "room1047",
    "eventType": "TaskStopped",
    "payload": "{\"eventTs\":1755504873014,\"taskStatus\":\"STOPPED\",\"errorCode\":\"\",\"errorMessage\":\"\",\"streamInfo\":\"\",\"recordFileList\":{\"mp3FileList\":[],\"mp4FileList\":[\"mp4/fe60a6e3-cecb-3fae-a8cf-3d2391f507a5/mytestappid_room1047_2025-08-18-15:59:16.mp4\",\"mp4/fe60a6e3-cecb-3fae-a8cf-3d2391f507a5/mytestappid_room1047_2025-08-18-16:02:16.mp4\"],\"hlsFileList\":[\"hls/fe60a6e3-cecb-3fae-a8cf-3d2391f507a5/mytestappid_room1047_2025-08-18-15:59:16.m3u8\",\"hls/fe60a6e3-cecb-3fae-a8cf-3d2391f507a5/mytestappid_room1047_2025-08-18-16:02:16.m3u8\"],\"vodMediaList\":[]}}",
    "taskId": "fe60a6e3-cecb-3fae-a8cf-3d2391f507a5"
}

RecordFileUploaded事件:

{
    "appId":"mytestappid",
    "callbackTs":1764301584289,
    "channelId":"room1406",
    "eventType":"RecordFileUploaded",
    "payload":"{\"eventTs\":1764301584265,\"errorCode\":\"\",\"errorMessage\":\"\",\"streamInfo\":\"Single::userA::AV::C\",\"format\":\"MP4\",\"recordFile\":{\"sliceFile\":\"\",\"hlsFile\":\"\",\"mp3File\":\"\",\"mp4File\":\"mp4/07c2e845-630d-36a1-b2d1-3b546efdea90/mytestappid_room1406_userA_2025-11-28-11:46:03.mp4\"}}",
    "taskId":"07c2e845-630d-36a1-b2d1-3b546efdea90"}