影片怎麼壓縮又看不出畫質變差:H.264、H.265 與 AV1 比較
把影片檔案變小,又看不出畫質變差:在 H.264、H.265 和 AV1 之間做選擇,設好位元率或 CRF,再檢查結果。免費工具和桌面軟體的做法都有。
重點速覽
想壓縮影片又看不出畫質變差,就從原始檔案出發,用現代編碼重新編碼一次,畫質參數要先用眼睛確認過。檔案必須在任何裝置上都能播時,H.264 是穩妥的選擇。只要目標裝置能解碼,H.265 或 AV1 通常能在觀感相近的情況下得到更小的檔案。
先選編碼,再一格一格地降低位元率或提高 CRF,直到看得出差別,然後退回上一格。
- 檔案大小 = 位元率 × 時長。想讓影片變小,就降低位元率、改用效率更高的編碼,或降低解析度或幀率。
- H.264、H.265 和 AV1 都是有損編碼。實際能做到的,是檔案變小,而在實際觀看的尺寸下沒人看得出差別。
- H.264 的播放相容性最廣。H.265 和 AV1 的設計目標是用更低的位元率得到相近的觀感,但需要較新的解碼器,編碼也比較花時間。
- 畫質參數不能在編碼器之間照搬:x264 的 CRF 23 和 x265、SVT-AV1 的 CRF 23 不是同一回事。
- 從原始檔案壓縮,檢查暗場和快速動作的鏡頭,不要把已經壓縮過的檔案再壓一次。
什麼是影片壓縮?
影片壓縮就是拿掉觀眾最不容易察覺的資訊,用更少的資料把影片編碼出來。
檔案最後有多大,取決於三件事:
- 位元率:編碼器每秒用掉多少位元。大小 ≈ 位元率 × 時長。以 8 Mbps 計算,一分鐘影片是 8 × 60 ÷ 8 = 60 MB。
- 編碼:畫面的編碼方式。較新的編碼,設計目標就是用更少的位元得到相近的觀感。
- 解析度和幀率:像素越多、影格越多,同樣的畫質就需要越多位元。
容器(MP4、MKV、MOV、WebM)只是一層外殼。只換容器、不重新編碼,檔案大小幾乎不變。
補充: 照字面理解,「不損失畫質」指的是保留畫面每一個位元的編碼方式,而這樣只會讓檔案變大,不會變小。本文講的,都是小到在正常觀看尺寸下看不出來的損失。
H.264、H.265 與 AV1:該選哪種編碼?
| 編碼 | 別名 | 播放相容性 | 編碼速度 | 適合的情況 |
|---|---|---|---|---|
| H.264 | AVC | 最廣。YouTube 建議上傳 H.264 | 通常比另外兩種快 | 檔案必須到處都能播,或要上傳到反正會重新編碼的平台 |
| H.265 | HEVC | 近幾年的手機、電視和電腦大多支援;不是每個瀏覽器或舊裝置都行 | 通常比 H.264 慢 | 想為確定支援它的裝置做出更小的檔案,或交付 4K、8K |
| AV1 | AOMedia Video 1 | 支援範圍持續擴大;要留意舊裝置和硬體解碼 | 隨預設差異很大;慢速預設花的時間長得多 | 播放端支援它的網頁發布和歸檔 |
| VP9 | WebM 影片 | 網頁瀏覽器和 YouTube | 比 H.264 慢 | 給網頁用的 WebM 檔案 |
沒有哪種編碼能通吃所有情況。依序回答下面兩個問題,就能決定:
- 要在哪裡播放? 如果你沒辦法掌握播放裝置,就選 H.264。
- 編碼能等多久? AV1 和 H.265 是用編碼時間換更小的檔案。
開始之前:從最乾淨的原始檔案壓縮
有兩個習慣比任何參數都重要:
- 從你手上畫質最高的檔案開始。 每做一次有損的重新編碼,都會再丟掉一點資訊。把已經為通訊軟體或社群媒體壓縮過的檔案再壓一次,損失會一層層疊上去。
- 能先降噪就先降噪。 在編碼器眼裡,雜訊和顆粒跟細微的細節沒有兩樣,它會花位元去保留。壓縮前先降噪,編碼器就能把位元用在你真正在意的畫面上。請見怎樣用 AI 為影片降噪。
方法 1:在 KwaFlux 轉換器裡壓縮
KwaFlux 的轉換器可以批次轉換格式、編碼和位元率,和你用來修復、增強畫質的是同一套軟體。
- 打開轉換器。 在側欄的工具群組裡點選 轉換器,會打開 格式轉換 頁面。
- 加入檔案。 點選 新增檔案,或直接把檔案拖進來。點選清單裡的一個檔案,右側的設定就會解鎖。同時選取多個檔案,可以讓它們套用同一組設定。
- 選擇輸出格式。 在 視訊 分頁上,想要相容性最廣就選 MP4,要在瀏覽器播放就選 WEBM。接著選一個檔位,例如 HD 1080P 或 HD 720P。
- 打開視訊設定,選擇編碼。 MP4 的視訊編碼器包括 H.264、H.265 / HEVC 和 AV1;WebM 的則包括 VP8、VP9 和 AV1。
- 設定解析度和位元率。 先選 解析度,再從該解析度對應的清單裡選一個 視訊位元率。MP4 的 HD 1080P 檔位預設是 H.264 加 3 Mbps,屬於小檔案的設定。在 1080p 下,H.264 和 AV1 可選 1 到 30 Mbps,H.265 可選 1 到 20 Mbps。如果切換後的編碼或解析度清單裡沒有目前的位元率,KwaFlux 會改用該清單的預設值:H.264 和 AV1 是 8 Mbps,H.265 是 5 Mbps。這個檔位預設是 30 fps,所以除非你本來就想改幀率,否則請把 幀率 設成和原始檔案一樣。
- 確認預估大小後開始。 頁面會顯示預估的輸出大小。點選 全部開始,完成的檔案會出現在 轉換完成 底下。

技巧: 如果只是容器不對(例如剪輯軟體要 MOV,你手上的是 MP4),就選新格式的 與來源相同 檔位,在 視訊設定 裡把編碼設成原始檔案本來就用的那一種,並讓 高速轉換 裡直接複製的選項保持開啟。這樣 KwaFlux 會直接複製視訊串流,不再重新編碼,檔案上也會出現可以直接複製的標記。FFmpeg 的 -c copy 做的也是同一件事,見方法 3。
關於剪輯時的容器和編碼選擇,請見在本機轉換影片格式。
方法 2:用 HandBrake 壓縮(固定畫質)
HandBrake 是免費的開放原始碼軟體,預設的設定檔都採用固定畫質模式:整段影片的畫質保持一致,檔案大小則隨內容而定。
- 用 Open Source(開啟來源)打開影片,選一個接近目標解析度的設定檔。
- 在 Video(視訊)分頁選擇 Video Encoder(視訊編碼器):H.264 (x264)、H.265 (x265) 或 AV1 (SVT-AV1)。
- Framerate(幀率)保持 Same as source(與來源相同)。
- 設定 Constant Quality(固定畫質)。HandBrake 文件建議從下面這些範圍開始(RF 越低,畫質越高,檔案也越大):
| 解析度 | x264 和 x265 | SVT-AV1 |
|---|---|---|
| 480p / 576p | RF 18 到 22 | RF 22 到 32 |
| 720p | RF 19 到 23 | RF 25 到 35 |
| 1080p | RF 20 到 24 | RF 25 到 35 |
| 2160p(4K) | RF 22 到 28 | RF 25 到 40 |
- 用 HandBrake 的 Preview(預覽)編碼一小段,和原始檔案比較。
- 點選 Start Encode(開始編碼)。
HandBrake 文件也提到,RF 數值在不同編碼器之間沒有可比性:x264 用 RF 25 編出來的效果,和 x265 或 SVT-AV1 用 RF 25 編出來的不會一樣。
方法 3:用 FFmpeg 壓縮(CRF)
FFmpeg 在命令列裡提供同樣的編碼器,很適合批次處理和寫腳本。
H.264(取 HandBrake 1080p 建議範圍內的值):
ffmpeg -i input.mp4 -c:v libx264 -crf 22 -preset slow -c:a aac -b:a 160k output_h264.mp4H.265(x265 的預設 CRF 是 28,範圍 0 到 51):
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset medium -tag:v hvc1 -c:a aac -b:a 160k output_h265.mp4用 SVT-AV1 編碼 AV1(SVT-AV1 本身的預設值是 CRF 35、預設等級 8,數字越大編碼越快):
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 35 -preset 8 -c:a aac -b:a 160k output_av1.mp4怎麼調整:
- 降低 CRF,畫質更高、檔案更大;提高 CRF,檔案更小。每次只調幾格。
- 越慢的預設等級 會花越多時間找出更有效率的編碼方式,同樣的 CRF 下通常能得到更小的檔案。
-tag:v hvc1會用 Apple 播放器預期的方式標記 H.265 串流,有助於 MP4 檔案在 QuickTime 和 iPhone 上打開。
如果只是要換容器,就不必動用編碼器。-c copy 會把串流原封不動搬進新檔案,既不解碼也不編碼:
ffmpeg -i input.mp4 -c copy output.mov因為沒有任何解碼和編碼,畫面不會有變化。FFmpeg 文件提到,串流複製並不是在每種情況下都行得通,例如目標容器需要的資訊原始檔案裡沒有。如果複製失敗,就用上面其中一條指令重新編碼。
怎樣壓到指定的檔案大小
如果平台或電子郵件限制了檔案大小,就從這個上限往回推:
- 把目標大小換算成百萬位元:MB 數 × 8。100 MB 就是 800 Mb。
- 除以時長(秒)。5 分鐘的影片:800 ÷ 300 ≈ 2.67 Mbps(總位元率)。
- 減去音訊位元率。音訊用 128 kbps 時,影片大約剩 2.54 Mbps。
- 為容器和位元率起伏留約 5% 的空間:大約 2.4 Mbps。
在 KwaFlux 轉換器裡,選不高於這個數字、最接近的位元率;如果清單裡沒有這麼低的值,就降一級解析度。在 FFmpeg 裡,用兩階段編碼來準確控制大小:
ffmpeg -y -i input.mp4 -c:v libx264 -b:v 2400k -preset slow -pass 1 -an -f null NUL
ffmpeg -i input.mp4 -c:v libx264 -b:v 2400k -preset slow -pass 2 -c:a aac -b:a 128k output_100mb.mp4在 macOS 或 Linux 上,把 NUL 換成 /dev/null。
怎樣檢查有沒有看得出的畫質損失
別只看壓縮後檔案的前幾秒。要檢查編碼器比較吃力的鏡頭:
- 暗部漸層和天空:看有沒有色帶和階梯狀的色塊。
- 細密紋理:樹葉、水面、頭髮、布料。看有沒有糊成一片。
- 快速動作和底片顆粒:看有沒有忽隱忽現的方塊。
- 文字和邊緣:看字的周圍有沒有振鈴或毛邊。
以 1:1 實際像素比較原始檔案和壓縮後的檔案,再到觀眾實際使用的裝置上看一遍。想要客觀的分數,請見我們怎樣用 VMAF 為影片畫質評分。
上傳到平台時要記得,平台會把你的檔案重新編碼一次。照 YouTube 建議的 H.264 上傳位元率(例如 1080p、24 到 30 fps 用 8 Mbps),平台就有乾淨的素材可以處理。上傳一個又小又壓得很重的檔案,等於讓平台再去壓縮一個已經被壓縮過的畫面。
常見錯誤
| 錯誤 | 結果 | 解決方法 |
|---|---|---|
| 把已經壓縮過的檔案再壓一次 | 損失疊加,方塊和糊化越來越明顯 | 回到原始檔案 |
| 為無法解碼的裝置選了 H.265 或 AV1 | 檔案播不出來,或播放卡頓 | 不確定裝置時用 H.264;先測試播放 |
| 把某個編碼器的 CRF 值照搬到另一個編碼器 | 檔案大小或畫質出乎意料 | 用每個編碼器自己的建議範圍 |
| 匯出解析度高於原始檔案 | 檔案更大,細節卻沒有增加 | 維持原始解析度,或刻意用 AI 放大 |
| 4K 影片的位元率太低 | 動作和暗場出現方塊 | 提高位元率,或改成交付 1080p(見 4K 與 8K 比較) |
| 不小心改了幀率 | 畫面頓挫,或音畫慢慢不同步 | 幀率保持和原始檔案一樣 |
結語
壓縮得好,靠的主要是一連串小決定:從原始檔案開始,選觀眾播得了的編碼,每次只調一個設定,檢查難處理的鏡頭。做過一次,你就有一套可以用在同類檔案上的固定做法。
KwaFlux 的轉換器在你自己的電腦上批次轉換影片和音訊的格式、編碼和位元率,和你用來修復、增強畫質的是同一套軟體。媒體檔案不會為了處理而上傳。可在 Windows 10(64 位元,1809 或更新版本)、Windows 11,以及搭載 Apple Silicon 的 macOS 12 或更新版本上執行。匯入檔案和瀏覽應用程式都不需要帳號。僅在匯出、轉換、檔案修復和從連結下載檔案時需要登入並購買付費方案。
用你自己的真實素材實測效果
下載 KwaFlux,付費前先在自己的素材上免費預覽效果——無需註冊,在你的 GPU 上處理,媒體檔案不上傳。 影片預覽可選 1、3或5 秒;防抖預覽可選 5、15或30 秒。
常見問題
影片要怎麼壓縮才不會損失畫質?
有損編碼每編碼一次都會丟掉一些資料。你能控制的是別人看不看得出來:從原始檔案開始,選一種裝置支援的現代編碼,逐格降低畫質參數,直到出現差別,再退回上一格。
H.265 比 H.264 好嗎?
不是每種情況都好。H.265 的設計目標是用更低的位元率得到相近的觀感,所以檔案比較小,但它編碼比較慢,有些瀏覽器和舊裝置也播不了。不確定檔案會在哪裡播放時,H.264 比較穩妥。
AV1 比 H.265 好嗎?
不一定。AV1 是為了有效率的網頁發布而設計,但用慢速預設時編碼會慢很多,舊裝置也可能沒有硬體解碼。請在觀眾實際使用的播放器上測試。
H.265 或 AV1 的位元率要怎麼選?
從工具預設的畫質參數開始,不要套用某個固定數字:這兩種編碼的設計目標都是用比 H.264 更低的位元率得到相近的觀感。一邊逐格調低,一邊檢查暗場和快速動作的鏡頭;VMAF 分數可以佐證你肉眼看到的結果。
把 MP4 改成 MKV 或 MOV,檔案會變小嗎?
不會。只換容器、不重新編碼,複製的是同一條視訊串流,所以大小幾乎不變;FFmpeg 用 -c copy 就能做到。只有用別的編碼或位元率重新編碼,大小才會改變。
參考資料
- HandBrake Documentation, "Adjusting quality" (2026-10-11 查閱)
- x265 Documentation, "Command Line Options" (`--crf`) (2026-10-11 查閱)
- SVT-AV1, "Parameters" (CRF and preset defaults) (2026-10-11 查閱)
- YouTube Help, "YouTube recommended upload encoding settings" (2026-10-11 查閱)
- FFmpeg Documentation, "ffmpeg" (section 3.1, Streamcopy) (2026-10-11 查閱)

