1. 程式人生 > 實用技巧 >阿里雲視訊直播錄製--自動錄製

阿里雲視訊直播錄製--自動錄製

  一旦推流就啟動錄製,一旦斷流就停止錄製。您可以對某個域名下,所有流、某個appname下所有流、或者單獨某條流開啟自動錄製。

  適用場景:

    1. 只要有推流就錄製。同一條直播推流上來後,要麼錄製,要麼不錄製。

    2. 事先指定錄製的時間段,如果該時間段內有推流,就啟動錄製。

  限制:

    如果不指定錄製週期,錄製檔案會在每6個小時自動生成一個錄製檔案。

  使用流程:

    1. 配置自動錄製規則

    2. 推流

  API:

    1. 配置錄製規則,呼叫AddLiveAppRecordConfig配置APP錄製,輸出內容儲存到OSS中。

    前提要求:允許直播服務寫入使用者OSS

    說明

  • 修改配置後,新配置對修改之前的直播流不生效,必須重新推流才能生效!
  • 如果指定了時間段,在該時間段內如果沒有推流,自然不會錄製。限定時間段的配置規則是一次性的,即當指定的時間段過去之後,該規則不會再觸發。需要注意的是,StartTime和EndTime欄位填的是UTC時間,請注意和本地時區的對應。
  • AddLiveAppRecordConfig介面中的AppName和StreamName可以填為*,表示所有AppName和所有StreamName(即不限制AppName或StreamName)。
  • 可以通過AddLiveAppRecordConfig配置多條規則,規則匹配時存在優先順序:如果想知道自動錄製是否生效,或者希望針對每個錄製檔案做實時處理,可以設定錄製回撥,詳見:
    錄製內容檢索與管理
    • 同時指定DomainName、AppName(不為*)、StreamName(不為*)的優先順序最高。
    • 同時指定DomainName、AppName(不為*)的優先順序次之。
    • 單獨指定DomainName,AppName為*(即只限定域名)的優先順序最低。
  • 自動錄製每隔一定週期(週期時間通過RecordFormat.N.CycleDuration欄位配置)會產生一個錄製檔案。如果在一個錄製週期內,直播流發生了斷流,但是在3分鐘內,該直播流又推上來了,那麼仍會在同一個錄製檔案中繼續錄製。這就意味著,一條直播流必須斷流超過3分鐘,才會生成最後一個錄製檔案。如果您希望修改這個預設的3分鐘斷流時間,可以提交工單在後臺修改。

   

請求引數

名稱型別是否必選示例值描述
Action String AddLiveAppRecordConfig

系統規定引數,取值:AddLiveAppRecordConfig。

AppName String testApp

直播流所屬應用名稱。

支援萬用字元(*),代表該域名下所有的AppName。

DomainName String test.com

加速域名,指播放域名。

OssBucket String testBucket

OssBucket名稱。

OssEndpoint String oss-cn-shanghai.aliyuncs.com

OssEndpoint域名。

RecordFormat.N.Format String m3u8

格式。目前支援m3u8、flv或mp4。

RecordFormat.N.OssObjectPrefix String record/{AppName}/{StreamName}/{Sequence}{EscapedStartTime}{EscapedEndTime}

OSS儲存的錄製檔名,小於256 byte,支援變數匹配,包含 {AppName}、{StreamName}、{Sequence}、{StartTime}、{EndTime}、{EscapedStartTime}、{EscapedEndTime}。引數值必須要有{StartTime}或{EscapedStartTime}和{EndTime}或{EscapedEndTime}變數。預設支援1小時週期錄製,最小週期時間15分鐘,最多6小時。

例如:record/{AppName}/{StreamName}/{Sequence}_{EscapedStartTime}_{EscapedEndTime}。

<note>{StartTime}/{EndTime}格式為:2006-01-02-15:04:05,{EscapedStartTime}/{EscapedEndTime}格式為:2006-01-02-15-04-05,推薦使用 Escaped 格式,避免特殊字元在URL中帶來的一些問題。</note>

RecordFormat.N.SliceOssObjectPrefix String record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}

當format格式是m3u8錄製,則需要配置,表示ts切片名稱。預設30秒一片,小於256byte,支援變數匹配,包含{AppName}、{StreamName}、{UnixTimestamp}、{Sequence}。

例如:record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence},引數值必須包含{UnixTimestamp}和{Sequence}變數。

RecordFormat.N.CycleDuration Integer 1

週期錄製時長。單位:秒。不填則預設為6小時。

StreamName String teststream

流名稱。

StartTime String 2018-04-10T09:57:21Z

錄製開始時間。格式:UTC時間。

設定的時間必須是實際推流時間(這條流計劃推流錄製的時間)開始7天之內的時間,只在流級別錄製(StreamName不為空)有效。

EndTime String 2018-04-16T09:57:21Z

錄製結束時間。格式:UTC時間。

設定的時間必須大於StartTime,且與StartTime相差不應超過7天,超過7天將按照7天計算,只在流級別錄製(StreamName不為空)有效。

OnDemand Integer 1

按需錄製。

  • 0表示關閉。
  • 1表示通過HTTP回撥方式。
  • 2表示解析推流引數按需錄製
  • 7表示預設不錄製,通過RealTimeRecordCommand介面手動控制錄製啟停。
說明使用1方式時候需要先通過AddLiveRecordNotifyConfig介面設定OnDemandUrl,否則預設不錄製。

返回資料

名稱型別示例值描述
RequestId String 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8

請求ID

    2. 刪除自動錄製配置,呼叫DeleteLiveAppRecordConfig解除錄製配置。

    通過AddLiveAppRecordConfig新增的配置,可以使用該介面刪除。會刪除DomainName、AppName、StreamName對應的配置。

    

請求引數

名稱型別是否必選示例值描述
Action String DeleteLiveAppRecordConfig

系統規定引數。取值:DeleteLiveAppRecordConfig。

AppName String testApp

直播流所屬應用名稱。

DomainName String www.yourdomain.com

您的加速域名。

StreamName String teststream

流名稱。

返回資料

名稱型別示例值描述
RequestId String 6EBD1AC4-C34D-4AE1-963E-B688A228BE31

請求ID

    3. 查詢所有配置,呼叫DescribeLiveRecordConfig查詢域名下所有App錄製配置。

    根據DomainName、AppName、StreamName匹配查詢,以列表形式返回(可能有多條配置)。支援分頁和排序。

    

請求引數

名稱型別是否必選示例值描述
Action String DescribeLiveRecordConfig

系統規定引數。取值:DescribeLiveRecordConfig。

DomainName String www.yourdomain.com

您的加速域名。

AppName String testApp

直播流所屬應用名稱。

Order String asc

排序。取值:

  • asc(預設值):升序
  • desc:降序
PageNum Integer 1

當前頁碼。預設值:1。

PageSize Integer 5

每頁大小。預設值:10,取值範圍:5~30。

StreamName String myStreamName

直播流名稱。

返回資料

名稱型別示例值描述
RequestId String 5056369B-D337-499E-B8B7-B761BD37B08A

請求ID。

LiveAppRecordList

錄製配置。

DomainName String test.com

流所屬加速域名。

AppName String testApp

流所屬應用名稱。

OssEndpoint String oss-cn-shanghai.aliyuncs.com

OSS endpoint。

OssBucket String test123

OSS儲存bucket名稱。

CreateTime String 2016-05-20T09:33:38Z

建立時間。

RecordFormatList

格式列表。

Format String xxx

格式名稱。

OssObjectPrefix String xxx

OSS儲存檔名。

SliceOssObjectPrefix String xxx

儲存分片的OSS檔名。

CycleDuration Integer 3600

週期錄製時間,單位:秒。

EndTime String 2018-11-08T03:49:18Z

計劃錄製結束時間,UTC時間。

OnDemond Integer 0

按需錄製。可取值:0 | 1 | 2。0表示關閉,1表示通過HTTP回撥方式,2表示通過推流引數方式。

使用1方式時候需要設定OnDemandCallback, 否則預設不錄製。

StartTime String 2018-11-08T02:49:18Z

計劃錄製開始時間,UTC時間。

StreamName String myStreamName

流名稱。

PageNum Integer 5

分頁的頁碼。

PageSize Integer 10

每頁大小。

Order String desc

排序。

TotalPage Integer 20

總頁數。

TotalNum Integer 12

符合條件的總個數。