This repository has been archived by the owner on Mar 22, 2022. It is now read-only.
MixedReality-WebRTC 1.0.0 RC1
Pre-release
Pre-release
The is a release candidate for the first stable release of MixedReality-WebRTC.
NuGet packages
C# Library
- Desktop : Microsoft.MixedReality.WebRTC
- UWP : Microsoft.MixedReality.WebRTC.UWP
C++ Library
- Desktop : Microsoft.MixedReality.WebRTC.Native.Desktop
- UWP : Microsoft.MixedReality.WebRTC.Native.UWP
Supported platforms
C++/C#
- Windows Desktop (x86, x64)
- Windows UWP (x86, x64, ARM32) including HoloLens 1 and HoloLens 2
Unity 2018.3+
- In-editor x64
- Standalone Desktop (x86/x64) via IL2CPP backend
- Standalone UWP (x86/x64/ARM32) via IL2CPP backend, including HoloLens 1 and HoloLens 2
Features
MixedReality-WebRTC is configured by default to use the Unified Plan SDP semantic.
Peer connection
Each peer connection supports peer-to-peer (1:1) communication only. There is no support for multi-peer (1:N) connections.
- Multiple peer connections per process
- Single local audio track per peer connection
- Single local video track per peer connection
- Single remote audio track per peer connection
- Single remote video track per peer connection
- Multiple data channels per peer connection
Signaling
- Abstracted (bring-your-own) signaling solution through
PeerConnection
events.
Video tracks
- H.264 hardware-accelerated encoding (UWP only; including HoloLens 1 and HoloLens 2)
- Software VP8, VP9 codecs
- Local video track mute (produces black frames)
Local video capture
- Video capture device and video capture format enumeration
- Video profile selection (UWP only)
- Optional capture resolution and/or framerate constraints
- Mixed Reality Capture (where available)
- On-screen recording indicator for MRC (where available)
Audio tracks
- Standard WebRTC audio codecs : OPUS, iSAC, G.722, iLBC, PCM (μ-law and A-law), Comfort Noise
- Local audio track mute (produces silence)
Local audio capture
No exposed device selection or configuration.
Data channels
- Ordered/unordered, reliable/unreliable data channels
Known issues
- (#74, #101) Video freezes and/or low video quality using the H.264 hardware encoder
- (#89)
PeerConnection.AddDataChannelAsync()
is not multi-thread safe - (#92) Audio data not exposed to C# and Unity
- (#75) SDP always negotiates both audio and video even if no track was added
- (#95) Race condition sometimes lead to deadlock in WebRTC task queues initializing on UWP