アプリ内に動画を組み込む際、アプリ容量を100MB以内に抑えたいケースがあります。
エンコード設定や使用ツールによってどの程度容量が変わるのかを検証しました。
検証条件
- 解像度:1280×720px
- 検証する尺:30秒、60秒、90秒
- 目標:アプリ容量100MB以内に収める
非圧縮(AVI)の動画サイズ
基準として、編集直後の非圧縮AVI形式におけるファイルサイズを確認します。
| 尺 | 30秒 | 60秒 | 90秒 |
|---|---|---|---|
| 容量 | 2.32GB | 4.63GB | 6.96GB |
非圧縮のままではファイルサイズが巨大なため、アプリ内に含めることはできません。
After Effectsでエンコードした場合
After Effectsの標準書き出し機能を使用して、MP4(H.264)へエンコードした結果です。
品質別の比較(30秒の動画)
| 品質 | 0 | 50 | 100 |
|---|---|---|---|
| 容量 | 24.4MB | 87.5MB | 377MB |
| 画質 | 荒れが目立つ | 許容範囲 | 良好 |
尺別の比較(品質40で統一)
容量と画質のバランスを考慮し、品質設定を「40」に固定して尺ごとの容量を比較しました。
| 尺 | 30秒 | 60秒 | 90秒 |
|---|---|---|---|
| 容量 | 65.7MB | 105MB | 281MB |
結果:After Effectsの標準エンコードでは、100MB以内に収めるには30秒程度が上限となります。
画質の劣化も目立ちやすい結果となりました。
AviUtlでエンコードした場合
圧縮率やビットレートを細かく調整できるAviUtlとx264guiExプラグインを用いて検証しました。
導入方法の参考:https://aviutl.info/x264guiex-intro/
尺別の比較(YouTubeプロファイル設定)
| 尺 | 30秒 | 60秒 | 90秒 |
|---|---|---|---|
| 容量 | 8.58MB | 17.1MB | 25.7MB |
結果:After Effectsと比較して容量を大幅に抑制できました。
視認性を維持したまま、90秒の動画でも約25.7MBに収まります。
注意点:動画の動きの激しさや選択したプロファイル設定によっては、バンディングやブロックノイズなどの乱れが生じることがあります。
実機での再生を確認しながらビットレート等のパラメータを微調整してください。
ビルド後の動画サイズ
Unityでプロジェクトをビルドする際、動画ファイルが自動的に再圧縮されて容量が小さくなるかを検証しました。
Android(Mono)
| 尺 | 30秒 | 60秒 | 90秒 |
|---|---|---|---|
| 容量 | 8MB | 17MB | 25MB |
iOS(IL2CPP)
| 尺 | 30秒 | 60秒 | 90秒 |
|---|---|---|---|
| 容量 | 9MB | 18MB | 26MB |
結果:ビルド後も動画のファイルサイズはほぼ変わりません。
取り込んだ動画容量がそのままアプリサイズに加算される点に留意してください。
エンコード方法の比較まとめ
| エンコード方法 | 90秒の容量 | 画質 | 特徴 |
|---|---|---|---|
| AVI(非圧縮) | 6.96GB | 最高 | サイズ過大のため実用不可 |
| AE(品質40) | 281MB | 許容範囲 | 容量が削減しきれない |
| AviUtl | 25.7MB | 良好 | 高画質かつ低容量に圧縮可能 |
Unityに関するほかの記事は、まとめページから確認できます。

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




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