使用 ffmpeg 從 mp4 轉換為 avi 時如何獲得最佳品質?

使用 ffmpeg 從 mp4 轉換為 avi 時如何獲得最佳品質?

當我使用這個時,品質看起來不錯。

ffmpeg -same_quant -i video.mp4 video.avi

文件中ffmpeg寫道:“請注意,這不是相同的品質。除非您知道需要它,否則不要使用此選項。”

我是否獲得了-same_quant最好的質量,或者是否有一個選項可以提供與輸入相同的品質並且更值得推薦?

答案1

(改編自上面的評論)

根據所使用的編解碼器(某些編解碼器與某些容器不相容),您始終可以簡單地複製串流 ( -codec copy)。這是避免品質變化的最佳方法,因為您不需要重新編碼流,只是將它們重新打包到不同的容器中。

處理音訊/視訊檔案時,請務必記住:容器大多數獨立於所使用的編解碼器。人們經常看到人們將檔案稱為“AVI 影片”或“MP4 影片”,但這些都是容器,並不能告訴我們播放器是否能夠播放串流,因為除了技術限制(例如,AVI 可能有 h264 和 Ogg Vorbis 問題),您可以使用任何編解碼器。

-same_quant似乎是告訴 ffmpeg 嘗試實現類似品質的一種方法,但是一旦您重新編碼視訊(至少使用有損編解碼器),您就無法獲得相同的品質。如果您關心質量,一個好的經驗法則是盡可能避免對流進行重新編碼。

因此,為了使用 ffmpeg 複製流,您需要執行以下操作:

ffmpeg -i video.mp4 -codec copy video.avi

正如@Peter.O 所提到的,選項順序很重要,所以這就是-codec copy必須去的地方。您仍然可以保留-same_quant,但它不會有任何效果,因為您沒有重新編碼流。

答案2

在 FreeBSD 8.2 下,我嘗試了 -codec copy 但也收到了未知解碼的訊息。經過反覆試驗,我發現在 FreeBSD 下可以工作:

ffmpeg -i video.mp4 -vcodec copy video.avi

相關內容