編碼是整條管線裡唯一「資訊被永久丟棄」的環節。傳輸可以重傳、分發可以快取、播放可以緩衝,但編碼器丟掉的細節永遠回不來。因此編碼參數的選擇,決定了後面所有環節的畫質上限——後面再怎麼優化,也只能逼近編碼當下的品質,不可能超過它。


📖 學

一、編碼器選擇:三代 codec 的實際取捨

Codec標準化相對 H.264 的碼率節省授權硬體解碼普及度即時編碼成本
H.264 / AVC2003基準有專利池,實務上已廣泛授權幾乎 100%低
H.265 / HEVC2013約 25–50%(依內容與設定)專利池分裂,授權複雜高(但瀏覽器端受限)中
AV12018相對 H.264 約 30–50%免權利金2026 年已廣泛(新手機/瀏覽器/電視)高

三件實務上比壓縮率更重要的事:

H.265 的問題從來不是技術,是授權與瀏覽器。 它的壓縮效率沒有爭議,但專利池分裂(HEVC Advance、Access Advance、Velos Media 等)讓授權成本難以預估,而瀏覽器端的支援長期落後——這使它在「要能在網頁上播」的場景裡一直不是預設答案,在封閉生態(機上盒、App、廣電)裡則很常見。

AV1 的瓶頸在編碼端不在解碼端。 到 2026 年解碼側已經不是問題(新裝置普遍有硬體解碼),但即時編碼仍然貴。SVT-AV1 在高 preset(速度快、壓縮差)才跑得到即時 1080p,而低 preset 的壓縮優勢需要更多算力並額外增加延遲。這使 AV1 在點播(可以離線慢慢編)的經濟性遠優於直播。把點播的 AV1 節省數字直接套到直播預算上,是一個常見的高估。

對直播而言,H.264 在 2026 年仍然是最安全的預設,理由不是它最好,而是它在「任何裝置都能解、編碼成本最低、延遲最可控」三項上同時及格。升級的正確觸發條件是出流成本已經大到足以攤銷編碼成本——這通常發生在規模化之後,見 成本模型。

二、硬體編碼 vs 軟體編碼

軟體編碼(x264、x265、SVT-AV1,跑在 CPU 上):同碼率下畫質較好,參數可調性極高,但吃 CPU、密度低。

硬體編碼(NVENC、Quick Sync、AMF、Apple VideoToolbox):固定功能電路,速度極快、幾乎不吃 CPU、密度高,但同碼率下畫質通常略遜於軟體編碼的慢速 preset,可調參數少。

判斷方式很直接:

單機推流(個人直播主)→ 用硬體編碼。 你的 CPU 要同時跑遊戲/OBS/瀏覽器,把編碼丟給 GPU 是正確的資源配置。畫質差距在 6 Mbps 這種相對寬裕的碼率下很難察覺。

雲端轉碼(一變多)→ 看密度與成本。 要把一條源流轉成五個碼率再乘以上千路,硬體編碼的密度優勢直接變成錢。但碼率壓得很低時(例如 ABR 階梯的最底階 400 kbps),軟體編碼的品質優勢會變得明顯。

延遲敏感 → 硬體編碼通常更可預測。 固定功能電路的編碼時間變異小,軟體編碼在複雜場景可能突然變慢。

三、CBR vs VBR:直播幾乎一律 CBR

模式行為適用
CBR(固定位元率)不論內容複雜度,碼率維持恆定直播:下游頻寬可預測,不會突發爆量
VBR(可變位元率)複雜段落多給、簡單段落少給點播:同樣檔案大小下畫質更好
CRF/CQ(固定品質)固定品質,碼率完全隨內容浮動封存、編輯母帶

直播用 CBR 的理由不是畫質,是可預測性。 傳輸鏈路、CDN 計費、播放器的 ABR 判斷,全部建立在「這一階大約就是這個碼率」的假設上。如果碼率會突然從 3 Mbps 跳到 12 Mbps,播放器的頻寬估計會失準、觀眾會卡、CDN 帳單會失控。

實務上常用的是 capped VBR(上限受限的 VBR):允許小幅浮動以在簡單畫面省頻寬,但設一個硬上限(例如目標 4 Mbps、上限 5 Mbps)。這是個折衷,但要確認下游每一環都接受這個上限。

VBV/HRD buffer 是 CBR 真正的控制旋鈕。 設定 vbv-maxrate 與 vbv-bufsize 決定編碼器允許多大的瞬時偏離。vbv-bufsize 設成與 maxrate 相同(即 1 秒緩衝)會讓碼率非常平穩但畫質在複雜場景下掉得明顯;設成 2 秒則比較寬鬆。低延遲場景應該用較小的 VBV buffer,因為大 buffer 本身就是延遲。

四、低延遲的編碼設定

把編碼延遲壓到最低的設定組合,每一條都有明確代價:

設定作用代價
bframes=0消除「等未來幀」的延遲碼率效率下降約 10% 量級
lookahead 調小或關閉編碼器不預看後續內容碼率分配變差
preset 調快減少編碼計算時間同碼率畫質下降
tune=zerolatencyx264 的組合開關,一次設好上述同上綜合
GOP 縮短縮短切入延遲I 幀變密,碼率上升
slice-max-size / 分片編碼可以邊編邊送,不必等整幀實作複雜度
VBV buffer 縮小減少編碼器端緩衝複雜場景畫質波動變大

這些設定合計可以把編碼延遲從 300 ms 級壓到 50 ms 級,但如果你的播放器緩衝是 10 秒,這整件事對使用者毫無意義。先量測延遲分配再決定要不要做這些。

五、音訊:被忽略但最容易毀掉體驗的一環

觀眾對音訊問題的容忍度遠低於畫面問題。畫面糊一下可以接受,聲音破一下就會關掉。

實務要點:

編碼器幾乎一律 AAC-LC(相容性最佳),碼率 128 kbps 立體聲對多數內容足夠,語音為主可以降到 64–96 kbps。Opus 在 WebRTC 場景是預設且表現更好,但在 HLS/RTMP 生態相容性較差。

取樣率用 48 kHz。 44.1 kHz 是 CD 遺產,在影音鏈路裡會引入不必要的重取樣。

音訊延遲必須與影像對齊。 音訊處理鏈(壓縮器、等化器、降噪)會引入延遲而影像鏈不會,造成唇音不同步。OBS 有「音訊同步偏移」可以逐軌補償,正確做法是量測而不是憑感覺調。

響度要正規化。 直播平台多半會做響度正規化,推流端做得太大聲只會被壓回去並損失動態。目標落在 −16 到 −14 LUFS 是常見實務。音訊鏈的推理在 Hi-Fi 音響知識 有更完整的展開。

六、OBS 的場景、來源與多軌

OBS 的核心抽象只有三層:來源(source)→ 場景(scene)→ 輸出(output)。

場景切換是直播最基本的製作動作,而它有一個常被忽略的成本:切換場景若涉及解析度或來源變化,編碼器可能被迫產生一個 I 幀,造成瞬間碼率尖峰。密集切換的節目要注意這點。

多音軌(multi-track) 讓你把「給觀眾聽的混音」與「給錄影存檔的分軌」分開——例如軌道 1 是最終混音推流,軌道 2–6 分別是麥克風、遊戲、音樂、來賓,錄影時全部保留,事後可以重新混音。這是直播與錄影需求衝突時的標準解法,值得在一開始就設好。

OBS 支援 SRT 與 RIST 輸出(不只 RTMP),這在跨公網推流時是重要能力,見 傳輸協定。


🧠 記

編碼是唯一不可逆的環節,後面所有優化都只能逼近它的品質上限。

H.264 在 2026 年對直播仍是最安全的預設;AV1 的瓶頸在即時編碼成本,點播的節省數字不能直接套用。

直播用 CBR 是為了可預測性,不是畫質。 VBV buffer 是真正的控制旋鈕。

低延遲編碼設定的第一條永遠是關掉 B 幀;但做之前先確認編碼不是延遲的主要來源。

音訊問題的容忍度遠低於畫面問題,而音訊延遲補償要用量的不要用猜的。


✍️ 實踐

用同一段素材做一次 bpp 對照,30 分鐘:

  1. 錄一段 60 秒、有明顯運動的畫面(走動、手勢、捲動畫面皆可)。
  2. 用同一個編碼器,固定 1080p,分別編出:30fps/4Mbps、60fps/4Mbps、60fps/8Mbps。
  3. 逐段比較,特別看運動最劇烈的那兩秒。
  4. 算出三者的 bpp,確認你看到的差異與 bpp 排序一致。

這個練習的目的是建立「bpp 而非 bitrate」的直覺。做完之後你在面對「要不要開 60fps」這種問題時,會自動先問「預算有沒有跟著加」。


🔗 延伸學習


相關