解決法
動画ファイルを.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
オペレーティング システム | 分の倍率 |
---|---|
Linux | 1 |
Windows | 2 |
macOS | 10 |
しかし、Linuxでは使える動画拡張子がかなり制限されてしまいます。
Unity – Manual_ Video file compatibility
https://docs.unity3d.com/Manual/VideoSources-FileCompatibility.html
Extension | Windows | macOS | Linux |
---|---|---|---|
.ogv | ✓ | ✓ | ✓ |
.vp8 | ✓ | ✓ | ✓ |
.webm | ✓ | ✓ | ✓ |
上記ページの表を見ると、.ogv
.vp8
.webm
を使えば良いようです。
.webmファイルにコンバートする
私はAdobe Media Encoderを使って動画ファイルを書き出しているのですが、デフォルトでは上記のファイル形式にできないため、以下のプラグインを使います。
AdobeWebM
https://gitlab.com/fnordware/AdobeWebM
CodecをVP8にするのを忘れずに……!(VP9などではUnity Editorでも再生されないのでわかると思います)
この形式の動画ファイルを使うことでLinuxマシンでビルドできるようになりました。