我們為很多實時互動場景提供了服務。在一些場景中,使用者不僅需要實時互動,還需要把互動的過程錄下來。那麼一個好的錄製解決方案究竟需要具備哪些特徵呢?
在回答這個問題之前,先聊一下客戶使用錄製的原因。一般來講,使用者使用錄製功能的原因主要有三種:
1. 質檢。 比如在教育場景下,需要通過回放錄製來檢查課程質量,在社交直播或金融雙錄場景下,需要保留錄製視訊,做合規性審查。
2. 留證。 如教育、醫療、音視訊客服等場景,需存檔留證以應對可能的糾紛。這種場景下,對錄製方案的核心訴求是內容完整性,不能容忍哪怕是秒級的視訊丟錄。
3. 回放。 比如在教育場景、直播場景下,使用者希望觀看回放。這也是大多數實時互動場景裡使用錄製的主要原因。
那麼在這種場景下,怎樣才算是一個好的錄製解決方案呢?
可以從五個維度來衡量錄製方案:
- 錄製效果:需要還原真實的互動場景,包括音視訊、課件、白板、聊天資訊等所有元素。同時,不能對主播音視訊互動體驗造成任何負面影響。
- 整合難度:越簡單越好,最好是不需要開發。
- 等待時長:等待時長越短越好,最好是錄製結束後可以立即回放。
- 檔案相容性:任何平臺、任意瀏覽器都可以播放。
- 檔案遷移的便利性:檔案下載、上傳等遷移過程要非常簡單,便於錄製檔案管理。
為了解決各種場景的錄製需求,目前有兩種比較主流的方案。
一、音視訊、白板等元素分別錄製,然後拼接回放
主要思路是將音視訊、白板、課件、PPT、聊天內容等分別錄製下來,錄製結束後再分別回放,並通過時間戳對齊播放進度。這種方案的好處是,白板、課件、聊天內容等均以資料形式回放,可以保留原有的真實互動效果,例如 PPT 可以單獨翻頁,靈活性較好。但其缺點也非常明顯:
1. 整合難度大。 需要同時開發音視訊錄製、白板錄製、聊天內容的錄製,特別是各不同元素需要通過時間戳對齊回放,要做到非常好的同步效果需投入較多開發精力。
2. 播放相容性受限。 這種方式只能通過特殊播放器來回放,無法很好地相容主流播放器。
3. 等待時間長。 為了解決播放相容性問題,往往需要在錄製結束後進行離線處理,轉成一個完整的 MP4 檔案,這個過程等待時間較長,還會帶來額外的轉碼成本。
二、本地客戶端錄屏
不管是本地客戶端錄製,還是通過螢幕共享將螢幕流傳送到雲端進行錄製,其本質都是在使用者的本地客戶端上捕獲螢幕內容。這種方案的好處是所見即所得,回放效果跟真實互動場景可以保持一致。但其缺點也是相當明顯:
1. 影響本地使用者的 RTC 互動體驗。 本地捕獲螢幕內容會極大地消耗終端裝置的計算資源,如果要實時上傳,還會佔用主播上行的頻寬資源,這些都會影響本地使用者的音視訊通話體驗甚至會出現卡頓、模糊等嚴重的後果,這對一個實時互動場景來說是難以接受的致命缺陷。
2. 整合難度大。 開發者需要在端上進行開發,需要解決檔案本地儲存、上傳等問題,往往還需要處理複雜的混音問題,整合門檻非常高。
除了以上兩種主流思路,是否還有其他更好的方案呢?
聲網Agora提出了第三種新思路:頁面錄製
頁面錄製是指通過 Web 頁面渲染的方式, 在服務端同步錄製音視訊、白板、課件以及聊天資訊等,還原真實的互動場景。其原理是:開發者通過 RESTful API 發起錄製請求,並將待錄製頁面的 URL 以請求引數的形式發給 Agora 錄製服務,Agora 錄製服務會開啟該Web頁面,並以錄屏的方式實時錄製生成 MP4 檔案,上傳至指定的第三方雲端儲存平臺。具體 頁面錄製 文件,可點選「閱讀原文」瀏覽。
根據此前錄製方案判斷維度,將頁面錄製與此前我們列舉的錄製方案相比:
- 在整合上,通過Restful API發起請求錄製,簡單易用。
- 錄製效果實現所見即所得的,將音視訊、白板、課件以及聊天資訊等內容全部同時錄製下來,且不帶來額外的頻寬、效能開銷,錄製過程不影響任何主播/觀眾的RTC互動體驗。
- 錄製結束後,可以實時生成MP4檔案,相容各主流播放器。
- 檔案下載非常簡單,便於錄製檔案管理。
同時,頁面錄製具備錄製任意網頁頁面的能力,所以用 WebRTC 或其它方案自研 RTC 功能的開發者同樣可以使用。