我有一些幾年前的視頻,有各種格式,如avi、mpg、wmv、rm、rmvb,...它們的大小很大(超過500 MB,有時> 1GB)。
- 鑑於資料壓縮可能會取得一些進步,我想知道現在推薦哪些檔案格式和壓縮方法,按照不遺失明顯資料的標準,同時實現大幅減小尺寸。
- 如何在Ubuntu 12.04中進行檔案格式轉換和資料壓縮?命令列和批次方式將是最方便的,儘管 GUI 方式也很受歡迎。
感謝致敬!
答案1
Ubuntu 及其捆綁的 FFmpeg
好吧,您遇到了 FFmpeg 不再隨 Ubuntu 一起提供的問題,但您嘗試通過apt-get
.
該程式已不再開發,僅為相容性提供
這根本就是一個謊言。 FFmpeg 正在積極開發,但 Ubuntu 軟體包已過時,他們轉而使用 利巴夫。請參閱此處討論措辭的錯誤報告的消息。
從來源安裝或使用靜態構建
如果您不喜歡自己編譯,您可以簡單地從以下位置獲取靜態構建下載頁面。
如果您想保持最新狀態並自行配置該工具,您需要從原始碼編譯它。查看Ubuntu 編譯指南有關安裝的詳細說明。按照這些步驟,您最終將獲得最新版本的 FFmpeg(編碼工具)和 x264(某種視訊編碼器)。
我需要什麼來縮小尺寸?
你問 …
目前推薦哪些檔案格式和壓縮方法
事實上,每個人都會推薦一種壓縮方法(「編解碼器」)。它是 H.264 或 MPEG-4 Part 10 / AVC 標準,指定了低頻寬視訊的壓縮方法。 H.264 在更高頻寬方面也取得了很好的效果。一種非常常見的編碼器稱為“x264”,我們在上面安裝的編碼器。
它取代了 MPEG-4 Part 2,該視頻編解碼器標準使“DivX”和“XviD”編碼器聞名。這些也很好,但它們需要更多頻寬才能保持相同的品質。
實際的文件格式並不重要。 H.264 視訊可以駐留在幾乎任何容器中,從 AVI 到 MP4、MOV 和 MKV。了解視訊編解碼器之間的差異很重要本身,以及簡單封裝它的容器。請參閱此處以了解更多資訊:什麼是編解碼器(例如 DivX?),它與檔案格式(例如 MPG)有何不同? 現在我會選擇 MP4 或 MKV 作為輸出容器。 AVI 太舊了,不允許您對影片做太多事情,對於上述容器,有更好的工具可以用於重新重複使用。
當您想要縮小尺寸時,您需要降低影片的平均位元率。在最簡單的情況下,這意味著強制編碼器採用 1.5 MBit/s 的恆定位元率。這可行,但有一些缺點。讓編碼器選擇要花費多少位元率,而不是使用固定位元率進行編碼。這會產生適應影片內容的平均位元率。透過使用來執行此操作恆定速率因子選項。
對於 x264,這表示為此 CRF 設定一個介於 18 和 26 之間的值。預設值為 23,較高的值會為您帶來較差的質量,反之亦然。您不需要確切地知道它的作用,但如果您有興趣,請參閱此通用報告格式指南。
您如何執行轉換?
一旦您啟動並運行了 FFmpeg,您就可以簡單地將視訊轉換為 x264 / MP4,並以 192 kBit/s 固定位元率使用 AAC 音訊:
ffmpeg -i input.avi -c:v libx264 -crf 23 -c:a aac -b:a 192k output.mp4
就是這樣。您可以透過調整 CRF 值來改變輸出大小和品質。更低意味著更好的品質和更大的尺寸。越高意味著品質越差,尺寸越小。正如我所說,正常值介於 18 到 26 之間,甚至可能更多。如果您確實想要縮小輸入影片的大小,請選擇在縮小檔案大小的同時仍能提供可接受的影片品質的 CRF 值。
若要測試影片的外觀,您可以Q在轉換過程中隨時按 。它會留下一個被截斷的文件,但仍然可以播放。您還可以提供-t <seconds>
選項,其中<seconds>
指定要編碼的時間長度(例如僅前 30 秒)。
更多設定請參見H.264編碼指南。
批量處理
如果您有一批要轉換的 AVI 文件,您可以執行類似的操作,以遞歸方式對所有文件進行轉碼,例如在 Bash 中:
while IFS= read -d '' -r file; do
ffmpeg -i "$file" -c:v libx264 -crf 23 -c:a aac -b:a 192k ${file%%.avi}-converted.mp4
done < <(find . -iname "*.avi" -print0)
您可以更改.avi
此命令中的後綴,並讓它再次執行其他檔案。
請注意,視訊編碼是一項耗時的任務,需要一段時間才能找到原始檔案的完美設定。
答案2
另一個多功能(並且具有非常實用的 GUI)工具是阿維多路復用器。
以下是有關批次如何運作的一些詳細資訊:Avidemux DocuWiki - 批次