Remotion LabRemotion Lab
常見問題瀏覽器渲染

瀏覽器渲染

關於在瀏覽器中使用 Remotion 渲染影片的常見問題,包含 WebCodecs API、客戶端渲染與伺服器端渲染的比較。

瀏覽器渲染

Remotion 可以在瀏覽器中渲染影片嗎?

可以,但有一些限制。Remotion 提供 @remotion/renderer 套件用於伺服器端渲染,同時也透過 @remotion/webcodecs 套件支援在瀏覽器中使用 WebCodecs API 進行客戶端渲染。

什麼是 WebCodecs API?

WebCodecs 是現代瀏覽器提供的原生 API,允許直接存取瀏覽器內建的影音編解碼器。Remotion 利用此 API 在瀏覽器中直接編碼影片,無需將資料傳送到伺服器。

主要優點包括:

  • 不需要伺服器基礎設施即可渲染影片
  • 渲染時資料不離開用戶裝置,隱私性更好
  • 適合輕量級或互動式應用場景

WebCodecs 有哪些瀏覽器相容性限制?

WebCodecs API 目前支援的瀏覽器如下:

瀏覽器支援狀況
Chrome 94+完整支援
Edge 94+完整支援
Firefox部分支援(需開啟旗標)
Safari部分支援(macOS 13.4+)

由於支援度不一致,建議在生產環境中部署前進行充分的跨瀏覽器測試。

客戶端渲染和伺服器端渲染有什麼差異?

客戶端渲染(WebCodecs):

  • 直接在用戶瀏覽器中執行
  • 不需要伺服器,適合個人工具或 SaaS 應用
  • 受限於用戶裝置的硬體效能
  • 適合短片或低解析度影片
  • 渲染速度視裝置而定,可能較慢

伺服器端渲染(Node.js / Lambda):

  • 在伺服器或雲端執行
  • 可使用高效能 GPU 或多核心 CPU 加速
  • 適合長片、高解析度或大量批次渲染
  • 需要維護伺服器基礎設施
  • 渲染速度更穩定且可預期

如何在瀏覽器中使用 Remotion 進行渲染?

安裝 @remotion/webcodecs 套件後,可以使用 renderMedia() 函式:

import { renderMedia } from "@remotion/webcodecs";
 
await renderMedia({
  composition: myComposition,
  durationInFrames: 150,
  fps: 30,
  width: 1280,
  height: 720,
  codec: "vp8",
});

請注意,WebCodecs 渲染的可用編解碼器與伺服器端不同,通常支援 VP8、VP9 和 AVC(H.264)。

瀏覽器渲染適合用於生產環境嗎?

視情況而定。如果你的應用需要:

  • 讓用戶在本地渲染個人影片
  • 避免伺服器成本
  • 保護用戶資料隱私

那麼客戶端渲染是合適的選擇。

但如果需要大量渲染、一致的品質保證或複雜的合成效果,建議仍使用伺服器端渲染方案(例如 Remotion Lambda)。

瀏覽器渲染的效能瓶頸在哪裡?

主要瓶頸包括:

  1. CPU / GPU 限制:用戶裝置的硬體直接決定渲染速度
  2. 記憶體限制:瀏覽器的記憶體配額有限,複雜合成可能超出限制
  3. 執行緒限制:JavaScript 單執行緒特性限制並行處理能力
  4. 編解碼器支援:並非所有格式在所有裝置上都有硬體加速

可以在 Web Worker 中進行渲染嗎?

@remotion/webcodecs 設計支援在 Web Worker 中執行,以避免阻塞主執行緒並提升應用響應性。這是建議的使用方式,特別是在需要同時維持 UI 互動的情境下。

相關資源