身近な自然と科学

フリーソフトでHevc(h265)に変換する最適な方法

2023年6月20日更新

4K放送が始まり、4Kで撮れるビデオカメラが普及してきたのに伴ってHEVC(h265)という動画圧縮が注目されています。
HEVC方式で動画を圧縮すると見た目同じ精細さを保ちながら動画ファイルの大きさは、半分、または数分の1になると言われていて、インテルが製造しているCoreシリーズなどグラフィック内臓CPUにはHEVCに変換するハードデコーダー(QSV)が内蔵されているものが数多く出回っています。
動画ファイルの大きさが劇的に小さくなるのは魅力なので、第8世代のCore i5 搭載のパソコンを買ったので試してみました。

Hevc(h265)動画変換で最も画質がよく変換速度が速い方法

XMedia Recode で、「映像」タブをクリックしてそのページで下図の様に設定します。私の実験では、この設定が最適で、ソフトでの2パス変換にほぼ等しい画質が得られました。
XMedia Recodeで(Hevc)h265変換の設定
コーデックは Intel Quick Sync
レート制御モードは LA-ICQ(先読みインテリジェント固定)
品質は 29か28

レート制御モードをLA-ICQに設定することが重要です。品質は数値を大きくすると画質が良くなりますがファイルが大きくなります。
元の動画ファイル:92分間のTSファイル動画(1440×1080、9.02GB)を変換してみました。

画質を優先するなら2パスのソフトウェアー変換がよいですが、画質を少し我慢できるなら上記の方法が最適なh265変換だと思います。
h265(Hevc)はh264より圧縮率が高いのですが、ファイルのサイズを小さくすると現状のCPUチップ内臓のハードでの変換では画質が悪くなります

レート制御モード:LA-ICQ、品質:33、プリセット:Veryslow もよいかも

品質32ではHEVCに変換後のファイルサイズが大きいので少しでも小さくしたいと品質を33にしてプリセットをVeryslowにしてみました。
XMedia Recode で HEVC/h265を選択し、設定は下図の様にします。
XMedia Recode で HEVC/h265の設定2
CPU使用の優先度の指定は別にあるので、プリセットをVeryslowにすれば変換時間は掛かりますが画質は良くなるはずと期待して1440×1080のTSファイルの動画を変換してみると、Avidemux(ソフト)で平均ビットレット950kBit/秒(2パス)で変換したものより気持ち劣るぐらいで済みました。
Avidemux(ソフト)とIntel QSVの画像比較
Intel QSVを使って変換に要した時間は動画の実長さとほぼ同じでした。1時間の動画ならHEVCに変換するにも1時間ぐらい掛かります。
Avidemux(ソフト)でHEVCに変換すると約4倍の時間が掛かります。

ffmpegで動画をHEVC(h265)に変換する方法

最も簡単に、かつ綺麗なHevc仕様の動画に変換するには、プロ用途を含めて多くのところで使用されている「ffmpeg」というフリーソフトを使います。見えないところで使われている縁の下の力持ち的ソフトです。
が、ffmpeg は、インテルのハードで動画変換するQSVが使える実行ファイル(バイナリーファイル)が配布されていないようなのでQSVが使えるコードをダウンロードして自分でコンパイルするしかありません。コンパイルは面倒なのでソフトで動画変換することにします。
QSVが簡単に使える方法もこのページで紹介します。
ffmpeg サイトhttps://www.ffmpeg.org/
ダウンロードしたffmpegを解凍して、ffmpeg.exe があるbinフォルダーを開き、 Shiftキーを押したままbinフォルダー内で右クリックすると、下図の用にメニューが出てくるので「PowerShellウィンドウをここに開く」(下図の赤丸で示した右)をクリックします。
PowerShellウィンドウをここに開くの図
すると、PowerShellウィンドウが開きます。
このウインドウに表示された「」の次に引数付きのffmpegを入力するのですが、メモ帳に下記の様に書いてコピーします。PCのクリップ領域にコピーしている状態にしておきます。
ffmpegによるhevc変換

  1. .\ は、PowerShellを使うときのお呪いです。コマンドウィンドウでは必要ありません。
  2. ffmpeg が動画の変換に使うプログラムです。
  3. ain.ts は元の動画です。ts や mp4 などの任意のファイル名と拡張子を持った動画です。
    ffmpeg -i の次からain.ts までが元動画のある任意の場所とファイル名です。
  4. -vcodec hevc はビデオはhevc変換するという意味です。- は単独で使える命令語の前に付けます。
    - が付か無い語(ワード)はその前の命令語をどのように使うかを制御する引数(引語)になります。hevcだけでなく任意の記録方式に変換できますが、ここではhevcです。
  5. -crf 28 は最適な圧縮率にする数です。28は適当に変えて好みの画質にしてください。
  6. -acodec copy は、音声はコピーするという意味です。
  7. pass 1 は、2パスで変換する1回目。pass 2 は2回目の変換という意味です。pass の数だけ同じ内容を2行書いて置けば、 ffmpeg が2パス変換と解釈してくれます。
  8. aout.mp4 は出力名、ここでは、入力ファイルain.ts と異なってファイルの場所を指定していないので、ffmpeg.exe と同じフォルダー内に変換したファイルが出来ます。
    入力する動画、変換した動画の出力先は任意の場所が指定できます。入力する動画の場所は、その動画のアイコンにマウスを当てて右クリックすると、
    アイコンの上で右クリックした図
    というメニューが出るので「パスのコピー(A)」(上図の赤丸で示した右)をクリックすると、コピーされるので動画の場所が貼り付けられます。
  9. 1~8の手順で作ったものを、PowerShellウィンドウの\bin>の後にマウスを置いて右クリックすると直ぐに動画変換処理が始まります。ソフトによる変換なので時間が凄く掛かります。
    PowerShellウィンドウでhevc変換
ハイビジョン動画1分間分106MBを変換してファイルサイズは14.1MB。変換時間6分20秒。画質は良いです。
TSファイルで保存する気になれば7分の1に圧縮された訳ですが。

Avidemux で動画をHEVC(h265)に変換する方法

フリーソフトの動画編集ソフト Avidemux では、簡単にHEVC変換出来ます。
Avidemuxの ダウンロードは、ミラーサイトhttps://www.fosshub.com/Avidemux.html
または、https://www.videohelp.com/software/AviDemux

普通に動画変換するときと同じ様にVideo Output でHEVC(h265)を選択するだけです。
Avidemuxでhevc(h265)変換する
AvidemuxもソフトによるHEVC動画変換なので時間が凄く掛かります。2パスで行った方が画質をよくなります。
ハイビジョン動画1分間分106MBを変換して5.3MB、変換時間9分間。

HandBrakeで動画をHEVC(h265)に変換する方法

フリーの動画編集ソフトHandBrakeでは、インテルのハードデコーダーQSVを簡単に使えます。ハードウェアーデコーダーなので動画変換速度は非常に速いです。1秒間に70フレーム以上処理しますから動画の再生時間の半分より少ない時間で動画のHEVC変換が終わります。
下図の様にVideoタブで h265(intel QSV)を選択するだけです。
HandBrakeのダウンロードは、https://handbrake.fr/
HandBrakeでHevc(h265)変換
Avidemuxでh265変換したのと同じ平均ビットレート値 600kbit/s で、ハイビジョン動画1分間分を変換してみたところ、1分47秒掛かってファイルの大きさは、5.52M。メモ程度にも見られない動画が出来上がりました。
メモ程度に見られる動画は、平均ビットレート値1000kbit/s で動画の大きさは8.43MBになりました。