FFmpegの3.0がリリースされたのをきっかけに、H.265エンコーダを試してみた。
H.265とは
FFmpegの公式ドキュメントには以下の説明がある。
H.265 (also known as HEVC) offers 50-75% more compression efficiency compared to H.264 video, while retaining the same visual quality. ffmpeg has support for HEVC encoding using the x265 encoder. Note: libx265 is under heavy development. The API may change.
Encode/H.265 – FFmpeg
https://trac.ffmpeg.org/wiki/Encode/H.265
H.264に比べて圧縮率が50-75%上がっているらしい。ということは、映像品質が同じならファイルサイズが半分から1/4ぐらいになるということか。
Windows版の最新ビルドをダウンロードする
Zeranoe FFmpeg – Builds
http://ffmpeg.zeranoe.com/builds/
Latest Zeranoe FFmpeg Build Version: git-1c7e2cf (2016-03-01)
念のため、H.265が有効になっているか確認。
1 2 3 4 5 |
C:\ffmpeg\bin>ffmpeg ffmpeg version N-78843-g1c7e2cf Copyright (c) 2000-2016 the FFmpeg developers built with gcc 5.3.0 (GCC) configuration: ... --enable-libx265 ... |
H.264とH.265のエンコード結果を比較する
フォーマットが1980×1080 29.97fps 80Mbpsの10分間の映像をエンコードしてみる。
1. ビットレート共通
H.264とH.265で共に1Mbpsでエンコードしてみる。
以下エンコード結果のファイルサイズ。
– H.264: 81.2MB
– H.265: 81.3MB
目視で画質を確かめると、H.264はブロック状の滲みが気になるけど、1Mbpsならこんなものだろう。しかしその後に観たH.265は、はっきり違いがわかるぐらいに映像品質が良かった。H.264なら4Mbps以上の画質じゃないか。
2. 映像品質共通
公式ドキュメントの以下の記述を参考に、CRF(Constant Rate Factor)を指定してエンコードしてみる。
The CRF of 28 should visually correspond to libx264 video at CRF 23, but result in about half the file size.
以下エンコード結果のファイルサイズとビットレート。
– H.264 (CRF=23): 341MB, 4.64Mbps
– H.265 (CRF=28): 86.4MB, 1.18Mbps
目視で確認すると画質は同じぐらいか。ファイルサイズは1/4になっている。
特にオンライン配信など、ビットレートとファイルサイズを落としたい場合には、H.265はかなり有効そうだな。