白黒羊

LinuxマシンでUnityビルドすると動画が表示されない

解決法

動画ファイルを.webmなどLinux対応のものにしましょう(.ogv .vp8 .webm

状況

イベント出展のためにタイトル画面で一定秒数動きがないときには自動的にトレイラーを流す実装をしました。ローカルでビルドしたときには正常に動画が再生されたものの、GitHub ActionsとGameCIを使ってビルドしたときには動画が再生されませんでした。

GitHub Actionsのログを見ると、 Error while reading movie: /path/my-trailer.mp4 というエラーメッセージが出ていました。

Linuxでのビルド

GitHub ActionsではLinux(Ubuntu)、Windows、MacOSが使えるのですが、Linuxが圧倒的に安くできるだけubuntu-latestを使いたいという事情があります。

GitHub Actions の課金について
https://docs.github.com/ja/billing/managing-billing-for-github-actions/about-billing-for-github-actions#minute-multipliers

オペレーティング システム分の倍率
Linux1
Windows2
macOS10

しかし、Linuxでは使える動画拡張子がかなり制限されてしまいます。

Unity – Manual_ Video file compatibility
https://docs.unity3d.com/Manual/VideoSources-FileCompatibility.html

ExtensionWindowsmacOSLinux
.ogv
.vp8
.webm

上記ページの表を見ると、.ogv .vp8 .webm を使えば良いようです。

.webmファイルにコンバートする

私はAdobe Media Encoderを使って動画ファイルを書き出しているのですが、デフォルトでは上記のファイル形式にできないため、以下のプラグインを使います。

AdobeWebM
https://gitlab.com/fnordware/AdobeWebM

CodecをVP8にするのを忘れずに……!(VP9などではUnity Editorでも再生されないのでわかると思います)

この形式の動画ファイルを使うことでLinuxマシンでビルドできるようになりました。