阿里雲視訊直播錄製--自動錄製
一旦推流就啟動錄製,一旦斷流就停止錄製。您可以對某個域名下,所有流、某個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為
*
(即只限定域名)的優先順序最低。
- 同時指定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 |
按需錄製。
|
返回資料
名稱 | 型別 | 示例值 | 描述 |
---|---|---|---|
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 |
排序。取值:
|
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 |
符合條件的總個數。 |