本文為您介紹如何?雲端錄製能力。
功能介紹
即時音視頻(ARTC)的雲端錄製功能通過錄製任務觸發,支援多種錄製模式。您可以選擇將頻道中每個使用者的音視頻流分別錄製,形成多個獨立檔案(單流錄製),也可以將頻道內所有參與者的音視頻內容合并進行統一錄製(混流錄製)。
使用情境
在AI即時互動、語聊房、1v1陌生人社交、連麥互動等情境下,出於回放、審核、調研、評估與存檔等需求會存在錄製儲存的需要,因此即時音視頻(ARTC)推出了雲端錄製功能用於貼合使用者需求。
注意事項
雲端錄製屬於通用能力,不需要開通即可使用。
雲端錄製屬於收費功能,當前為公測階段,您可以免費使用,公測結束後將正常收費,具體時間另行通知。
錄製任務生命週期
當任務處於正常運行或異常運行狀態中時,若超過最大生命週期(72小時)則任務會自動停止。
任務已停止狀態下會觸發停止回調,以該回調狀態為準,當收到回調資訊時,可查詢全部錄製檔案。
空閑逾時時間,當任務處於空閑狀態的時間長度超過MaxIdleTime時,自動停止任務。單位為秒,範圍須在[10,14400]內,即最大4小時。(預設為300秒)
對於混流錄製模式,當所有訂閱的使用者流都停止推流時算作空閑。
對於單流錄製模式,訂閱的流之間彼此獨立,任意一路流停止推流都算作空閑,達到MaxIdleTime後會停止該路流的錄製,當所有訂閱流都空閑逾時後,會停止整個雲端錄製任務。
功能說明
錄製模式
單流錄製:對即時音視頻頻道內每個UID所對應的音頻流與視頻流逐一錄製並產生與UID對應的音頻和視頻檔案。
錄製檔案的音頻和視頻配置參數預設沿用源流參數。
音頻OPUS編碼格式會自動轉化為AAC格式。
說明若發生斷流,則會補充靜音的音訊框架,視訊框架會根據播放器的不同補充最後一幀或黑幀。
若訂閱的是音視頻,那麼後續只會產生M3U8檔案,不會再產生MP4和MP3檔案。
若訂閱的是純音頻,那麼後續仍然會產生M3U8檔案和MP3檔案,但不會再產生MP4檔案。
混流錄製:將即時音視頻頻道內多個UID所對應的音視頻混合錄製為一個音視頻檔案。
使用者可根據需要設定錄製檔案的音視頻屬性,包括編碼格式、碼率和幀率等。
使用者還可以自訂設定混流布局(
UserPanes),及螢幕(畫布)的背景圖(MixBackground)。
說明當前只支援自訂布局,最多支援17路,支援從訂閱的使用者流中選擇需要的音頻或視頻流參與布局。
混流錄製情境下,若發生斷流,顯示策略如下:
禁用視頻、解除發佈或退出頻道:會直接顯示子畫面背景圖(SubBackground),若未配置子畫面背景圖,則對應視窗顯示黑色背景。
訂閱
即時音視頻(ARTC)通過在使用者列表(SubscribeUserIdList)中訂閱使用者(UserId)觸發錄製任務,需要訂閱使用者的UserId可通過此介面查詢DescribeChannelUsers - 查詢頻道內線上使用者列表。
訂閱輸入
訂閱指定頻道中的使用者。
訂閱視頻流來源類型(
SorceType)(網路攝影機/螢幕畫面分享)。訂閱媒體流類型選擇(
StreamType)。
每個訂閱使用者列表
SubscribeUserIdList中可添加多個相同UserId,即同一個UserId下可配置不同的視頻流來源(螢幕流&網路攝影機流等)。啟動一個錄製任務,系統會作為虛擬使用者加入頻道並訂閱需要錄製的音視頻流,這部分訂閱費用會正常按ARTC通話費用收取。
錄製處理
單檔案限制
按使用者指定時間長度組建檔案。
時間長度:錄製檔案取值範圍須在[180,7200](秒)內,即最大時間長度2小時,若不指定則預設2小時。
斷流拼接
當訂閱不到音頻和視頻資料時,若在指定時間內再次推流,錄製內容自動合并成一個錄製檔案,不產生新切片。
斷流補幀
純音頻情境下斷流,補靜音幀。
音視頻情境下斷流,支援選擇補框架類型包括。
最後一幀,重複顯示視頻流中斷前的最後一幅畫面。
說明混流情境下,若設定子畫面背景圖(
SubBackground),則優先顯示背景圖。
錄製檔案命名
檔案命名規則
自訂檔案名稱,使用者可以基於以下可選變數拼接檔案名稱:
變數名
描述
AppId
應用ID。
ChannelId
頻道ID。
UserId
使用者ID。
RecordMode
錄製模式。
當值為0時,對應單流錄製(Single)。
當值為1時,對應混流錄製(Mix)。
StreamType
流類型:
A表示純音頻,V表示純視頻,AV表示音視頻。SourceType
視頻輸入類型:
C表示網路攝影機,S表示螢幕畫面分享。StartTime
開始錄製的 UTC 時間,單位為毫秒。
Sequence
HLS切片索引,其他格式下無效。
預設檔案名稱規則:
單流錄製:
HLS格式:
{AppId}_{ChannelId}_{UserId}_{StartTime}_{Sequence}其他格式:
{AppId}_{ChannelId}_{UserId}_{StartTime}
混流錄製:
HLS格式:
{AppId}_{ChannelId}_{StartTime}_{Sequence}其他格式:
{AppId}_{ChannelId}_{StartTime}
說明欄位參數含義說明參考自訂檔案名稱變數參考表。
若同時訂閱了同一個
UserId的不同StreamType或不同SourceType則在預設命名規則中的{UserId}後補充{SourceType}。
當檔案命名為***後,檔案最終會儲存為類似TaskId/***.M3U8的形式,其中TaskId是在啟動雲端錄製任務時產生的任務id,會由系統自動添加到儲存路徑中。
錄製檔案儲存體
儲存格式
純音頻:支援 MP3、AAC等格式。
音視頻:支援HLS、MP4等格式。
說明當不設定組建檔案格式時,系統會預設產生HLS格式檔案。
當手動設定檔案格式後,若所設定的格式中未包含HLS格式,則系統會自動產生一份HLS格式檔案。
當產生多個格式檔案時,會根據不同格式檔案的數量進行計費。
儲存到OSS
前置條件
若採用錄製儲存至OSS方式進行直播錄製功能配置,需要完成以下操作:
開通OSS服務並建立Bucket:具體操作請參見建立儲存空間。
重要錄製檔案儲存體在OSS中,會產生儲存費用,在OSS中計費請參見儲存費用。
雲端錄製儲存至OSS所需Bucket的地區與調用介面時使用的存取點地區必須一致。例如,選擇cn-shanghai存取點時,Bucket必須也是cn-shanghai地區的。
配置直播寫入OSS的許可權:正常情況下,開通直播服務時,您已完成自動授權。
重要如果該許可權意外被刪除可點擊同意雲資源訪問授權完成快速授權。
建議您使用阿里雲帳號完成授權,若使用RAM使用者必須擁有以下許可權:
ram:CreateRole、ram:GetRole、ram:ListPoliciesForRole、ram:AttachPolicyToRole,授予RAM使用者以上許可權存在安全風險(不推薦)。
功能使用
錄製結束後,系統會將錄製檔案根據介面參數配置項儲存至OSS儲存平台中所配置的Bucket中,使用者可通過訪問OSS控制台擷取相關錄製檔案。
通過介面開啟錄製,需要在儲存參數中配置對應的Bucket名稱與Endpoint名稱。
目前僅支援儲存到上海地區的OSS,請採用上海地區的Endpoint。
儲存到VOD
前置條件
若採用錄製儲存至VOD方式進行直播錄製功能配置,需要開通ApsaraVideo for VOD服務,並進行配置管理儲存Bucket。
錄製檔案儲存體在ApsaraVideo for VODVOD中,會產生儲存費用,在VOD中計費請參見點播基礎服務計費。
在啟用點播系統Bucket時,需要注意點播系統Bucket需要與調用介面時使用的存取點地區一致。
功能使用
錄製過程中,系統會將錄製檔案根據介面參數配置項上傳至VOD平台,並按照轉碼模板配置進行轉碼,使用者可通過訪問VOD控制台擷取相關錄製檔案。
通過介面開啟錄製,需要在儲存參數中配置對應的StorageLocation。
功能使用
阿里雲即時音視頻(ARTC)雲端錄製功能通過錄製任務(Task)控制,使用者可通過介面控制任務的啟動與停止,以此來實現完整的雲端錄製功能。
當使用者手動觸發錄製任務時,即通過啟動Rtc雲端錄製任務介面建立錄製任務,必須確保頻道存在,錄製任務才能建立成功。
當需要產生錄製檔案時,需要確保頻道中存在直播流。
啟動錄製
使用者可調用啟動Rtc雲端錄製任務介面來啟動雲端錄製功能。
訂閱(SubscribeParams)
維護了一個訂閱的UserId資訊列表,單流錄製模式下,會對其中每個UserId分別進行錄製;混流錄製模式下,將所有UserId的音視頻混合到一組音視頻中。
最多支援17個UserId。
錄製(RecordParams)
錄製詳細參數配置,主要有兩種錄製模式即:
RecordMode取值為0的單流錄製模式,對於訂閱的每個UserId,各自產生錄製檔案。
RecordMode取值為1的混流錄製模式,對於訂閱的UserId,將這些使用者的流進行混合轉碼後,僅產生一組錄製檔案,通過MixLayoutParams參數調整布局。
儲存(StorageParams)
通過StorageType參數指定儲存方式,當前支援OSS和VOD兩種方式。
通過FileInfo參數設定檔儲存資訊,包括錄製檔案的格式、儲存位置和命名等(僅OSS方式下有效)。
轉碼(MixTranscodeParams)
混流模式下,使用者可以通過設定編碼參數來控制所錄製的視頻檔案的品質,單流錄製模式下不填。
可設定包括音訊碼率(AudioBitrate)、聲道數(AudioChannels)、採樣率(AudioSampleRate)等參數。
可設定視頻的編碼格式(VideoCodec)、碼率(VideoBitrate)、幀率(VideoFramerate)、視頻的寬度(VideoHeight)與高度(VideoWidth)等參數。
布局(MixLayoutParams)
混流模式下,使用者可通過此參數配置錄製視頻的背景圖(MixBackground)與布局資訊(UserPanes),混流模式且錄製非純音頻檔案時必填。
雲端錄製目前僅支援自訂布局配置,即通過配置窗格高度(Height)、窗格寬度(Width)、座標X(X)、座標Y(Y)與疊放順序(ZOrder)等參數自訂各個視頻流的布局。
回調(NotifyUrl)
使用者可通過此參數配置接收回調訊息的地址,任務狀態訊息會推送到該地址。此外,可以通過設定NotifyAuthKey參數實現回調鑒權,回調詳細資料請參見雲端錄製回調資訊說明。
停止錄製
使用者可調用停止Rtc雲端錄製任務介面在錄製任務結束後,停止錄製。
當觸發停止錄製操作,系統會等待所有的錄製檔案上傳完成後發送一個停止錄製的回調資訊,只有當接收到該回調資訊後,才能確認錄製過程真正結束。
更新錄製
使用者可調用更新Rtc雲端錄製任務介面修改雲端錄製服務的參數,如背景圖,混流錄製布局。
對於單流模式,只能更新訂閱資訊。
對於混流模式,可以更新訂閱資訊與布局資訊。
更新完成後,更新的內容即可生效,無需重啟。
查詢錄製
使用者可調用查詢Rtc雲端錄製檔案及任務狀態介面來查詢雲端錄製中錄製任務的狀態與錄製檔案資訊等。
僅當錄製任務存在時可以正常查詢到具體資訊,若查詢任務不存在則無法查詢到資訊,介面會返回錯誤碼。
當任務成功進入到運行狀態且距離任務建立時間未達到72小時的情況下,可正常擷取到錄製檔案資訊,超過72小時後會返回錯誤碼。