Remotion LabRemotion Lab
疑難排解「Target closed」瀏覽器錯誤

「Target closed」瀏覽器錯誤

解釋 Remotion 渲染中出現 'Target closed' 錯誤訊息的原因,以及如何修復 Chromium 分頁崩潰的問題

「Target closed」瀏覽器錯誤

錯誤說明

當您在使用 Remotion 進行渲染時,如果看到以下錯誤訊息:

Error: Target closed

這表示 Chromium 分頁意外崩潰。Remotion 使用無頭瀏覽器(headless Chromium)來渲染每一幀,當瀏覽器分頁崩潰時,渲染便無法繼續並拋出此錯誤。

造成此錯誤的原因通常有以下幾種:

原因一:缺少 Linux 相依套件

如果您在 Linux 環境(包括 CI/CD 伺服器、Docker 容器等)中執行渲染,必須確保已安裝 Chrome 所需的系統相依套件。

在 Ubuntu / Debian 系統上,可執行以下指令安裝:

apt-get install -y \
  libnss3 \
  libatk1.0-0 \
  libatk-bridge2.0-0 \
  libcups2 \
  libdrm2 \
  libxkbcommon0 \
  libxcomposite1 \
  libxdamage1 \
  libxfixes3 \
  libxrandr2 \
  libgbm1 \
  libpango-1.0-0 \
  libcairo2 \
  libasound2

若使用 Remotion Lambda,官方提供的 Lambda 層已預先包含這些相依套件,通常不需要手動安裝。

原因二:記憶體或 CPU 資源不足

Chrome 分頁在以下情況下會崩潰:

  • 記憶體不足:渲染程序消耗的 RAM 超過系統可用量
  • CPU 過載:網頁持續佔用大量 CPU,導致系統無法回應

解決方法

降低並行數(Concurrency):

npx remotion render MyComp out.mp4 --concurrency=2

降低並行數可讓每個分頁獲得更多系統資源,減少崩潰的可能性。

在 Remotion Lambda 中增加記憶體大小:

import { deployFunction } from "@remotion/lambda";
 
await deployFunction({
  memorySizeInMb: 3008, // 提高記憶體上限
  // ...其他設定
});

監控資源使用情況:

在渲染時觀察系統的記憶體與 CPU 使用量,判斷是否存在資源瓶頸。可以使用 htoptop 或作業系統內建的監控工具。

原因三:Chrome 執行檔損壞

若 Chrome 執行檔本身已損壞,也可能導致分頁無法正常啟動或意外崩潰。

診斷步驟

  1. 找到使用的瀏覽器執行檔路徑

    在渲染時加入 --log=verbose 旗標(Remotion v2.6.7 以上版本支援),即可在日誌中看到使用的瀏覽器路徑:

    npx remotion render MyComp out.mp4 --log=verbose
  2. 手動測試瀏覽器是否可正常開啟

    找到路徑後,嘗試直接執行該瀏覽器,確認是否能正常啟動。

  3. 重新安裝瀏覽器

    如果確認執行檔有問題,重新安裝 Chrome 或 Chromium 通常可以解決問題:

    npx remotion browser ensure

仍無法解決?

如果上述所有方法都無法解決您的問題,請在 Remotion GitHub 儲存庫提交 Issue,附上:

  • 完整的錯誤日誌(使用 --log=verbose
  • 作業系統及版本
  • Node.js 版本
  • Remotion 版本

參見