MixedReality-WebRTC は、複合現実アプリ開発者がピアツーピアのリアルタイム音声およびビデオ通信をアプリケーションに統合し、コラボレーション エクスペリエンスを向上させるのに役立つライブラリのコレクションです。
MixedReality-WebRTC は、Mixed Reality 共有チームによって開発および保守されているリポジトリのコレクションの一部です。
MR-WebRTC は非推奨になりました。私たちは、開発リソースをそれにコミットしたり、プル リクエストを受け取ったり、代替を計画したりすることはもうありません。
NuGet (C++、C#) および UPM (Unity) パッケージは、安定版リリース ( release/*
ブランチ) で利用できます。詳細については、GitHub のリリース ページまたはドキュメントのダウンロード ページを参照してください。
注: master
ブランチには、最新の安定リリースからの API の重大な変更が含まれている可能性があります。したがって、安定版リリースでのみ利用できる NuGet パッケージでの動作は保証されていません。特に、Unity ライブラリ スクリプトは、 release/*
ブランチからコピーされた場合にのみ NuGet パッケージとの互換性が保証されますが、代わりに UPM パッケージを使用することを強くお勧めします。
release/2.0
ブランチには API の最新の安定バージョンが含まれており、そこから NuGet および UPM パッケージが公開されます。
master
ブランチには最新の開発内容が含まれています。このブランチをかなりクリーンな状態に保つように注意が払われています (ブランチはビルドでき、テストは合格します)。ただし、 master
ブランチには最新リリースと比較して API の重大な変更が含まれているため、NuGet/UPM パッケージと互換性がなく、代わりにソースからビルドする必要があります (ソースからのビルドに関するドキュメントを参照してください)。
公式ドキュメントは https://microsoft.github.io/MixedReality-WebRTC/ でホストされています。
ユーザー マニュアルには、プロジェクトのさまざまなライブラリの概要と、それらの使用方法に関するいくつかのチュートリアルが含まれています。
API リファレンスは、C# ライブラリと Unity 統合に利用できます。
全体的なアーキテクチャは次のとおりです。
図書館 | ラング | 説明 |
---|---|---|
mrwebrtc | C/C++ | Google の基盤となる WebRTC 実装への低レベル インターフェイスを提供するネイティブ C/C++ ライブラリ。 Google 実装 ( PeerConnection ) によって公開されている API と比較して、現在のインターフェースはセットアップと構成の負担を軽減するために簡素化されています。また、UWP ラッパーでよくあるスレッド エラーの防止も試みます。このライブラリは、任意の C/C++ アプリケーションに簡単に統合できる純粋な C API を公開します。 |
Microsoft.MixedReality.WebRTC | C# 7.3 | C# .Net Standard 2.0 ライブラリは、ネイティブ C ライブラリと同じ API へのアクセスを提供し、 async / await やTask などの使い慣れた C# 概念で公開されています。 |
Microsoft.MixedReality.WebRTC.Unity | C# 7.3 | Unity3D 統合 - セットアップがほとんど不要な Unity MonoBehaviour コンポーネントのセットで、迅速なプロトタイピングを可能にし、既存のアプリへの統合を簡素化します。 |
Microsoft.MixedReality.WebRTC.Unity.Examples | C# 7.3 | ピアツーピア ビデオ チャット アプリなどの一般的な使用シナリオを紹介する Unity3D サンプル。 |
MixedReality-WebRTC は現在、Windows 10 デスクトップと UWP、Unity の有無にかかわらず、Android (Unity のみ) で利用できます。
注- 以下およびこのリポジトリの他の場所では、「Win32」という用語は、デスクトップ アプリケーション開発用の歴史的な Windows API である「Windows デスクトップ」の同義語として、および「Windows UWP」API の対義語として使用されます。ただし、Windows SDK 17134 (April 2018 Update、1803) を適用した Windows 10 より古い Microsoft Windows バージョンは、このプロジェクトでは正式にサポートされていません。特に、古いバージョンの Windows (Windows 7、Windows 8 など) は明示的にサポートされていません。
このリポジトリは、階層を標準化するために Pitchfork レイアウトに従っています。
bin/ # Binary outputs (generated)
build/ # Intermediate build artifacts (generated)
docs/ # Documentation sources
+ manual/ # User manual sources
examples/ # Examples of use and sample apps
external/ # Third-party external dependencies (git submodules)
libs/ # Source code for the individual libraries
tests/ # Source code for feature tests
tools/ # Utility scripts
+ build/ # Build scripts for the various platforms
+ android/ # Android Studio project to build libmrwebrtc.so
+ libwebrtc/ # Android build scripts for Google's WebRTC library
+ mrwebrtc/ # Windows build tools to build mrwebrtc.dll
+ ci/ # CI Azure pipelines
リポジトリのルートにあるMicrosoft.MixedReality.WebRTC.sln
Visual Studio 2019 ソリューションには、いくつかのプロジェクトが含まれています。
mrwebrtc
:mrwebrtc-win32
プロジェクトを使用した Windows デスクトップの場合mrwebrtc-uwp
プロジェクトを使用した UWP の場合mrwebrtc-win32-tests
Microsoft.MixedReality.WebRTC
Microsoft.MixedReality.WebRTC.Tests
Microsoft.MixedReality.WebRTC.TestAppUWP
は、単純なビデオ チャット アプリによるオーディオ / ビデオ / データ通信を示します。注- 現在、CI の制限により、一部のプロジェクトは VS 2017 にダウングレードされています。これは、 master
ブランチとrelease/1.0
ブランチが構築されている Google M71 マイルストーンが VS 2019 をサポートしておらず、Azure DevOps CI エージェントが複数の Visual Studio バージョンをサポートしていないためです。同じエージェントです。これは最終的に VS 2019 に戻される予定です (#14 を参照)。
ユーザーマニュアルのソースからの構築に関するセクションを参照してください。
VideoRecording
やVideoConferencing
などの別のビデオ プロファイルを使用する必要があります。 WebcamSrouce.FormatMode = Automatic
(デフォルト) の場合、これは Unity 統合レイヤー (こちらを参照) で自動的に処理されますが、C# ライブラリを直接使用する場合は手動で処理する必要があります。screenDuplication
制限付き機能に対応し、サードパーティ アプリケーションでは取得できません。つまり、MRC は共有アプリでは利用できません。これは OS の制限です。PreferredVideoCodec = "H264"
を使用してください。 VP8 または VP9 コーデックなどを使用したソフトウェア エンコーディングは、CPU に非常に負荷がかかるため、使用しないことを強くお勧めします。 現在のバージョンはパブリック プレビューであり、次の既知の問題が含まれています。
Microsoft.MixedReality.WebRTC.Native
NuGet パッケージ (v1.x) には、Google リポジトリの一部の WebRTC ヘッダーが含まれています。これらは NuGet パッケージ自体には同梱されていませんが、代わりにこのリポジトリとその依存関係のクローンを作成する必要があります。 (#123を参照)。さらに、WebRTC コア実装のデバッグ構成では、一部のハイエンド PC を含むほとんどのデバイスでパフォーマンスの問題が発生することが知られています。通常、コア WebRTC 実装のリリース構成を使用するとこれが防止されるため、デバッグしない場合には使用することを強くお勧めします。
このプロジェクトはマイクロソフトのオープンソース行動規範を採用しています。詳細については、「行動規範に関するよくある質問」を参照するか、追加の質問やコメントがあれば [email protected] までお問い合わせください。
MixedReality-WebRTC は、Google が提供する WebRTC 実装に基づいて構築されています。この実装に関連するセキュリティ上の問題とバグは、Google に報告する必要があります。
MixedReality-WebRTC 自体または WebRTC UWP SDK に関連するセキュリティの問題とバグは、電子メールで Microsoft セキュリティ レスポンス センター (MSRC) [email protected] に非公開で報告する必要があります。 24 時間以内に返信が届くはずです。何らかの理由で届かない場合は、元のメッセージを受信したことを確認するために電子メールでフォローアップしてください。 MSRC PGP キーを含む詳細情報は、Security TechCenter で参照できます。