これはゲーム開発者向けの記事です。
プレイヤーの方で対応方法を探している場合は[SteamDeck Proton GE]などでググってください。
症状
- Winows上では、正しく動画が再生されている。
- SteamDeck上で再生しようとすると、動画の代わりにカラーバーが表示される。
- Unity2020.3, 2021.3 にて症状を確認。
原因
- SteamDeckというかProtonの問題。
- Proton GEなら大丈夫らしいが、開発者としてはデフォルトのProtonで動いてほしい。
- 少なくともUnityのVideoPlayer経由では、H.264, H.265の動画が再生出来ない模様。
- VideoClipのCodecがAutoの時、StandaloneではH.264が使用される。
メモ
確かにドキュメントにも以下のように記載がある。
Linux の場合、最適なエンコーディングは、以下のコーデックを使用した .webm コンテナです。
ビデオトラックの場合、VP8
オーディオの場合、Vorbis
対応
- CodecをVP8にすれば正常に再生されるようになる。
補足
UnityのTranscodeを利用すると細かいエンコードの調整ができず、想定よりもファイルサイズがデカくなることが多い。
ファイルサイズを気にするなら、ffmpeg等を利用して自分でエンコードしてUnity上のTranscodeは切って利用すると吉。
この時、VP8が利用できないプラットフォームにもVP8のまま配信されないように注意 。(令和の時代にはあまりないとは思うけど・・・。)
さらに、AudioCodecにOpusを利用すると正常に音が再生されなかったのでVorbisを利用すること。
VP9の方が容量は抑えられるが、対応しているプラットフォームが少なくなる。(ので、SteamDeck上で正常に再生されるかも未検証。試した方いたら教えてください。)
自分用メモ
ffmpeg -i input.mp4 -c:v vp8 -b:v 1M -s 1920x1080 -pass 1 -an -f null /dev/null ffmpeg -i input.mp4 -c:v vp8 -c:a libvorbis -b:v 1M -s 960x540 -pass 2 output.webm