萬聖節特惠不給糖,就修片!三檔同時降價,永久授權立省 $30截至 11 月 2 日 23:59(美西時間)

查看定價

影片怎麼壓縮又看不出畫質變差: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.264AVC最廣。YouTube 建議上傳 H.264通常比另外兩種快檔案必須到處都能播,或要上傳到反正會重新編碼的平台
H.265HEVC近幾年的手機、電視和電腦大多支援;不是每個瀏覽器或舊裝置都行通常比 H.264 慢想為確定支援它的裝置做出更小的檔案,或交付 4K、8K
AV1AOMedia Video 1支援範圍持續擴大;要留意舊裝置和硬體解碼隨預設差異很大;慢速預設花的時間長得多播放端支援它的網頁發布和歸檔
VP9WebM 影片網頁瀏覽器和 YouTube比 H.264 慢給網頁用的 WebM 檔案

沒有哪種編碼能通吃所有情況。依序回答下面兩個問題,就能決定:

  1. 要在哪裡播放? 如果你沒辦法掌握播放裝置,就選 H.264。
  2. 編碼能等多久? AV1 和 H.265 是用編碼時間換更小的檔案。

開始之前:從最乾淨的原始檔案壓縮

有兩個習慣比任何參數都重要:

  • 從你手上畫質最高的檔案開始。 每做一次有損的重新編碼,都會再丟掉一點資訊。把已經為通訊軟體或社群媒體壓縮過的檔案再壓一次,損失會一層層疊上去。
  • 能先降噪就先降噪。 在編碼器眼裡,雜訊和顆粒跟細微的細節沒有兩樣,它會花位元去保留。壓縮前先降噪,編碼器就能把位元用在你真正在意的畫面上。請見怎樣用 AI 為影片降噪。

方法 1:在 KwaFlux 轉換器裡壓縮

KwaFlux 的轉換器可以批次轉換格式、編碼和位元率,和你用來修復、增強畫質的是同一套軟體。

  1. 打開轉換器。 在側欄的工具群組裡點選 轉換器,會打開 格式轉換 頁面。
  2. 加入檔案。 點選 新增檔案,或直接把檔案拖進來。點選清單裡的一個檔案,右側的設定就會解鎖。同時選取多個檔案,可以讓它們套用同一組設定。
  3. 選擇輸出格式。 在 視訊 分頁上,想要相容性最廣就選 MP4,要在瀏覽器播放就選 WEBM。接著選一個檔位,例如 HD 1080P 或 HD 720P。
  4. 打開視訊設定,選擇編碼。 MP4 的視訊編碼器包括 H.264、H.265 / HEVC 和 AV1;WebM 的則包括 VP8、VP9 和 AV1。
  5. 設定解析度和位元率。 先選 解析度,再從該解析度對應的清單裡選一個 視訊位元率。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,所以除非你本來就想改幀率,否則請把 幀率 設成和原始檔案一樣。
  6. 確認預估大小後開始。 頁面會顯示預估的輸出大小。點選 全部開始,完成的檔案會出現在 轉換完成 底下。
KwaFlux 轉換器打開了視訊設定:H.264,解析度清單裡選中 1920×1080,位元率 3 Mbps,按鈕是全部開始
KwaFlux 1.0.9 截圖。一個 MP4 HD 1080P 檔案的視訊設定:H.264、1920×1080、3 Mbps,解析度清單是打開的。按鈕是全部開始。還沒有開始轉換。

技巧: 如果只是容器不對(例如剪輯軟體要 MOV,你手上的是 MP4),就選新格式的 與來源相同 檔位,在 視訊設定 裡把編碼設成原始檔案本來就用的那一種,並讓 高速轉換 裡直接複製的選項保持開啟。這樣 KwaFlux 會直接複製視訊串流,不再重新編碼,檔案上也會出現可以直接複製的標記。FFmpeg 的 -c copy 做的也是同一件事,見方法 3。

關於剪輯時的容器和編碼選擇,請見在本機轉換影片格式。

方法 2:用 HandBrake 壓縮(固定畫質)

HandBrake 是免費的開放原始碼軟體,預設的設定檔都採用固定畫質模式:整段影片的畫質保持一致,檔案大小則隨內容而定。

  1. 用 Open Source(開啟來源)打開影片,選一個接近目標解析度的設定檔。
  2. 在 Video(視訊)分頁選擇 Video Encoder(視訊編碼器):H.264 (x264)、H.265 (x265) 或 AV1 (SVT-AV1)。
  3. Framerate(幀率)保持 Same as source(與來源相同)。
  4. 設定 Constant Quality(固定畫質)。HandBrake 文件建議從下面這些範圍開始(RF 越低,畫質越高,檔案也越大):
解析度x264 和 x265SVT-AV1
480p / 576pRF 18 到 22RF 22 到 32
720pRF 19 到 23RF 25 到 35
1080pRF 20 到 24RF 25 到 35
2160p(4K)RF 22 到 28RF 25 到 40
  1. 用 HandBrake 的 Preview(預覽)編碼一小段,和原始檔案比較。
  2. 點選 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.mp4

H.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 文件提到,串流複製並不是在每種情況下都行得通,例如目標容器需要的資訊原始檔案裡沒有。如果複製失敗,就用上面其中一條指令重新編碼。

怎樣壓到指定的檔案大小

如果平台或電子郵件限制了檔案大小,就從這個上限往回推:

  1. 把目標大小換算成百萬位元:MB 數 × 8。100 MB 就是 800 Mb。
  2. 除以時長(秒)。5 分鐘的影片:800 ÷ 300 ≈ 2.67 Mbps(總位元率)。
  3. 減去音訊位元率。音訊用 128 kbps 時,影片大約剩 2.54 Mbps。
  4. 為容器和位元率起伏留約 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 就能做到。只有用別的編碼或位元率重新編碼,大小才會改變。

參考資料

  1. HandBrake Documentation, "Adjusting quality" (2026-10-11 查閱)
  2. x265 Documentation, "Command Line Options" (`--crf`) (2026-10-11 查閱)
  3. SVT-AV1, "Parameters" (CRF and preset defaults) (2026-10-11 查閱)
  4. YouTube Help, "YouTube recommended upload encoding settings" (2026-10-11 查閱)
  5. FFmpeg Documentation, "ffmpeg" (section 3.1, Streamcopy) (2026-10-11 查閱)
  • H.265 編碼
  • 影片畫質
  • 教學

KwaFlux 作者兼編輯。文章經 KwaFlux 編輯部審閱,依據產品研究紀錄與公開發布的規格。