H.264 vs H.265 vs AV1:影片編碼器比較與選擇指南
選擇影片編碼器是影片處理的關鍵決策。H.264 是老牌標準,H.265 是效率繼任者,AV1 是開源新挑戰者。三者各有優缺點,選擇取決於使用場景。這篇深入比較三大編碼器。
三大編碼器概覽
| 特性 | H.264 (AVC) | H.265 (HEVC) | AV1 |
|---|---|---|---|
| 發布年 | 2003 | 2013 | 2018 |
| 壓縮效率 | 基準 | 比 H.264 省 30-50% | 比 H.265 省 20-30% |
| 編碼速度 | 快 | 慢 | 非常慢 |
| 瀏覽器支援 | 普及 | 有限 | 現代瀏覽器 |
| 硬體解碼 | 普及 | 大部分新裝置 | 新裝置 |
| 專利授權 | MPEG LA(收費) | 多個專利池(收費) | 免費(AOMedia) |
| 適用場景 | 通用 | 4K、封存 | 下一代串流 |
H.264 (AVC)
概述
H.264(MPEG-4 AVC)是 2003 年標準化的影片編碼器。目前最普及,所有現代瀏覽器、行動裝置、剪輯軟體都支援。
優點
- 最大相容性:所有瀏覽器和裝置都支援
- 編碼速度快:硬體編碼支援普及
- 工具成熟:FFmpeg、x264 等工具完善
- 專利授權明確:MPEG LA 統一授權
缺點
- 壓縮效率低:同畫質下檔案比 H.265 大 30-50%
- 4K 支援有限:高解析度下位元率需求高
FFmpeg 編碼
bash
# 基本 H.264 編碼
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac output.mp4
# 高畫質
ffmpeg -i input.mp4 -c:v libx264 -crf 18 -preset slow -c:a aac output.mp4
# 網頁用(最大相容性)
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset slow -profile:v high -level 4.0 -pix_fmt yuv420p -movflags +faststart -c:a aac -b:a 128k output.mp4
# 硬體編碼(Nvidia NVENC)
ffmpeg -i input.mp4 -c:v h264_nvenc -preset p5 -cq 23 -c:a aac output.mp4使用場景
- 網頁影片
- 行動裝置播放
- 直播串流
- 視訊會議
H.265 (HEVC)
概述
H.265(High Efficiency Video Coding)是 2013 年標準化的 H.264 後繼者。壓縮效率比 H.264 提升 30-50%。
優點
- 高壓縮效率:同畫質下檔案比 H.264 小 30-50%
- 4K 友善:高解析度下優勢明顯
- 硬體支援:新裝置普遍支援硬體解碼
缺點
- 專利授權複雜:多個專利池(MPEG LA、HEVC Advance)
- 瀏覽器支援有限:Safari 外瀏覽器支援不完整
- 編碼慢:比 H.264 慢 2-5 倍
FFmpeg 編碼
bash
# 基本 H.265 編碼
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset medium -c:a aac output.mp4
# 高畫質封存
ffmpeg -i input.mp4 -c:v libx265 -crf 20 -preset slow -c:a aac -b:a 192k output.mp4
# 4K 最佳化
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset medium -x265-params "pool=0:frame-threads=0" -c:a aac output.mp4
# 硬體編碼(Nvidia NVENC)
ffmpeg -i input.mp4 -c:v hevc_nvenc -preset p5 -cq 28 -c:a aac output.mp4使用場景
- 4K 影片封存
- 高畫質串流(Netflix、Amazon)
- 藍光 4K
- 監控錄影
AV1
概述
AV1 是 AOMedia(Alliance for Open Media)2018 年發布的開源編碼器。Google、Mozilla、Cisco、Amazon、Netflix 等共同開發。目標是取代 H.265,免專利授權費。
優點
- 最高壓縮效率:比 H.265 再省 20-30%
- 免專利授權:開源免費
- 現代瀏覽器支援:Chrome、Firefox、Edge 支援
- 未來趨勢:YouTube、Netflix 逐步採用
缺點
- 編碼非常慢:比 H.264 慢 10-100 倍
- 硬體解碼有限:只有新 GPU 支援
- 工具不成熟:編碼器仍在最佳化
FFmpeg 編碼
bash
# AV1 編碼(libaom,慢但品質最好)
ffmpeg -i input.mp4 -c:v libaom-av1 -crf 30 -b:v 0 -cpu-used 4 -c:a libopus output.mkv
# AV1 編碼(SVT-AV1,較快)
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 30 -preset 4 -c:a libopus output.mkv
# AV1 硬體編碼(Nvidia NVENC,需要 RTX 30 系列以上)
ffmpeg -i input.mp4 -c:v av1_nvenc -preset p5 -cq 30 -c:a libopus output.mkv使用場景
- VOD 串流(編碼一次、播放多次)
- 高畫質網頁影片
- 未來導向的封存
- 開源專案
壓縮效率比較
同畫質位元率比較
H.264 (100%) > H.265 (50-70%) > AV1 (40-60%)例:1080p 30fps 影片,視覺無損畫質:
- H.264:5-8 Mbps
- H.265:3-5 Mbps
- AV1:2-4 Mbps
同位元率畫質比較
AV1 > H.265 > H.264低位元率(1 Mbps 以下)時,AV1 優勢最大。
瀏覽器支援
| 瀏覽器 | H.264 | H.265 | AV1 |
|---|---|---|---|
| Chrome | ✓ | 部分(硬體依賴) | ✓ |
| Firefox | ✓ | 部分(硬體依賴) | ✓ |
| Safari | ✓ | ✓ | 部分(macOS 12+) |
| Edge | ✓ | 部分(硬體依賴) | ✓ |
| iOS Safari | ✓ | ✓ | 部分(iOS 14+) |
| Android Chrome | ✓ | 部分 | ✓ |
硬體解碼支援
| 編碼器 | 桌面 GPU | 行動 GPU |
|---|---|---|
| H.264 | 所有(2004 年後) | 所有(2008 年後) |
| H.265 | 大部分(2013 年後) | 大部分(2015 年後) |
| AV1 | 新 GPU(2020 年後) | 新 SoC(2021 年後) |
專利授權
H.264
- 授權方:MPEG LA
- 費用:年產量 10 萬單位以下免費,之上每單位 0.10-0.20 美元
- 上限:每年 975 萬美元
H.265
- 授權方:多個專利池(MPEG LA、HEVC Advance、Technicolor、Velos Media)
- 費用:複雜,每單位 0.20-0.40 美元
- 問題:授權不確定性,廠商卻步
AV1
- 授權方:AOMedia
- 費用:免費
- 條款:開源 BSD 授權
選擇指南
1. 網頁影片
推薦:H.264
最大相容性,所有瀏覽器都支援。如果檔案大小是問題,可以用 H.265 加 fallback:
bash
# 生成 H.264 和 AV1 兩個版本
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac output_h264.mp4
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 30 -c:a libopus output_av1.webmHTML:
html
<video controls>
<source src="output_av1.webm" type="video/webm; codecs=av1">
<source src="output_h264.mp4" type="video/mp4">
</video>2. 封存
推薦:H.265
高壓縮效率,省儲存空間。如果未來導向,用 AV1。
3. 直播
推薦:H.264
編碼速度快,硬體編碼支援普及。低延遲場景用 H.264。詳見 直播推流完整指南。
4. 4K 串流
推薦:H.265
H.264 在 4K 下位元率需求太高。H.265 是目前 4K 串流主流。未來 AV1 會普及。
5. 行動裝置
推薦:H.264
最大相容性,舊裝置也支援。H.265 在新裝置支援,但耗電量可能較高。
進階比較
編碼時間比較
同影片、同畫質(視覺無損):
| 編碼器 | 時間(相對) |
|---|---|
| H.264 (x264 medium) | 1x |
| H.264 (x264 slow) | 2-3x |
| H.265 (x265 medium) | 5-10x |
| H.265 (x265 slow) | 10-20x |
| AV1 (libaom) | 50-100x |
| AV1 (SVT-AV1) | 10-30x |
畫質比較
同位元率下主觀畫質(越高越好):
AV1 > H.265 > H.264低位元率時差異最明顯。
FFmpeg 編碼參數
H.264 推薦設定
bash
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset slow -profile:v high -level 4.0 -pix_fmt yuv420p -c:a aac -b:a 128k output.mp4H.265 推薦設定
bash
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset medium -x265-params "pool=0" -c:a aac -b:a 128k output.mp4AV1 推薦設定
bash
# SVT-AV1(推薦)
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 30 -preset 5 -c:a libopus -b:a 128k output.mkv詳見 影片壓縮完整指南。
總結
三大編碼器選擇:
- H.264:最大相容性、編碼快、適合網頁和行動
- H.265:高壓縮效率、適合封存和 4K
- AV1:最高效率、免授權、未來趨勢
快速選擇:
- 網頁影片: H.264(最大相容性)
- 封存: H.265(省空間)
- 4K 串流: H.265
- 未來導向: AV1
- 直播: H.264(編碼快)
快速參考:
- H.264:
-c:v libx264 -crf 23 -preset slow - H.265:
-c:v libx265 -crf 28 -preset medium - AV1:
-c:v libsvtav1 -crf 30 -preset 5