頁面錄製服務上線:RESTful API 呼叫實現,所見所錄即所得

聲網Agora發表於2021-11-02

我們為很多實時互動場景提供了服務。在一些場景中,使用者不僅需要實時互動,還需要把互動的過程錄下來。那麼一個好的錄製解決方案究竟需要具備哪些特徵呢?

在回答這個問題之前,先聊一下客戶使用錄製的原因。一般來講,使用者使用錄製功能的原因主要有三種:

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 功能的開發者同樣可以使用。

圖片

相關文章