Remotion LabRemotion Lab
LambdaLambda 速度優化

Lambda 速度優化

介紹幾種讓 Remotion Lambda 渲染盡可能快速完成的策略,包括提高並發、增加記憶體及使用更快的音訊編解碼器。

Lambda 速度優化

本頁介紹幾種讓 Lambda 渲染盡可能快速完成的策略。

提高並發數

一般來說,較低的 framesPerLambda 值將帶來更高的並發度,從而有機會在更短的絕對時間內完成渲染。但同時,這也會產生更多的額外開銷,使渲染成本更高。並發過高時,收益會遞減,甚至可能因協調大量 Lambda 函數的開銷超過收益而使速度變慢。詳見 Lambda 並發 頁面。

增加記憶體

在 Lambda 上增加記憶體,也會按比例提升 CPU 效能,從而加快渲染速度。但成本也會隨著記憶體增加而線性增加。在測試時可以逐步增加記憶體,觀察渲染時間的改善程度。

concurrencyPerLambda 屬性

renderMediaOnLambda() 中的 concurrencyPerLambda 屬性,允許您在單個 Lambda 函數中開啟多個瀏覽器分頁,從而有機會同時處理更多工作。但若 Lambda 函數負載過高,增加並發數反而可能適得其反。

使用 speculateFunctionName()

與其呼叫 getFunctions(),不如呼叫 speculateFunctionName() 來計算即將呼叫的函數名稱,從而省去一次 API 呼叫,並節省最多 1 秒的時間。

Bucket 命名

如果您的 Remotion 版本是 2022 年 12 月之前的,您的 bucket 名稱可能不包含區域名稱。這會導致 Remotion 在啟動渲染之前,需要列出所有 bucket 名稱並查詢其所在區域,消耗額外時間。

詳見此文章。考慮重新命名您的 bucket 或重新設定 Remotion Lambda 以提升速度。若您在多個區域有許多 Remotion bucket,這項優化尤為重要。

使用 MP3 作為音訊編解碼器

預設情況下,影片使用 h264 視訊編解碼器和 aac 音訊編解碼器進行渲染。將 audioCodec 設定為 mp3 將使「合併影片」階段快很多,因為 MP3 編解碼器的編碼速度遠快於 AAC。

注意:音訊在 QuickTime Player 中將無法播放,且檔案大小略微增加。

優化渲染效能

請參閱通用效能提示,這些建議同樣適用於 Lambda。

速度與成本的平衡

策略速度影響成本影響
提高並發 (framesPerLambda 較低)速度較快成本提高
增加記憶體速度較快成本提高
concurrencyPerLambda有條件地提速視情況而定
使用 speculateFunctionName()節省約 1 秒無影響
使用 MP3 編解碼器合併階段更快略增檔案大小

另請參閱