某天同事問說 iMovie 怎麼輸出
我說: 除了設解析度,還有 Bitrate
同事問 Bitrate 是什麼?
我說: 就是資料流,每秒的資料量
通常越大,畫質越好,但檔案越大

後來回到自己的位置上
突然覺得很好奇
我知道 Bitrate 越大,畫質越好
但是解析度越大,就代表畫質越好嗎?

解析度、Bitrate、畫質它們三者的關係是什麼呢?
誰是影響畫質的最大因素呢?

於是決定做個實驗
看看同樣 Bitrate,不同解析度的畫質誰比較好

測試方法

  • 使用 Mixkit 的影片素材
  • 使用 FFmpeg 轉出四個檔案
    • 1080p 4 Mbps
      1
      ffmpeg -i input.mp4 -s 1920x1080 -c:v libx264 -x264-params "nal-hrd=cbr:force-cfr=1" -b:v 4M -minrate 4M -maxrate 4M -bufsize 8M 1080p4M.mp4
    • 1080p 1 Mbps
      1
      ffmpeg -i input.mp4 -s 1920x1080 -c:v libx264 -x264-params "nal-hrd=cbr:force-cfr=1" -b:v 1M -minrate 1M -maxrate 1M -bufsize 2M 1080p1M.mp4
    • 480p 4 Mbps
      1
      ffmpeg -i input.mp4 -s 854x480 -c:v libx264 -x264-params "nal-hrd=cbr:force-cfr=1" -b:v 4M -minrate 4M -maxrate 4M -bufsize 8M 480p4M.mp4
    • 480p 1 Mbps
      1
      ffmpeg -i input.mp4 -s 854x480 -c:v libx264 -x264-params "nal-hrd=cbr:force-cfr=1" -b:v 1M -minrate 1M -maxrate 1M -bufsize 2M 480p1M.mp4

測試結果

畫質比較

  • 1080p4M > 480p4M > 480p1M > 1080p1M

大小比較

  • 1080p4M = 480p4M > 1080p1M = 480p1M

截圖比較

完整截圖 (依畫質排序)

因為 1080p 要記錄的像素比 480p 還要多,所以需要更多 Bitrate
雖然兩者檔案大小一樣,但 480p 畫質比較好

這讓我想起「一碗麵的故事」
一個人吃一碗麵剛剛好
三個人吃一碗麵會餓
雖然有很多人 (像素),但只吃一碗麵 (Bitrate)
結果每個人都營養不良 (畫質不良)

所以或許反過來想
你應該依照可以提供的 Bitrate 來決定解析度
要是你只能提供 5 Mbps
解析度卻給到 4K
那也觀賞馬賽克了 QQ

結論

  1. 同 Bitrate,解析度越大 -> 畫質越差
  2. 同解析度,Bitrate 越大 -> 畫質越好
    (但 Bitrate 大到一定的階段,畫質也不會一直無限好上去)
  3. 一樣的 Bitrate,不論解析度多大,檔案大小都一樣

參考資料