Unity│H.264動画のエンコード(圧縮)でアプリ容量を抑える方法

アプリ内に動画を入れたいけど、100MB以内に収めたい。そんなとき、エンコード方法によってどれくらい容量が変わるのか検証してみました。

目次

検証条件

  • 解像度:1280×720px
  • 検証する尺:30秒、60秒、90秒
  • 目標:アプリ容量100MB以内に収める

非圧縮(AVI)の動画サイズ

まずはオリジナルの非圧縮動画のサイズを確認します。

30秒60秒90秒
容量2.32GB4.63GB6.96GB

当然ですが、このままではアプリに入れられません。

After Effectsでエンコードした場合

AEの標準機能でMP4(H.264)にエンコードしてみました。

品質別の比較(30秒の動画)

品質050100
容量24.4MB87.5MB377MB
画質汚いぎりぎり許容範囲綺麗

尺別の比較(品質40で統一)

ぎりぎり許容できる画質として品質40を選択しました。

30秒60秒90秒
容量65.7MB105MB281MB

結果:AEでのエンコードでは、100MB以内に収めようとすると30秒程度が限界。画質もあまり良くありません。

AviUtlでエンコードした場合

H.264を細かくチューニングできるAviUtl(+x264guiExプラグイン)を試してみました。

導入方法の参考:https://aviutl.info/x264guiex-intro/

尺別の比較(YouTubeプロファイル設定)

30秒60秒90秒
容量8.58MB17.1MB25.7MB

結果:AEと比べて容量が大幅に削減されました。画質を保ちながら90秒でも25MB程度に収まっています。

注意点:動画の内容やプロファイル設定によっては映像が乱れる場合があります。その場合は設定を調整してください。

ビルド後の動画サイズ

Unityでビルドすると圧縮されてさらに小さくなるのでは?と思い検証しました。

Android(Mono)

30秒60秒90秒
容量8MB17MB25MB

iOS(IL2CPP)

30秒60秒90秒
容量9MB18MB26MB

結果:ビルド後もほぼ変わりません。動画の容量はそのままアプリサイズに反映されると考えましょう。

エンコード方法の比較まとめ

エンコード方法90秒の容量画質特徴
AVI(非圧縮)6.96GB最高実用不可
AE(品質40)281MBぎりぎり容量が大きい
AviUtl25.7MB綺麗高画質・低容量

まとめ

  • AEの標準エンコードでは100MB以内に収めるのが難しい
  • AviUtl + x264guiExを使えば、画質を保ちながら容量を大幅に削減できる
  • ビルド時に動画は圧縮されないので、事前のエンコードが重要
  • 適切にエンコードすれば、100MB以内でも数分の動画を入れられる

アプリに動画を組み込む場合は、エンコードツールの選択が容量削減のカギになります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次