影片壓縮完全指南:把 1GB 影片壓到 100MB,畫質幾乎無損

前端工程

錄了一段影片,卻發不出去

手機裡一段產品演示、孩子一場演出、會上一個發言,錄完一看:2GB。微信傳輸助手提示「文件過大」,郵件附件被拒,網盤上傳進度條像睡著了。

影片就是這麼吃空間。一張照片幾 MB,一段 30 秒影片輕鬆上百 MB,根源在於它本質是「幾十萬張圖連著聲音」。我們在做工具庫的影片工具這幾年,最常聽到的訴求就是「幫我弄小點,但別糊」。這篇文章把影片體積的來源和壓小的方法一次講透——讀完你不只能壓,還能明白「為什麼這麼壓」。


先分清:容器和編碼不是一回事

新手最容易混淆 .mp4.mov.mkv 和 H.264、H.265。記住:

  • 容器(Container).mp4 / .mov / .mkv 是「盒子」,決定文件怎麼打包影片、音訊、字幕。
  • 編碼(Codec):盒子裡那團資料用啥演算法壓的,比如 H.264、H.265/HEVC、VP9、AV1。

同一個 .mp4 盒子,裡面可以是 H.264 也可以是 H.265。體積主要看編碼,不看容器。iPhone 錄的 .mov 常常用的是 H.265,所以同樣時長比安卓 .mp4(H.264) 小很多——這就是很多人覺得「蘋果影片佔空間小」的原因。


影片體積到底從哪來

四個因素疊加:

  • 解析度:4K(3840×2160)的像素量是 1080p 的 4 倍、720p 的近 9 倍。像素越多,資料越肥。
  • 位元率(Bitrate):每秒鐘包含的資料量,這是影響體積最大的旋鈕。
  • 編碼格式(Codec):H.264 是相容之王;H.265/HEVC 體積能小約一半,但部分舊裝置不認;AV1 更省,但編碼慢。
  • 幀率與音訊位元率:60fps 比 30fps 資料多一倍;音訊 320kbps 比 128kbps 佔得多。

同一段內容,參數不同體積能差出十倍:

配置 大約體積(60 秒片段)
4K + H.264 + 高位元率 ~380 MB
1080p + H.264 + 中位元率 ~90 MB
720p + H.265 + 中位元率 ~35 MB
720p + H.264 + 低位元率 ~22 MB

上面是典型場景的估算,實際取決於畫面複雜度——靜態畫面(開會PPT)壓得狠,高速運動畫面(球賽)壓不動多少。


真正能壓小的四個槓桿

1. 降解析度:見效最快

1080p 降到 720p,像素量砍掉一半多,體積往往跟著降一半以上。在手機小螢幕上看,幾乎看不出差別。除非你要投到大電視或做後期剪輯,否則 720p 足夠發朋友圈、發群組。

2. 調位元率 / CRF:最精細的旋鈕

轉碼工具裡常出現 CRF(恆定速率因子,Constant Rate Factor)。簡單記:CRF 越大,壓得越小,畫質略降。常用區間是 18–28:

  • 18–20:幾乎無差,體積偏大(適合存檔母帶)
  • 23–24:預設甜點區(壓完肉眼基本無差)
  • 26–28:明顯小,畫質輕微下降,手機看沒問題

CRF 是「按畫質定位元率」,屬於 VBR(可變位元率)的一種:複雜畫面多給點位元率,簡單畫面少給點,同樣畫質下最省體積。相對的 CBR(恆定位元率)則是「固定每秒多少資料」,簡單畫面也浪費,不推薦用於壓縮。

3. 換編碼:H.265 比 H.264 小約 40%–50%

同樣畫質,H.265 文件更小。代價是相容——舊電視、部分車機、某些剪輯軟體打不開。通用分享優先 H.264;只在自己生態內傳,可以上 H.265 省空間。

編碼還有「Profile/檔位」概念,以 H.264 為例:

Profile 能力 適用
Baseline 最簡,相容性最高 極舊裝置、即時通訊
Main 中等 標清串流
High 最強壓縮 高清、藍光(首選

4. 剪掉廢片 + 降音訊位元率

片頭 10 秒黑屏、片尾 20 秒閒聊,剪掉就是實打實的體積。音訊降到 128kbps 對人聲完全夠用,別用 320kbps 撐著——影片裡音訊佔比小,但聊勝於無。


目標體積參考

原始情況 建議操作 大致結果
1080p 1GB 演示影片 降到 720p + CRF 24 ~350 MB
4K 手機錄屏 2GB 降到 1080p + H.265 ~400 MB
微信要發的 500MB 片段 降到 720p + CRF 26 ~120 MB
郵件附件限制 25MB 降到 480p + 剪多餘 ~20 MB

各平台實際上傳限制(常變,作參考):微信單文件約 1GB(聊天)、200MB(朋友圈);郵件附件普遍 20–25MB;多數網盤單文件 4GB 上限。先想清楚「發去哪」再定參數。


用工具庫在瀏覽器本地壓

影片壓縮讓你拖動滑桿調解析度和 CRF,瀏覽器用 ffmpeg.wasm 在本地轉碼——文件不上傳,關掉頁面資料就沒了。

順手的配套:

一個真實工作流:微信發產品演示

iPhone 錄的 MOV(H.265,1.2GB)
  → /video/to-mp4 轉成 H.264 的 MP4(相容安卓/Win)
  → /video/trim 剪掉開頭 8 秒黑屏和結尾閒聊
  → /video/compress 降到 720p + CRF 26
  → 輸出 ~110MB,微信秒發

什麼時候本地壓不夠用

瀏覽器受記憶體和效能限制,遇到這些情況建議上桌面 ffmpeg:

  • 單個文件幾 GB 以上
  • 要批次處理幾十個
  • 對速度要求極高(WASM 比原生慢不少)

本地裝好 ffmpeg 後,下面這些指令覆蓋絕大多數場景。

基礎:降解析度 + H.265 + 調音訊

# 降到 720p,用 H.265,CRF 28,音訊 128kbps
ffmpeg -i input.mp4 \
  -vf scale=1280:-2 \
  -c:v libx265 -crf 28 \
  -c:a aac -b:a 128k \
  output.mp4

參數拆解:

  • scale=1280:-2:寬設為 1280,高按比例自動(-2 保證偶數,編碼器要求)
  • libx265 -crf 28:H.265 編碼,CRF 28
  • -c:a aac -b:a 128k:音訊 AAC,128kbps

要最大相容就換 -c:v libx264;要更狠的壓縮把 CRF 調到 30 左右(畫質會更明顯地降)。

兩遍編碼(追求最小體積)

# 第一遍:分析,不輸出畫面
ffmpeg -i input.mp4 -c:v libx265 -b:v 800k -pass 1 -f mp4 /dev/null
# 第二遍:按分析結果精壓
ffmpeg -i input.mp4 -c:v libx265 -b:v 800k -pass 2 -c:a aac -b:a 128k output.mp4

兩遍適合「我有明確目標體積」的場景,比單遍 CRF 更可控,但慢一倍。

只裁一段(不重新編碼,超快)

# 截取 00:00:10 開始、時長 30 秒,不重編碼(-c copy)
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:30 -c copy clip.mp4

-c copy 幾乎瞬間完成,但切點不精準(會落在關鍵幀)。要精準就去掉 -c copy(會重編碼,稍慢)。

硬體加速(NVIDIA / Intel)

# NVIDIA 顯卡:NVENC 硬編,快很多
ffmpeg -i input.mp4 -c:v hevc_nvenc -rc vbr -cq 28 -c:a aac -b:a 128k output.mp4

硬體編碼快但壓縮效率略低於軟體(CPU)編碼,日常分享完全夠。


關於「畫質」:怎麼判斷壓得值不值

別只信文件大小。一個簡單自檢法:

  1. 壓完在全螢幕/大螢幕上看一遍關鍵片段(運動、文字、人臉)。
  2. 放大看邊緣有沒有「區塊效應」(馬賽克塊)、文字有沒有毛刺。
  3. 對比原片,找出畫質明顯下降的時間點。

如果肉眼看不出差別,就說明壓得值。一旦 CRF 超過 30 或解析度降太多,文字和高速畫面就會露餡。


常見錯誤

錯誤 後果 正確做法
反覆壓同一個文件 品質一層層掉 從原片壓一次到位
CRF 拉到 35+ 大片馬賽克、色塊 控制在 18–28
用 H.265 發給舊裝置 對方打不開 通用分享用 H.264
只壓不剪 片頭廢片照樣佔空間 先剪 /zh-TW/video/trim
音訊位元率不動 體積省不下來 降到 128kbps
拿 MOV 直接發安卓/Win 對方可能打不開 先轉 MP4 /zh-TW/video/to-mp4

常見問題

H.264 和 H.265 怎麼選? 給別人、跨裝置、怕打不開 → H.264。只在自己蘊果/現代裝置間傳、想省空間 → H.265。

壓完能還原成原畫質嗎? 不能。壓縮是有損的,壓完的資訊回不來。所以永遠留一份原片,別把原片刪了。

手機瀏覽器能壓嗎? 能。工具庫的影片工具是網頁,手機打開同樣能用本地轉碼,只是大文件會比電腦慢。

為什麼我壓完體積沒小多少? 多半是解析度沒降、或 CRF 調太低。先動解析度這把最大的旋鈕——它比位元率影響更直觀。

GIF 和影片該用哪個? 短動畫發群組,GIF 方便但巨大;短影片(MP4/H.265)體積小十倍還清晰。能發影片就別發 GIF。


一句話決策

影片太大傳不出去?
├── 要快速壓小、保畫質 → /video/compress(調解析度 + CRF)
├── iPhone 錄的 MOV → /video/to-mp4
├── 只要其中一段 → /video/trim 先裁再壓
├── 要換編碼 H.265 → /video/convert
└── 單個幾 GB / 批次幾十個 → 桌面 ffmpeg(見上文指令)

下次再錄出個「傳不動」的大影片,照著上面的分支來,幾分鐘就能收到一個又小又清晰的版本。要把壓出來的 MP4 再截一幀當封面,可以用影片轉圖片按需取幀。

本站提供瀏覽器本地工具,免註冊即可試用 →

#视频压缩#视频格式转换#H.264#H.265#CRF#本地处理