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 編解碼器 | 合併階段更快 | 略增檔案大小 |