Remotion LabRemotion Lab
LambdaLambda 執行時間

Lambda 執行時間

說明 Remotion Lambda 的逾時設定與執行時間配置,包含函式逾時、delayRender 逾時、長時間渲染策略與分塊(chunking)技術。

概覽

Remotion Lambda 函式內建完整的渲染環境,包含 Chrome、FFmpeg、系統字型等所有必要元件。本文說明各個元件的版本與設定方式。

Node.js 版本

Remotion Lambda 目前使用的 Node.js 版本:

Remotion 版本Node.js 執行環境
v4.0.245 以後Node.js 20.x
v4.0.245 以前Node.js 18.x

目前 Remotion Lambda 繼續使用 20.x 執行環境,因為更高版本曾出現不穩定情況。

若你的使用者政策包含 lambda:PutRuntimeManagementConfig(2023 年 11 月後設定的帳戶預設包含此權限),Lambda 執行環境將被鎖定為對應 Remotion 版本的特定 ARN(建議採用此方式)。若沒有此權限,AWS 未來更新執行環境時可能導致函式損壞,並會在部署時顯示警告。

記憶體大小

預設記憶體為 2048 MB

透過 CLI 設定

npx remotion lambda functions deploy --memory=3008

透過 Node.js API 設定

import { deployFunction } from "@remotion/lambda";
 
const { functionName } = await deployFunction({
  region: "us-east-1",
  timeoutInSeconds: 120,
  memorySizeInMb: 3008, // 設定記憶體大小
  createCloudWatchLogGroup: true,
});

逾時設定

預設逾時為 120 秒

由於影片渲染工作被切分成許多部分並行執行,很少需要超過 120 秒,因此通常不需要增加此值。

透過 CLI 設定

npx remotion lambda functions deploy --timeout=240

透過 Node.js API 設定

const { functionName } = await deployFunction({
  region: "us-east-1",
  timeoutInSeconds: 240, // 設定逾時(秒)
  memorySizeInMb: 2048,
  createCloudWatchLogGroup: true,
});

儲存空間

Lambda 函式根據設定可使用 512 MB 至 10 GB 的儲存空間。

影片渲染時,多個區塊影片需要暫存在函式的臨時磁碟,最後再合併成完整影片,因此磁碟空間必須同時容納所有區塊與最終輸出檔案。

詳細說明請參閱 磁碟大小設定

CPU 核心數 / vCPU

Lambda 函式的 CPU 核心數取決於分配的記憶體大小:

記憶體大小vCPU 數量
128 - 3008 MB2
3009 - 5307 MB3
5308 - 7076 MB4
7077 - 8845 MB5
8846 MB 以上6

你可以使用 concurrencyPerLambda 選項在單一 Lambda 函式內同時渲染多個影格,善用多核心能力。

Chrome 版本

函式內已預先安裝 Chrome 瀏覽器,且編譯時包含專有編解碼器,因此可以在專案中嵌入 MP4 影片。

Remotion 版本Chrome 版本
4.0.415 以後144.0.7559.20
4.0.274 以後133.0.6943.141
4.0.245 以後123.0.6312.86
4.0.0 以後114.0.5731.1
3.2.0 以後104.0.5112.64
3.0.8 以後101.0.4951.68
3.0.0 以後98.0.4758.139

FFmpeg

Lambda 使用 @remotion/renderer 內建的 FFmpeg 版本。為保持精簡,Lambda 執行環境只包含必要的編解碼器,不包含 AV1 編碼器(但支援 AV1 解碼)。

相同的精簡二進制集也用於 Linux ARM64 GNU 環境。AV1 編碼在其他已支援的目標平台上仍可使用。

內建字型

函式預先包含以下字型以支援多語言渲染:

基礎字型

  • Noto Color Emoji
  • Noto Sans Black
  • Noto Sans Bold
  • Noto Sans Regular
  • Noto Sans SemiBold
  • Noto Sans Thin

多語言字型

  • Noto Sans Arabic Regular
  • Noto Sans Devanagari Regular(印地語)
  • Noto Sans Hebrew Regular(希伯來語)
  • Noto Sans Tamil Regular(泰米爾語)
  • Noto Sans Thai Regular(泰語)

ARM64 版本額外字型(2021 年 12 月起)

以下字型僅在 ARM64 版本的 Remotion Lambda 上可用:

  • Noto Sans Simplified Chinese Regular / Bold(簡體中文)
  • Noto Sans Traditional Chinese Regular / Bold(繁體中文)
  • Noto Sans Korean Regular / Bold(韓文)
  • Noto Sans Japanese Regular / Bold(日文)

若需要使用其他字型,建議使用 Web 字型

自訂 Lambda 層

如需自訂 Lambda 執行環境的元件(例如替換字型或二進制檔案),請參閱官方文件:自訂 Lambda 層

相關資源