Remotion LabRemotion Lab
渲染影片格式與編碼指南

影片格式與編碼指南

全面了解 Remotion 支援的影片格式與編解碼器,包括 H.264、H.265、VP8、VP9、AV1、ProRes 的比較,以及 CRF 品質設定、音訊編解碼器和檔案副檔名的對應關係。

編碼指南

由 FFmpeg 支援,Remotion 允許你設定各種編碼設定。本頁目的是幫助你了解這些設定,並幫助你選擇合適的設定。

選擇編解碼器

Remotion 支援 6 種影片編解碼器:h264(預設)、h265vp8vp9av1prores。雖然 H264 在大多數情況下都能很好地工作,但有時值得選擇不同的編解碼器。請參閱下表了解每種編解碼器的優缺點。

編解碼器檔案副檔名檔案大小編碼時間瀏覽器相容性支援硬體加速
H.264(又稱 MPEG-4).mp4.mov.mkv中等非常快非常好
H.265(又稱 HEVC).mp4.hevc中等非常差
VP8.webm還可以
VP9.webm非常小非常慢還可以
AV1*.mp4.webm.mkv非常小非常慢還可以
ProRes.mov在 macOS 上支援

AV1 在 Remotion Lambda 或 Linux ARM64 GNU 上不可用。AV1 可以實現非常小的檔案大小,但編碼速度明顯慢於 H.264 和 H.265。某些執行環境只附帶基本編解碼器以保持精簡,因此 Remotion Lambda 或 Linux ARM64 GNU 不提供 AV1 輸出。

你可以在設定檔中使用 Config.setCodec() 或使用 --codec CLI 標誌來設定編解碼器。硬體加速自 Remotion 4.0.228 起可用。

使用 CRF 設定控制品質

僅適用於 h264h265vp8vp9av1

無論你最終使用哪種編解碼器,在檔案大小和影片品質之間始終存在取捨。你可以透過設定所謂的 CRF(恆定速率因子)來控制它。數字越低,品質越好;數字越高,檔案越小——當然品質會相應降低。

請注意:每種編解碼器都有自己可接受值的範圍和不同的預設值。因此,雖然 23 在 H264 影片上看起來非常好,但在 WebM 影片上看起來會很糟糕。使用此表格來確定使用哪個 CRF 值:

編解碼器最低(最佳品質)最高(最佳壓縮)預設
H26415118
H26505123
VP84639
VP906328
AV106330

你可以在設定檔中使用 Config.setCrf() 函數或使用 --crf 命令列標誌來設定 CRF。

注意:如果你啟用硬體加速,則無法設定 CRF。

使用 --video-bitrate--audio-bitrate 控制品質

使用以下選項來設定影片和音訊位元率:

  • 在 Studio 中:在渲染對話方塊中設定影片和音訊位元率
  • 在 CLI 中:使用 --video-bitrate--audio-bitrate 標誌
  • 在 SSR、Lambda 和 Cloud Run API 中:使用 videoBitrateaudioBitrate 選項

此選項與其他品質選項不相容。

使用 ProRes Profile 控制品質

僅適用於 prores 編解碼器。

對於 ProRes,沒有 CRF 選項,但有可以使用 --prores-profile 標誌或 setProResProfile 設定檔選項設定的 profile。

FFmpeg 設定位元率支援 Alpha 通道
"proxy"0~45Mbps
"light"1~102Mbps
"standard"(預設)2~147Mbps
"hq"3~220Mbps
"4444"4~330Mbps
"4444-xq"4~500Mbps

位元率越高,品質越高,檔案越大。

純音訊輸出

你可以將 mp3wavaac 作為編解碼器傳入。如果這樣做,將以相應格式輸出音訊檔案。品質設定將被忽略。

GIF

你也可以將影片渲染為 GIF

音訊編解碼器

自 v3.3.42 起可用

使用 --audio-codec 標誌,你可以設定嵌入影片中的音訊格式。並非所有編解碼器和音訊編解碼器的組合都受支援,某些組合需要特定的檔案副檔名和容器格式。容器格式將根據檔案副檔名自動推導。

影片編解碼器預設支援的音訊編解碼器可能的檔案副檔名
h264✅ aacaac.mp4(預設)、.mkv.mov
pcm-16.mkv(預設)、.mov
mp3.mp4(預設)、.mkv.mov
h264-tspcm-16.ts(預設)
aac.ts(預設)
aac✅ aacaac.aac(預設)、.3gp.m4a.m4b.mpg.mpeg
pcm-16.wav(預設)
h265✅ aacaac.mp4(預設)、.mkv.hevc
pcm-16.mkv(預設)
av1✅ aacaac.mp4(預設)、.mkv
opus.webm(預設)、.mkv
pcm-16.mkv(預設)
mp3✅ mp3mp3.mp3(預設)
pcm-16.wav(預設)
prores*aac.mov(預設)、.mkv.mxf
✅ pcm-16pcm-16.mov(預設)、.mkv.mxf
vp8✅ opusopus.webm(預設)
pcm-16.mkv(預設)
vp9✅ opusopus.webm(預設)
pcm-16.mkv(預設)
wav✅ pcm-16pcm-16.wav(預設)

GIF 不支援音訊。

* 注意:在 v4.0.0 之前,ProRes 的預設音訊編解碼器是 aac。現在是 pcm-16

檔案副檔名

渲染媒體時指定檔案副檔名將決定預設編解碼器。只要組合在上表中受支援,你可以使用 --codec 覆寫編解碼器。

檔案副檔名預設編解碼器
.3gpaac
.aacaac
.gifgif
.hevch265
.m4aaac
.m4baac
.mkvh264-mkv
.movprores
.mp3mp3
.mp4h264
.mpegaac
.mpgaac
.mxfprores
.wavwav
.webmvp8
.tsh264-ts

在設定檔中使用

// remotion.config.ts
import { Config } from '@remotion/cli/config';
 
// 設定編解碼器
Config.setCodec('h264');
 
// 設定 CRF 品質
Config.setCrf(18);
 
// 設定 ProRes profile
Config.setProResProfile('hq');
 
// 設定音訊編解碼器
Config.setAudioCodec('aac');

在 CLI 中使用

# 使用 VP9 編解碼器渲染
npx remotion render src/index.ts MyComp out/video.webm --codec=vp9
 
# 設定 CRF 為 25
npx remotion render src/index.ts MyComp out/video.mp4 --crf=25
 
# 使用 H265 並設定高品質
npx remotion render src/index.ts MyComp out/video.mp4 --codec=h265 --crf=18
 
# 純音訊輸出
npx remotion render src/index.ts MyComp out/audio.mp3 --codec=mp3
 
# 設定影片和音訊位元率
npx remotion render src/index.ts MyComp out/video.mp4 --video-bitrate=5000k --audio-bitrate=128k

另請參閱