FFmpeg 的 H.265 編碼為何比 Adob​​e 的高效得多?

FFmpeg 的 H.265 編碼為何比 Adob​​e 的高效得多?

我有一個 30 秒的 1080p 視訊文件,它是從 Premiere Pro/Media Encoder(目標位元速率 10)渲染的,並以 H.265 編碼。它有 36.6 MB。當我運行命令時

ffmpeg -i input -c:v libx265 -c:a copy output.mp4

新檔案只有 5.04 MB。mediainfo顯示新檔案的位元率僅為 1164 kb/s。儘管其中一個比另一個小得多,但兩個影片看起來都一樣(與未壓縮版本相比,兩個影片的 VMAF 分數都高於 97)。

是否libx265巧妙地選擇比特率從而使視訊尺寸變得更小?

答案1

將要無論感知「品質」如何,在重新編碼時都會遺失資料。這是尺寸減小的原因之一。使用壓縮器的演算法將會失去或近似微小或難以察覺的細節。

但主要區別在於 Adob​​e 和 Adob​​effmpeg具有不同的預設品質和頻寬設定。 「VMAF 分數」看起來很相似,只是告訴您人類可能不會看到差異,而不是丟失了多少資料。

ffmpeg將使用其預設設定對幀進行解碼並重新編碼。預設值很可能是激進的,並且根據https://trac.ffmpeg.org/wiki/Encode/H.265它將預設為medium品質配置檔案。

預設值為中等。預設決定壓縮效率並因此影響編碼速度。有效預設為ultrafastsuperfastveryfastfasterfastmediumslowslowerveryslowplacebo。使用您有耐心的最慢預設。忽略它placebo,因為它為編碼時間的顯著增加提供了微不足道的回報。

較慢的壓縮設定將更忠實地保留真實的原始質量,但代價是檔案大小和壓縮時間更大。

ffmpeg也預設 CRF 為 28,這將是相當高的相對壓縮

選擇 CRF。 CRF影響品質。預設值為 28,它在視覺上應對應於 CRF 23 處的 libx264 視頻

甚至有可能ffmpeg預設啟用一些更進階的壓縮功能。 Adobe 可能會避開某些編碼近似功能,轉而採用更高的位元率,以減少渲染時間或保持品質或其他功能。如果不確切知道正在使用哪些設置,則很難知道。

如果您想在 Adob​​e 和ffmpeg輸出之間進行公平比較,那麼您應該渲染為未壓縮的格式,以準確找出 Adob​​e 使用的設置,然後對其進行壓縮未壓縮的兩者都歸檔。

重新壓縮已經壓縮的檔案(解碼和重新編碼)將導致發電損失儘管僅在一次傳遞中看起來並不重要,但會失去資料和品質。幾次通過後損失將要具有重要意義。

答案2

VMAF對於非常高品質的編碼來說根本不是一個好的度量。即使比較數學上相同的內容有時也會為您帶來低至 97.4 左右的 vmaf 分數,而 vmaf 100 也不能保證視覺透明度。

這意味著 VMAF 分數幾乎無法告訴您有關這些特定編碼的品質的資訊。

當時,適合近透明影片的最佳視覺指標是靜態影像指標,例如巴特奧利或西穆拉克拉。

相關內容