WindowsでWebRTC Native Client Momoを使ってみる

これはWebRTC Native Client MomoをWindowsで動かした手順をまとめた記事です。
※手順については開発が進んだ段階で変更となるかもしれませんので現時点でのものとご理解ください。

目次

GitHubへのリンク

※Defaultのブランチを使わない点に注意(feature/cmakeを使う) github.com


02/06 update
単純にWindowsで動かしてみたい場合は以下リンクのReleaseから「momo-2020.2.1_windows-10.1809.zip」を取得して実行するのが良いです。
github.com


参考

セットアップの参考 https://github.com/shiguredo/momo/blob/feature/cmake/doc/SETUP_WINDOWS.md

実行の参考 https://github.com/shiguredo/momo/blob/feature/cmake/doc/USE_TEST.md

この記事はどこまで?

環境構築をして、Webカメラに映像が映るのを確認するまでです。

実行環境

今回はWebカメラ搭載のノートパソコンで実施しました。
Windowsのバージョンはこんな感じ。
Image from Gyazo

手持ちハードの都合上ゲーミングですが、そこまでハイスペックでなくても大丈夫かと思います。
映像配信なのでintel系CPUであることと、NVIDIAのグラフィックボードを搭載しているのが望ましそうです。

事前の事前準備

  • CMakeのインストール  cmake.org

  • VisualStudio2019のインストール  MSBuildはインストールしておくほうが良い。C++に関連する要素はインストール時に選択する。
    Image from Gyazo

  • 7zipのインストール  インストールしてパスを通しておく必要があります。

  • Make for Windowsのインストール  僕はほかの環境と同等のコマンドを使いたいのでインストールしました。
     gnuwin32.sourceforge.net

  • GitBashのインストール  Windowsでgitを使うときに一緒に入れることができるあれです。
     cmdやpowershellだとエスケープシーケンスを考えないといけないのでこっちを使ってます。
     gitforwindows.org

事前準備

  • gitコマンドを使ってクローンする
    コマンド:git clone -b feature/cmake clone用のリンク

ビルドする

~\momo\buildの中にあるbuild.batを実行してビルドします。
Image from Gyazo

ここでこける場合は、CMakeのパスが通ってないとか事前準備に失敗してしまっている場合が多いです。

動かすまで

接続先はSora Laboを使う

気軽に試せる環境であるところのSora Laboを使います。
sora-labo.shiguredo.jp

Sora Laboの使い方

- Sora Labo は商用目的で利用可能ですか?
  - 商用目的での利用できません
- Sora Labo をサービスに利用可能ですか?
  - Sora Labo は検証目的以外では利用できません
- Sora Labo は法人や個人事業主で利用できますか?
  - 法人や個人事業主での利用は申請が必須です
- Sora Labo はアカデミックで利用可能ですか?
  - アカデミックでの利用は申請が必須です
- Sora Labo は長時間接続しても問題ありませんか?
  - 長時間接続の利用は申請をお願いします

実行はこんなコマンドを使う

※使っているterminalでmomoを格納したフォルダに移動する
./momo --resolution VGA --no-audio --port 0 --use-sdl --show-me sora --auto --video-codec H264 --video-bitrate 1000 wss://sora-labo.shiguredo.jp/signaling "Channel IDをここに設定" --multistream --role upstream --metadata '{"signaling_key": "シグナリングキーをここに設定"}'

実際に入力したターミナルの画面はこんな感じ。
Image from Gyazo

Windowsの仕様に注意したい。 cmdやPowerShellを使っている場合シグナリングキーを指定している場所をエスケープしてあげないとうまく動かないことがあります。 参考 https://qiita.com/tokoroten-lab/items/291b463e45f422abd425

動いた

WindowsWebカメラで撮影したものをMacで接続したSoraLaboで確認。
Image from Gyazo

おわりに

パッと見Windowsはほかの環境と違い環境構築にハードルがあるかもしれませんが、基本的にはビルドに必要なものさえ用意できていればバッチ一つでビルド完了まで行くので楽でした。

Windowsのパス指定最大値問題があるので、ショートカットでパラメータを含めた起動にするよりはmakeを使って他のコマンドと同等に実行するのが今のところは良さそうに思いました。

また、Windowspowershellコマンドプロンプトの仕様でjson部分の指定をする時にはエスケープの指定をしてあげる必要があったりと詰まるポイントは多そうです。

今後何か変更があれば手順は更新していきたいなと思います。