Amazonで商品を見るセール会場へ

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

アプリ内に動画を組み込む際、アプリ容量を100MB以内に抑えたいケースがあります。

エンコード設定や使用ツールによってどの程度容量が変わるのかを検証しました。

目次

検証条件

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

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

基準として、編集直後の非圧縮AVI形式におけるファイルサイズを確認します。

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

非圧縮のままではファイルサイズが巨大なため、アプリ内に含めることはできません。

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

After Effectsの標準書き出し機能を使用して、MP4(H.264)へエンコードした結果です。

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

品質050100
容量24.4MB87.5MB377MB
画質荒れが目立つ許容範囲良好

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

容量と画質のバランスを考慮し、品質設定を「40」に固定して尺ごとの容量を比較しました。

30秒60秒90秒
容量65.7MB105MB281MB

結果:After Effectsの標準エンコードでは、100MB以内に収めるには30秒程度が上限となります。

画質の劣化も目立ちやすい結果となりました。

AviUtlでエンコードした場合

圧縮率やビットレートを細かく調整できるAviUtlとx264guiExプラグインを用いて検証しました。

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

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

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

結果:After Effectsと比較して容量を大幅に抑制できました。

視認性を維持したまま、90秒の動画でも約25.7MBに収まります。

注意点:動画の動きの激しさや選択したプロファイル設定によっては、バンディングやブロックノイズなどの乱れが生じることがあります。

実機での再生を確認しながらビットレート等のパラメータを微調整してください。

ビルド後の動画サイズ

Unityでプロジェクトをビルドする際、動画ファイルが自動的に再圧縮されて容量が小さくなるかを検証しました。

Android(Mono)

30秒60秒90秒
容量8MB17MB25MB

iOS(IL2CPP)

30秒60秒90秒
容量9MB18MB26MB

結果:ビルド後も動画のファイルサイズはほぼ変わりません。

取り込んだ動画容量がそのままアプリサイズに加算される点に留意してください。

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

エンコード方法90秒の容量画質特徴
AVI(非圧縮)6.96GB最高サイズ過大のため実用不可
AE(品質40)281MB許容範囲容量が削減しきれない
AviUtl25.7MB良好高画質かつ低容量に圧縮可能

Unityに関するほかの記事は、まとめページから確認できます。

環境設定の記事は、ほかにもあります。

まとめ

  • After Effectsの標準エンコードのみでは、長尺動画を100MB以内に収めることが難しい
  • AviUtlとx264guiExを活用することで、画質を維持しながら大幅な容量削減が可能
  • Unityビルド時に動画ファイルは自動圧縮されないため、取り込み前のエンコードが不可欠
  • 適切なH.264エンコードを行えば、100MB制限内でも数分程度の動画を組み込める

Unityアプリに動画を内包する場合は、適切な外部エンコードツールを選定して事前に圧縮しておくことが容量削減の鍵となります。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

Unityのおすすめ書籍

開発PCの選び方

周辺機器の優先度

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