実はWMV再生が遅かったので(再生時デコードに時間がかかり、解像度が大きい映像データだとカクつく) その対応方法について
ハードウェアで対応
- GPU,CPUは速いのが良い
- SSDが良い
- AVProWindowsMediaプラグイン自体は64bit対応されているので64bitビルドがお勧め
- Unity4はEditorが32bitなので環境違いに注意
ColourFormatで対応
- 速い
- YCbCr_HD (default)
- YCbCr_SD
- 遅い
- RGBA32
解像度で対応
速↑
- 幅、高さともに2乗 (eg 256, 512, 1024, 2048, 4096)
- 幅のみ2乗
- 幅、高さともに16の倍数
- 幅のみ16の倍数
- 幅、高さともに4の倍数
- 幅のみ4の倍数
- 幅、高さともに上記に当てはまらない
遅↓
Codecで対応
.avi
を使用するmp4
は大きな解像度には向いていないHap
が推奨。またはXvid
。- CPUリソースとデコード速度のバランスが良い(最適なのはHap)
- DirectShowは1080pix以上の
H.264
に対応していない H.264
はCPUリソースを食う- 非圧縮
- デコード処理が無いので早い
- メモリ読み込みの場合にメモリオーバーになる可能性あり
Hap
Xvid
- https://www.xvid.com/download/
$ ffmpeg -i input.avi -b:v 50000k -c:v libxvid output.avi
MultiThreadingレンダリングオプションで対応
- UnityEditorのInspector上にて
Debug項目
を表示 MTRendering設定
ガベージコレクションを回避
- 明示的な呼び出しは極力避ける
読み込み
LoadMovie()
ではなく、LoadMovieFromMemory()
- 非圧縮の場合は注意