我應該考慮哪些參數來減少 .MOV 檔案的大小?

我應該考慮哪些參數來減少 .MOV 檔案的大小?

我的 Canon 60D 在錄製影片時會建立 .MOV 文件,我發現 .MOV 容器具有 H264 視訊串流和 PCM 音訊串流。

我使用 ffmpeg 和 GSpot 查看了一些視頻,發現比特率似乎相當高(640x480 為 22,000kbps,1920x1080 為 45,000kbps)。

我想減小文件的大小,但保持較高的品質。我嘗試過我能想到的最簡單的方法,降低比特率,這達到了我的預期:將比特率減半,檔案大小大約減半。但我想知道是否有辦法確定“良好”的目標比特率,或者嘗試使用可變比特率是否有任何意義。

答案1

但我想知道是否有辦法確定“好的”目標比特率...

良好的目標位元率是滿足以下任一條件的位元率:

  • 受到您從中傳輸材料的網路(例如 3G 網路、家庭 WiFi 等)的支持,這很容易計算
  • 看起來不錯,這是一個非常主觀的衡量標準

對於普通用戶來說,22 Mbit/s 或 45 Mbit/s 確實相當高,尤其是像 h.264 這樣已經壓縮的影片。您絕對可以繼續將位元率降低到「合理」值,始終考慮到您可以承受多少儲存容量以及您希望損失多少品質。

如果您確實不需要尺寸或沒有編輯影片的處理能力,也可以將 1080p 影片調整為 720p。

…或嘗試可變比特率是否有任何意義

恆定碼率的目的是為了適應串流媒體場景,串流媒體場景存在限制傳輸視訊最大碼率的瓶頸。在當今的多媒體世界中,這不一定再有意義了。

當您將視訊壓縮為每秒恆定的位數時,您基本上是告訴編碼器始終使用相同數量的位數來對同一時間幀進行編碼。這是最好的方法嗎?正如您現在可能已經猜到的那樣,事實並非如此。引用通用報告格式指南來自 Handbrake(我稍後會再討論這一點):

與運動時相比,眼睛在靜止物體中感知到更多細節。因此,視訊壓縮器可以在物體移動時施加更多壓縮(丟棄更多細節),而在物體靜止時施加更少壓縮(保留更多細節)。主觀上,視訊似乎具有更高的品質。

所以盡可能使用可變位元率是有意義的。即使檔案大小相同的恆定位元率視頻,它也會使視頻看起來更好。

更重要的是,大多數編碼器——最著名的是x264– 經常表演非常當你告訴他們使用恆定的比特率時,情況會很糟糕。最好給他們更多一點“自由”,即他們想在一個幀上花費多少位。畢竟,這是編碼器的工作,而不是您的工作。這就是所謂的「穩定的品質」。


夠了——這在實踐中意味著什麼?如果您使用 FFmpeg 來編碼視頻,那麼您已經使用了一個足夠好的工具。如果您現在也安裝了 x264,並使用兩者的最新版本,那麼您正在使用目前免費提供的最佳編碼器之一。讓 x264 選擇它想要花費的位元率,而不是使用固定位元率進行編碼。透過使用來執行此操作恆定速率因子選項。

在一個非常簡單的情況下,這意味著設定介於 17 和 23 之間的值。更好的工具對於再重複使用可用:

ffmpeg -i input.mov -c:v libx264 -crf 22 output.mp4

數值越低,品質越好,產量越大。反之亦然,越高,品質越低。同時,您當然會降低所需的平均位元率。查看x264 編碼指南有關 的更多資訊ffmpeg

您現在的任務是找到一個 CRF 值:

  • 將整體比特率降低到您可以承受的程度
  • 不會降低太多質量,因此視頻看起來仍然不錯

是的,這涉及大量的編碼和反覆試驗,但這是調整和編碼影片時的日常工作。

哦,如果你不喜歡命令列,手煞車是一個免費的跨平台工具,其功能完全相同。它甚至還有一個 CRF 滑桿:

在此輸入影像描述

答案2

試試 HandBrake CLI

我想縮小一些 MOV 文件,並且不想了解有關視頻選項的所有詳細資訊。手煞車 CLI是我用過的。預設很好:

HandBrake 提供硬編碼的出廠預設,與 MacGui 中的內建預設完全相同。

就我而言,這效果很好:

HandBrakeCLI -i input.MOV -o output.mp4 --preset="Normal"

如果沒有預設,輸出很小,但品質不好。 「正常」預設對我來說看起來不錯,但您可以使用 來查看其他可用的預設HandBrakeCLI --preset-list,或者如果您願意,可以自行調整所有選項。

相關內容