「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 使用量,判斷是否存在資源瓶頸。可以使用 htop、top 或作業系統內建的監控工具。
原因三:Chrome 執行檔損壞
若 Chrome 執行檔本身已損壞,也可能導致分頁無法正常啟動或意外崩潰。
診斷步驟
-
找到使用的瀏覽器執行檔路徑
在渲染時加入
--log=verbose旗標(Remotion v2.6.7 以上版本支援),即可在日誌中看到使用的瀏覽器路徑:npx remotion render MyComp out.mp4 --log=verbose -
手動測試瀏覽器是否可正常開啟
找到路徑後,嘗試直接執行該瀏覽器,確認是否能正常啟動。
-
重新安裝瀏覽器
如果確認執行檔有問題,重新安裝 Chrome 或 Chromium 通常可以解決問題:
npx remotion browser ensure
仍無法解決?
如果上述所有方法都無法解決您的問題,請在 Remotion GitHub 儲存庫提交 Issue,附上:
- 完整的錯誤日誌(使用
--log=verbose) - 作業系統及版本
- Node.js 版本
- Remotion 版本