#はじめに
VR動画をストリーミングで再生する際に、真っ先に上がるのはYoutubeだろう。
しかし有料配信する場合は別な手段を検討する必要があった。
##実現したいこと
・Webブラウザベースのストリーミング再生
・単眼複眼モードの切り替え
・Andorid5系以降、iOS10以降で動作しジャイロ機能のとの連動
・4Kサイズで配信したい
・DRM
ASPをいくつか調べてみた。
Omnivirt
https://www.omnivirt.com/
→動きはサクサク、DRM非対応。ドキュメント類はもう少し欲しい。
DRM対応の予定は今のところないとの回答。
Visbit
https://www.visbit.co/#/360-web-vr-player-demo
→画質より、低画質で実現できる方法を選択しているため今回は除外。
Vimeo
https://join.vimeo.com/360/
Vimeo Pro
→有料配信の課金がVimeo経由になるため今回は除外。
JWPlayer
https://www.jwplayer.com/
別案件でも使用しているが、なかなか良い。
ただ、VRに関しては複眼モードが使えず、今回は除外。
Bitmovin
https://bitmovin.com
→要件を満たし、サポートのチャットレスポンス、ドキュメントの充実度からも今回はこちらを選択。
##全体の流れ
- 素材を用意する(4K monoral 3840x1920 H.264, AAC)
- WebサーバーにまたはAWS S3などのストレージに配置
- Bitmovin Encoding APIでエンコード
- Bitmovin Player(MPEG DASH, HLS)に設定
##Bitmovin Encoding
2017/12/9 時点でGUIからのエンコードが出来なくなっている模様。
Bitmovin Encoding APIを使用する。
https://developer.bitmovin.com/hc/en-us/categories/115000139873-Encoding
結構エラー出るのでチャットで問い合わせると大体その日中に回答がくる。
管理画面からLISENCE KEYを取得して、最新のStable版のJSコードを埋め込み先HTMLへ。
JavaScriptで埋め込むプレーヤーではパラメータで諸々調整可能。
VRで調整可能なパラメータ(抜粋)
cardboard: カードボード用の焦点距離に合わせられる
contentType: single,tab (Top and Bottom), sbs (Side by Side)
startPosition: 再生時の動画再生位置
stereo: true/false (複眼モード許可設定)
initialRotation: true/false 再生開始時に水平位置の調整が可能になる
initialRotationRate: 水平位置の調整レート e.g. 0.25
他にも結構細かい設定が可能。
https://developer.bitmovin.com/hc/en-us/articles/115001689833-Player-Configuration-v7
##まとめ
360度コンテンツの配信は現在技術革新の真っ只中。
今後も活発な開発が繰り広げられるだろう。
端末の高性能化にともなってデータ伝送量も減らせる H.265 もシェアを拡げそう。
高速回線で高画質の配信を実現してもカードボードで拡大してしまうとどうしても粗さが気になってしまうところの改善も同時にできるといいなと感じます。
VR自体の利用シーンやコンテンツの幅は現状まだ狭いが、楽に見れて酔わない見せ方ができるとエンタメとしては成り立つのではと思う。