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 MB | 2 |
| 3009 - 5307 MB | 3 |
| 5308 - 7076 MB | 4 |
| 7077 - 8845 MB | 5 |
| 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 層。