12
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

[Unity][Android]VideoPlayerでカクつく問題への対応

はじめに

Unity 5.6 から Video Player component が追加されました。
MP4などのムービーを簡単に全画面で流したり、テクスチャに貼り付けて再生できたりできる便利なコンポジションなのですが、
こちらも使っている際にぶつかった現象について備忘録も兼ねてまとめておきます。

開発環境

Unity 5.6.3f1 (64-bit)

現象

VideoPlayerでムービーを再生するとAndroid端末で動画がカクつく。
iOS端末やUnityシミュレーター上ではカクつかない。

現象が起きたのは音声ありMP4だったのですが、
・ムービー素材のビットレートやフレームレートを下げたり無音に変えたりしましたが変化なし。
・VideoPlayerコンポジションの設定を弄り回しましても変化なし。
という状態でした。

原因

マルチスレッドレンダリング設定が有効になっているとカクつくようです。
こちらの設定はiOSにはないため、Androidのみで起きていたわけです。
恐らくレンダリングとムービーのデコードを別スレッドで制御しているため、
お互いに待ちが発生してカクつく原因になっているのではないかと予想されます。

対応方法

マルチスレッドレンダリングを止めてやる。
Unityエディタ上の[Edit]->[Project Settings]->[Player]の[Android]タブ内に、
[Other Settings]->[Multithreaded Rendering]という項目があるので、チェックを外してやる。
Unityエディタ画面.PNG

最後に

こちらの原因に行き着くのに半日近く掛かってしまいました。
Unityを使い慣れていないというのもありますが、理屈を考えて調査するのは大事だなと思いました。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
12
Help us understand the problem. What are the problem?