H.264 と H.265 を試してみる


 動画のエンコードとかなんとか

 ... Google フォト に動画をバックアップしようとしている「ぼく」だけど、
なんとなくクラウドの容量を節約したいなぁ、って思ってたりしたわけで。

どうにかしてファイルサイズを小さくできないかな、と
エンコードに挑戦してみた、っていうおはなし。

 

( H.264 と H.265 の違いしかないので、目当てのものじゃない人は戻ったほうがよさそうです)

すぐに結果が欲しい人は下まで飛ばしてください。

(ちょっとそれる)Google フォト のはなし

 Google フォト に写真をアップロードするときには2つの方法があって、

 ・画質

  無制限にアップロードできる けれど。

  > 画像であれば....

   画素数16 メガピクセル(16,000,000 = 1600万画素)を超えていると 16MPに縮小 されちゃう。
   (最近のスマホのカメラの「17M」とか「23M」だとひっかかる)

 

  > 動画であれば...

   画素数が 1080 p (1920 x 1080) を超えていると縮小されちゃう。
   (スマホのカメラだと、ほぼひっかかる)
   そうじゃなくても再圧縮はかかっちゃう。(でも、あんまり違いはない)

 

 ・の画質
  
Google アカウントの容量を使うけれど、
  画像でも動画でも、もともとのファイルと同じ解像度になる。

 

使っているスマホの SH-04H だと動画を 3840 x 2176 の画質で撮れるから、

「高画質」でアップロードすると縮小されちゃう。

 

でも、なんとかして使う容量を節約したいなぁ、と思って

AviUtl を使って編集することにしてみた。

(花火の動画だから、ある程度トリミングはできるし.....)

 

 エンコードによるファイルサイズ(とか)の違い

あるとき撮った花火の動画を編集し終わって(クリッピングだけ...)さっそく出力(エンコード)しよう、と。

どのコーデックを使えばいいかわからなかったから、
なんとなく有名な H.264 と H.265 でくらべてみました。

 

ちなみに、再生した環境は Windows 10  の VLC media player で、

CPUは Intel i-4712HQ (2.3 GHz × 8コア)です。

(HWD は ハードウェアデコーディング を勝手に略しました)

 

・もともとのファイル (SH-04H の「SHカメラ」で撮った、 .mp4 ファイル)

エンコードしたあとのファイル(下のほう)とは画素数が違います。

長さ 1分 3秒
FPS 29.68 FPS
サイズ 242 MB
素数

3840 × 2176(4K2K) = 8.3 MP

ビットレート 32265 kbps
HWDあり CPU 90 %
GPU負荷 35 %
HWDあり CPU 90 %
GPU負荷 36 %

けっこうカクカクしてました。
でも、これが普通の動画です。

 (逆に、このファイルをふつうに再生できる Android はどうなってるんだろう)

 

H.264 エンコードしたもの

長さ 1分 3秒
FPS 29.68 FPS
サイズ 131 MB
素数

2850 × 2160 = 6.1 MP

ビットレート 17452 kbps
HWDなし CPU 29 %
GPU負荷 7 %
HWDあり CPU 1 %
GPU負荷 12 %
エンコードにかかった時間 8分

H.264エンコードしたら半分のサイズになりました。
再生するときのCPUへの負荷もなかなか小さいので、
スペックのそんなに高くないPCでも再生できるかも?

 

・H.265 エンコードしたもの

長さ 1分 3秒
FPS 29.68 FPS
サイズ 38 MB
素数

2850 × 2160 = 6.1 MP

ビットレート 5044 kbps
HWDなし CPU 36 %
GPU負荷 7 %
HWDあり CPU 55 %
GPU負荷 99 %
エンコードにかかった時間 15分

 ファイルサイズが 1/6 くらいにものすごく小さくなってました。
ただ、再生するときの CPU と GPU への負荷が
ある程度あるので、ちょっとカクカクしてしまうパソコンもあるかも。

ハードウェアデコードと相性が悪いと GPU か CPU が100%になってしまって再生できませんでした(クラッシュしちゃった)。

 

まとめ 

・基本はエンコードしたほうがいい。でも再生できないものもある...

 

H.264エンコードしたものは、

  ・CPU 負荷が少なく再生できるデバイスも多い

  ・H.265 に比べればファイルサイズは大きい

  ・エンコードはわりと早い

 

・H.265 でエンコードしたものは、

  ・CPU 負荷が大きく、再生できるデバイスまだ少ない

  ・ファイルサイズがかなり小さい

  ・エンコードは遅い

  ・Google フォトでなぜか再生できない場合があった

 

花火の動画だから大きく差が出たのかもしれないけれど、
別の動画でも検証してみるといいかも?

 

(ちなみに、撮った写真)

f:id:HiSeshi_ptcl:20180812164226j:plainきれいだった。