web-dev-qa-db-ja.com

どのH.264 / H.265ビデオ圧縮パラメーターが、より良い圧縮でDVDと同等の品質を提供しますか?

ビデオをMP4ファイルに変換してハードドライブに保存することでビデオを保持したいのですが、DVDビデオディスクの箱を手に入れました。

最新のH.264 AVCおよびH.265 HEVC圧縮アルゴリズムがDVD標準のMPEG2より優れていることを考えると、ビデオを圧縮することでハードドライブのスペースを節約し、DVDの元の品質を最大99%節約したいと考えています。

  • H.264(FFMPEG + libx264)圧縮パラメーター
  • H.265(FFMPEG + libx265)圧縮パラメーター

私の目標を達成するために使用する必要がありますか?

パラメータとは、CBR/CRF値、プリセット(veryslow /プラセボは不可)、フラグなどを意味します。

PS:-pix_fmt yuv420p-profile:v baseline -level 3.0を使用してケースを制限し、古いハードウェアデコーダチップに依存する古いデバイスを含むすべてのデバイスでファイルが正常に再生されるようにしたいと思います。 (-gパラメータを使用して)やや高めのIフレーム周波数を使用することも、低速で待ち時間の長いメディアの使用を容易にするために望ましいです。

HEVCについては、それをサポートするデバイスでハードウェアアクセラレーションによるスムーズな再生を保証するパラメーターを使用することも好みますが、ハードウェアアクセラレーションH.265を提供するデバイスを見たことがないため、この制約に焦点を当てるつもりはありません。まだまったくデコードしていません。

11
Ivan

このためには、常に 最新のffmpegバージョン を使用し、できれば 自分でコンパイル を使用してください。これにより、オーディオエンコーディング用の最新のlibx265およびlibfdk-aacにアクセスできます。

また、約10 MBit/sのDVDからH.26​​4ビデオの場合は約1〜2 MBit/s、H.265ビデオの場合は0.5–1 MBit/sにすると、データレートが大幅に節約されます。以下の手順で品質を変更すると、ビットレートに影響する可能性がありますが、それでもデータの削減は重要です。

H.264

品質/レート制御については、一定のビットレートではなく、libx264で CRFモード を使用します。 CRFを使用すると、元のビデオ解像度やその複雑さに関係なく、平均品質が維持されます。一定のビットレートは、伝送メディア(ハードドライブの速度、インターネットのスループットなど)に制約されている場合にのみ非常に役立ちます。

CRF値を選択するのは難しい部分です。出力を確認する必要があります。 libx264(23)のデフォルトは、サイズと品質の間でかなり良いトレードオフを提供します。ただし、元のソースが既に圧縮されている場合(Blu-rayに比べて品質が低い品質ではない)場合、CRFを次のように変更することをお勧めします。 20など、少し低くなります。これにより、必要なビットレートが約3分の1増加します。

待機時間に応じてプリセットを選択します。 slowは、ここでは良い値のようです。

ffmpeg -i input \
-c:v libx264 -crf 20 -pix_fmt yuv420p \
-x264-params keyint=240:min-keyint=20 \
-preset:v slow -profile:v baseline -level 3.0 \
-c:a libfdk_aac -vbr 4 \
output.mp4

Libfdk-aacが利用できない場合は、組み込みのffmpeg AACエンコーダーを使用できます。使用する -c:a aac -strict experimental -b:a 128k の代わりに -c:a libfdk_aac -vbr 4

H.265

調査の提案 HEVCを使用すると、H.264と比較して最大74%のビットレートの節約につながります。これは、Ultra-HDシーケンスの主観的な視聴デー​​タに基づいています。もちろん、ソースコンテンツの時間的な複雑さに依存します。保存されるデータの量は、シーケンスのコーディングが難しい場合ほど高くはありません。どちらの方法でも 安全に言う 50%のデータ削減は絶対に可能です。

Libx265のデフォルトのCRFは28です。同じソースコンテンツを使用すると、CRF 23のlibx264と比較して約半分のビットレートになります。これは、実際のビットレートに関係なく、つまり、H.264バージョンが1.5 MBit/sの場合、 H.265は約750 kBit/sを使用しますが、別のシーケンスでは350 kBit/sに対して750 kBit/sです。私はDVD-PAL解像度で2つのシーケンスを実行しましたが、品質の違いを区別できませんでした。

ffmpeg -i input \
-c:v libx265 -pix_fmt yuv420p \
-x265-params crf=28:keyint=240:min-keyint=20 \
-preset:v slow \
-c:a libfdk_aac -vbr 4 \
output.mp4

詳細については、関連するリソースを以下に示します。

14
slhck