Remotion LabRemotion Lab
伺服器端渲染在 Linux 上使用多核心渲染

在 Linux 上使用多核心渲染

了解 Linux 系統上 Chromium 多進程模式的設定方法,以充分利用多核心 CPU 提升 Remotion 渲染效能

在 Linux 上使用多核心渲染

文件已更新:自 Remotion 4.0.137 版本起,預設行為已改為使用多進程模式。此設定仍然存在,但預設為 true(啟用多進程)。

背景說明

過去,Remotion 在 Linux 上預設使用 --single-process 旗標啟動 Chromium 瀏覽器,原因如下:

  • Linux 各發行版不一定支援 Chromium 的沙盒功能
  • 舊版 Chromium 在以多進程方式無頭啟動時容易崩潰
  • 某些 Linux 發行版缺少桌面函式庫,可能導致 Chromium 在啟動時崩潰

這種單進程模式會降低渲染效能,尤其是在使用高核心數 CPU 和高 Remotion 並發設定時。

啟用多進程渲染

多進程模式現在預設啟用(自 v4.0.137 起)。

若需要停用多進程模式,可以透過以下方式:

renderMedia() / openBrowser() / renderFrames()

import { renderMedia } from '@remotion/renderer';
 
await renderMedia({
  composition,
  serveUrl: bundleLocation,
  codec: 'h264',
  outputLocation: 'out/video.mp4',
  chromiumOptions: {
    enableMultiProcessOnLinux: false, // 停用多進程模式
  },
});

CLI 旗標

npx remotion render \
  --enable-multi-process-on-linux=false \
  MyComposition \
  out/video.mp4

設定文件

// remotion.config.ts
import { Config } from '@remotion/cli/config';
 
Config.setChromiumMultiProcessOnLinux(false);

Remotion Studio

在 Remotion Studio 的進階設定中,可以找到切換開關來控制此選項。

各平台的支援狀態

平台多進程支援說明
自訂 Linux 伺服器建議啟用需測試是否與您的環境相容
Remotion Docker 映像已確認可用官方 Docker 映像支援多進程模式
Cloud Run自 v4.0.42 自動啟用無需額外設定
AWS Lambda不可用Amazon Linux 上若不使用 --single-process 旗標,Chrome 會崩潰

是否應該啟用多進程模式?

答案取決於您的 Linux 環境。

建議的方式:

  1. 嘗試啟用多進程模式(現在是預設行為)
  2. 觀察渲染是否正常完成
  3. 如果出現崩潰,停用多進程模式

適合啟用的環境:

  • 現代 Ubuntu/Debian 伺服器
  • 已安裝完整桌面環境函式庫的系統
  • 使用 Remotion 官方 Docker 映像

需要停用的環境:

  • AWS Lambda(強制要求)
  • 某些精簡版 Linux 發行版
  • 缺少沙盒支援的環境

效能影響

啟用多進程模式的效能提升與以下因素相關:

  • CPU 核心數:核心越多,多進程優勢越明顯
  • 並發設定:較高的 concurrency 設定更能受益於多進程
  • 內容複雜度:複雜的 WebGL 或計算密集型內容受益更多

範例設定(高核心 CPU)

import { renderMedia } from '@remotion/renderer';
 
await renderMedia({
  composition,
  serveUrl: bundleLocation,
  codec: 'h264',
  outputLocation: 'out/video.mp4',
  concurrency: 8, // 使用 8 個並發渲染進程
  chromiumOptions: {
    enableMultiProcessOnLinux: true, // 預設已啟用
  },
});

Docker 設定範例

使用 Remotion 官方 Docker 映像時,多進程模式可以正常工作:

FROM ghcr.io/remotion-dev/base:4
 
WORKDIR /app
COPY package*.json ./
RUN npm install
 
COPY . .
RUN npm run build
 
CMD ["node", "render.js"]

參見完整的 Docker 設定指南

常見問題

Chrome 崩潰時如何診斷?

檢查渲染日誌中的以下錯誤訊息:

[ERROR] Failed to launch the browser process!
CHROME CRASHED

如果看到此類錯誤,嘗試停用多進程模式:

npx remotion render --enable-multi-process-on-linux=false MyComposition out.mp4

沙盒錯誤

如果看到沙盒相關錯誤,可以在 chromiumOptions 中停用沙盒(僅在信任的環境中使用):

chromiumOptions: {
  disableWebSecurity: false,
  // 注意:僅在了解安全影響的情況下使用以下選項
}

相關資源