LoginSignup
2
1

More than 1 year has passed since last update.

WebRTC Momo送信 → Sora Laboシグナリング → Unity受信

Last updated at Posted at 2021-12-26

構成はタイトルのまんまです。
正しいやり方かどうかは分かりませんが、動かすことが出来たのでメモしておきます。2021/12/26現在の情報です。

Sora Laboの設定

ユーザー登録をして、シグナリングURLとシグナリングキーを確認しておく。(このあと使う)

送信側 momoの起動

momoを起動しWebカメラの映像を送出する。
momoを実行するPCにはWebカメラが接続されていることが前提。

Momoの起動オプション

./momo sora --signaling-url wss://node-01.sora-labo.shiguredo.jp/signaling --channel-id USERNAME@CHANNEL-ID --metadata '{"signaling_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}' --role sendonly

ここで、--signaling-url--metadata '{"signaling_key": "xxxxxxxxxxxxxxxxxxxxxx"}'xxxxxxxxxxxxxxxxxxxxxxの部分はSora Laboのページに表示された値を使う。
channel-idはSora Laboに登録したGitHubのユーザー名と@と任意の文字列の組み合わせ。
例えばcomoc@sora-test-channel

受信側 Unityの設定とプレイ

SoraSample.csスクリプトの修正

2021/12/26時点のGitHubのmasterブランチのSoraSample.csスクリプトでは、DataChannelMessagingと記述すべき部分が DataChannel になっているので、DataChannelMessagingに置換する。またconfig.DataChannelsconfig.DataChannelMessagingに置換する。

recvonlyシーンを開く

Sora Unity SDK Samplesプロジェクトを開き、recvonlyシーンを読み込む。

Scriptの設定

HierarchyからScriptを選択し、InspectorからSignaling UrlChannel IdSignaling Keyの3か所に、momoで指定したものと同じ値を入力する。

実行

エディタのPlayボタンを押した後、「開始」ボタンを押す。
うまく行けば、このスクショのように、送出側のカメラ映像が表示される。
image.png

Linuxで ffmpeg で任意の映像ソースを仮想ビデオデバイス /dev/videoN にして momo から送出

手元にビデオデバイスがない(動画ファイルならある)ときに使える技。

ffmpegを使って再生

例. VIDEOFILE.mp4/dev/video2 のソースにする。

ffmpeg -re -stream_loop -1 -i VIDEOFILE.mp4 -map 0:v -f v4l2 /dev/video2

オプションの意味
* -reはフレームレートを維持
* -stream_loop -1 は無限ループ
* -map 0:v はビデオだけ抽出
* -f v4l2 v4l2のフォーマットを強制

momo で /dev/videoN をビデオデバイスとする。解像度は4Kにしてみる

momo --video-device="/dev/video2" --resolution 4K sora --signaling-url wss://node-01.sora-labo.shiguredo.jp/signaling --channel-id USERNAME@CHANNEL-ID --metadata '{"signaling_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}' --role sendonly

-video-device="/dev/video2" ビデオデバイスを指定。(このオプションを指定する順番をいろいろ試してみたところmomoの直後ならば動くようだ)
--resolution 4K 解像度を4Kにする。

Unity側のRawImageに設定されているテクスチャの解像度が640x480に固定されていたので、SoraSample.csを改造して3840,2160にしないとぬるい画になってしまう。

以上。

2
1
0

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
2
1