FFmpeg の H.265 エンコーディングは Adob​​e のものよりもなぜそれほど効率的なのでしょうか?

FFmpeg の H.265 エンコーディングは Adob​​e のものよりもなぜそれほど効率的なのでしょうか?

Premiere Pro/Media Encoder(ターゲットビットレート10)からレンダリングされ、H.265でエンコードされた30秒の1080pビデオファイルがあります。サイズは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

あなた意思知覚的な「品質」に関係なく、再エンコード時にデータが失われます。これが、サイズが縮小される理由の 1 つです。圧縮アルゴリズムを使用すると、小さな詳細や知覚できない詳細が失われるか、近似されます。

ただし、大きな違いは、Adobe とではデフォルトの品質と帯域幅の設​​定が異なるという点ですffmpeg。「VMAF スコア」が似ているように見えるのは、人間には違いがわからないということだけであり、失われたデータの量はわかりません。

ffmpegフレームをデコードし、デフォルト設定を使用して再エンコードします。デフォルトはアグレッシブである可能性があり、https://trac.ffmpeg.org/wiki/Encode/H.265mediumデフォルトでは品質プロファイルになります。

デフォルトは「中」です。プリセットによって圧縮効率が決まり、エンコード速度に影響します。有効なプリセットは、、、、、、、、、、、、およびです。我慢ultrafastできる範囲でsuperfast最も遅いプリセットを使用してください。エンコード時間が大幅に長くなるのに、効果はわずかでveryfastあるため無視してください。fasterfastmediumslowslowerveryslowplaceboplacebo

圧縮設定を遅くすると、ファイル サイズが大きくなり、圧縮時間も長くなりますが、元の品質がより忠実に保持されます。

ffmpegまた、CRFはデフォルトで28に設定されており、相対的にかなり高い圧縮率となります。

CRFを選択します。CRFは品質に影響します。デフォルトは28で、CRF 23のlibx264ビデオに視覚的に相当します。

より高度な圧縮機能がデフォルトで有効になっている可能性もありますffmpeg。Adobe は、レンダリング時間を短縮したり、品質やその他の機能を保持したりするために、一部のエンコード近似機能を避けてより高いビットレートを採用する場合があります。使用されている設定を正確に知らなければ、それを知ることは困難です。

Adobeと出力を公平に比較​​したい場合はffmpeg、非圧縮形式でレンダリングし、Adobeが使用している設定を正確に調べてから圧縮する必要があります。圧縮されていない両方にファイルします。

すでに圧縮されたファイルを再圧縮(デコードと再エンコード)すると、世代損失1回のパスではそれほど重要ではないように見えるかもしれませんが、データと品質が失われます。数回のパスの後、損失は意思重要である。

答え2

VMAF非常に高品質のエンコードの場合、これはまったく適切な指標ではありません。数学的に同一のコンテンツを比較しても、vmaf スコアが 97.4 程度まで低下することがあります。また、vmaf 100 でも視覚的な透明性は保証されません。

つまり、VMAF スコアは、これらの特定のエンコードの品質についてはほとんど何も教えてくれません。

当時、透明度に近いビデオに適した最良の視覚的指標は、次のような静止画像指標でした。バタローグリまたは SSIMULACRA。

関連情報