LoginSignup
44
25

More than 5 years have passed since last update.

SkyWay WebRTC GWを利用してUnityでWebRTC Videoをレンダリングする

Last updated at Posted at 2018-07-10

やったこと

最近公開されたSkyWayWebRTC Gatewayを利用して、WebRTCの映像をUnityでレンダリングしてみました。
具体的な実装方法についてざっくり記載します
=> 2018/7/13追記: ソースコード公開して解説記事を書きました。 https://qiita.com/nakakura/items/a99c468c56db2a92b32f

実装

Unityへのテクスチャ取り出しについては、MHD Yamen Saraiji氏のmrayGStreamerUnityを利用しました。Thanks Yamen!
mrayGstreamerUnityはその名の通り、gStreamerというオープンソースアプリケーションで処理する動画データをUnityのテクスチャとして取り出すためのUnity Pluginです。
gStreamerを利用すると動画をRTPで送受信することができるため、別の端末から映像を配信してUnityで描画することができます。

mrayGstreamerUnityの構造

平たく言うと、RTPで動画を送ればUnityのテクスチャを生成してくれる便利なUnity Pluginとして利用することができます。
ここでSkyWay WebRTC GWを利用します。
SkyWay WebRTC GWはMediaStreamで受け取ったメディアをRTPで外部に転送してくれる機能があります。
これを利用して、mrayGstreamerUnityの受信ポート宛に転送してやれば描画してくれます。

SkyWay WebRTC GWの利用

SkyWay WebRTC GWはDataChannelも扱えるので、Unityアプリケーション間でのデータのやりとりも可能です。
UDPでデータの送受信をしてやれば、Unity間でインターネット経由でのチャットやデータ転送も可能です。

Untitled Diagram-Page-2 (3).png

できるようになったこと

  • UnityアプリケーションからのWebRTC利用(インターネット越しの映像・音声通信・データ転送)
    • Unityアプリケーションとブラウザ間でビデオ通話
    • Unityで作ったVRアプリケーション間で通話

例えば、VRゲームの途中で、メタルギアソリッドの無線みたいな感じで通話できるようになる。
ARアプリケーションでリアルタイムにナビを行える。etc.

公開について

まだソースコードがきちゃない状態なので、整理したあとUnity Pluginとして公開しようと思っています。

44
25
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
44
25