全部產品
Search
文件中心

ApsaraVideo Live:按需錄製

更新時間:Jul 15, 2026

ApsaraVideo for Live以錄製模板的形式管理錄製配置。系統根據您推流地址中的 DomainName、AppName 和 StreamName 來匹配相應的錄製模板。錄製模板支援配置兩種按需錄製方式:通過推流參數控制通過 HTTP 回調控制,協助您基於商務規則來動態決定是否對某一次直播內容進行錄製。

通過推流參數控制

當錄製模板的觸發方式設定為”推流參數設定”時,您可以直接在推流URL中通過 record_config 參數,控制當前流是否開啟錄製。

  • 參數格式:record_config={"NeedRecord": <true/false>}

  • 參數說明:true:開啟錄製,false:關閉錄製

  • 注意事項:構造推流URL時,必須通過 URL Encode 對參數進行編碼

假設推流地址為:rtmp://push.example.com/live/stream1

若需要通過參數開啟錄製,URL 可構造為:rtmp://push.example.com/live/stream1?record_config=%7B%22NeedRecord%22%3Atrue%7D&auth_key=xxx

使用限制:

該觸發方式僅支援控制是否錄製源流不支援轉碼流錄製。錄製內容包括轉碼流時,請選擇其他觸發方式。

通過 HTTP 回調控制

工作原理

  1. 直播流推流時,如果這條流匹配的錄製模板設定的觸發方式為“回調確認”,直播服務會向您預設的按需回調地址發送一條 HTTP 要求,詢問是否對當前直播流進行錄製。

  2. 您的業務系統收到請求後,根據當前業務狀態返回錄製指令(允許或拒絕)。

  3. 直播服務根據您的返回結果,決定是否開啟錄製任務。

您需要先在事件回調配置中指定該網域名稱直播錄製的“按需回調地址”。詳細配置方式請參見直播錄製回調按需錄製回調

請求參數

參數

類型

描述

domain

String

主播流網域名稱。

app

String

播流所屬應用程式名稱。

stream

String

播流名稱。

codec

String

編碼方式。取值:

  • h264

  • h265

vbitrate

String

視頻碼率。單位:kbps。

請求樣本

GET /?app=seq_all&domain=demo.aliyundoc.com&stream=ondemand8&vbitrate=2000&codec=h264 HTTP/1.1
Host: pull.aliyundoc.com
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip

返回參數

使用者服務器收到回調請求後,需返回 HTTP 200 狀態代碼,並在 Body 中返回 JSON 格式的資料:

參數

類型

是否必選

描述

ApiVersion

String

API版本。預設為1.0版本。

NeedRecord

Bool

是否需要錄製。

Interval

JSONObject

具體格式的錄製周期。取值範圍:5-21600。單位:秒。

Format

JSONArray

錄製格式。支援MP4、FLV、M3U8。

返回樣本

{
  "ApiVersion": "1.0",
  "NeedRecord": true,
  "Interval": {
    "Mp4": 300,
    "Flv": 120,
    "M3U8": 180
  },
  "Format": ["mp4","flv"]
}

返回參數處理

錄製服務收到使用者服務器的返回參數後,會與原有的錄製配置進行比對和覆蓋:

  • 周期覆蓋:若返回參數中指定了 Interval,則該值會覆蓋原有的錄製配置中的錄製周期。

  • 格式交集:返回參數中的 Format 會與之前配置的錄製格式取交集。比如,原錄製模板配置了 MP4 和 FLV 格式,而回調返回 ["mp4", "m3u8"],則最終只會錄製 MP4 格式。若交集為空白,則該路流不會執行任何錄製。

使用者介面必須返回 HTTP 200 狀態代碼,返回其他任何狀態代碼均被視作回調失敗,預設不進行錄製。

回調介面返回的 Body 長度上限為 2048 位元組。超過該長度的響應會被截斷,以防惡意攻擊。

注意事項

若您的業務使用了觸發拉流功能,即有使用者通過播放地址拉取時,ApsaraVideo for Live才進行拉流直播;無人播放時不會回來源站點進行拉流:

  • 錄製觸發前提:無論是自動錄製、按需錄製還是手動錄製,在觸發拉流情境下,必須有使用者發起播放才會啟動錄製。

  • 無人播放不錄製:若該流無任何用戶端播放,直播服務不會向來源站點拉流,因此不會產生任何錄製檔案。