在 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 環境。
建議的方式:
- 嘗試啟用多進程模式(現在是預設行為)
- 觀察渲染是否正常完成
- 如果出現崩潰,停用多進程模式
適合啟用的環境:
- 現代 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"]常見問題
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,
// 注意:僅在了解安全影響的情況下使用以下選項
}