11
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【HoloLens1】HoloLens で WebRTC を利用する

Last updated at Posted at 2019-08-25

#2021/3/25 補足
MixedReality-WebRTC の Version が2系になった時に、ファイル構造・導入手順が変更されました。
こちらの記事を参考にする場合は1系(1.0.0 ~ 1.0.3)をお使いください。
https://github.com/microsoft/MixedReality-WebRTC/releases

#はじめに
WebRTCはウェブブラウザやモバイルアプリケーション間でのリアルタイム通信を可能にするものです。
オープンソースのプロジェクトであり、APIが公開されています。
HoloLensで利用するにあたって、今回はHoloLensの開発元であるMicrosoftが提供しているプロジェクトを利用しました。

webrtc-uwp-sdk
https://github.com/webrtc-uwp/webrtc-uwp-sdk
MixedReality-WebRTC
https://github.com/microsoft/MixedReality-WebRTC
#準備
・Visual Studio 2019
・Unity 2019以降
・Node.js
・以下リポジトリのクローン
 https://github.com/microsoft/MixedReality-WebRTC
 https://github.com/bengreenier/node-dss

#導入
###リポジトリのダウンロード
master branchをclone
https://github.com/microsoft/MixedReality-WebRTC
(zip形式の保存はファイル欠損が出るので, cloneで行います. 10GB程度の空き容量が必要になります)
###ビルドの準備
以下URLに沿って実行する
https://microsoft.github.io/MixedReality-WebRTC/manual/building.html
・rootディレクトリのMicrosoft.MixedReality.WebRTC.slnをVS2019で起動
image.png
・上記の設定でプロジェクト全体をビルド
HoloLens1であればx86, HoloLens2で利用する場合はターゲットをARMに変えます
いくつかエラーと警告が出るが、ビルドが通れば先へ進む

MixedReality-WebRTC-master\libs\Microsoft.MixedReality.WebRTC.Unity\Assets\Microsoft.MixedReality.WebRTC.Unity.Examples\VideoChatDemo
をUnityで開く
image.png
Build Settingsは以下のように設定
image.png

###ローカル映像取得
WebRTCを実行するためのシグナリングサーバを用意します。
node.jsコマンドプロンプトを起動し、予めダウンロードしたnode-dssのディレクトリに移動
以下コマンドを実行
cd node-dss
set DEBUG=dss*
npm install
npm start
コマンド実行後にUnityでシーンを再生する
成功していればWebカメラでローカルの映像が表示される
無題.png
node.js側にはログが表示される
image.png
###リモート映像取得(Unity - Unity)
2台のPCを使うことで相互に映像を取得できる
上記で利用したPCとは別のPCで同じプロジェクトを実行できる環境を作る
作り終わった後に, 同じ手順でローカルのデータが取れるかを確認
確認後、双方でnode-dssを実行
2台分, /data/以降の文字数列をメモ
(例えば, 上記ログの場合だと8bce5f31a0fcfa8e14380b224c00e2d1)

Hierarchyを開き、PeerConnection内のNodeDssSignalerを編集する
image.png

Remote Peer Idは控えた文字数列を入力
Http Server Addressは、
http://127.0.0.1:3000http://接続先ネットワークのIPv4アドレス:3000に変更
双方で再生ボタンを押し、CreateOfferすると、リアルタイムの映像が出力される
無題.png
ログから双方で通信が行われていることが分かる
image.png
###リモート映像取得(HoloLens - Unity)
編集中

###トラブルシューティング
Microsoft.MixedReality.WebRTC.slnがビルドできない
→ VS2019でビルドしているか確認
→ ターゲットの変更etc 
 (https://microsoft.github.io/MixedReality-WebRTC/manual/building.html)

ローカル映像取得ができない
→ Webカメラ、ネットワークの権限を許可しているか
→ Microsoft.MixedReality.WebRTC.slnのビルドはできているか、できていなければ再ビルド
→ node.jsでシグナリングサーバを立てているか

リモート映像取得ができない
→ ネットワークを127.0.0.1のままにしていないか
#さいごに
HoloLensにWebRTCを導入することで遠隔操作の支援・ビデオ通話など様々な分野での利用が可能になります。
今回利用したMixedReality-WebRTCはPUBLIC PREVIEWではありますが、HoloLens開発におけるWebRTC導入を容易にしてくれるものとなっています。

11
9
4

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
11
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?