Home

Awesome

WebRTC UWP SDK

This project has been deprecated

We are currently focusing our efforts on getting out of the fork business. This effort is happening in the WinRTC GitHub repo. Keeping WebRTC-UWP fork doesn't allow us to move fast enough. We are contributing back the changes needed to build WebRTC.org code base for UWP. Here are some of the changes we're contributing back:

Besides the new video capturing module that is being reviewed, we're also creating a new audio capturing module. There are more changes in the pipeline to be contributed back and more changes required for finishing the port. After having WebRTC.org code base compatible with UWP, we're going to work on a WinRT abstraction layer allowing easy consumption of WebRTC capabilities by WinRT projections.

That said, keep in mind we are contributing back the changes and we have no control over when/if the changes will be accepted by their teams.

Overview

This repository and the linked subrepos contains all the source and sample applications for the WebRTC UWP SDK. For additional documentation see webrtc-uwp.github.io.

Cloning

From your terminal, recursively clone this repo to obtain all the source code & dependencies needed to build WebRTC for UWP:

git clone --recursive https://github.com/webrtc-uwp/webrtc-uwp-sdk

Directory Structure

DirectoryDescription
webrtc-uwp-sdk\scriptsscripts for preparing an environment for Windows
webrtc-uwp-sdk\commonsamples applications (AppRTC and PeerCC)
webrtc-uwp-sdk\webrtcWebRTC code - builds as Org.WebRtc.dll
webrtc-uwp-sdk\docsdocumentation

Prerequisites

Known Issues

Building the SDK

Several build options, including NuGet package creation, are available through command line scripts or Visual Studio. For more information see the webrtc-scripts repo. The simplest method to build the SDK and PeerCC sample in Visual Studio is described below.

  1. Open the solution webrtc-uwp-sdk\webrtc\windows\solutions\WebRtc.Universal.sln in Visual Studio
  2. To build whole solution or to build PeerConnectionClient.WebRtc, before native and wrapper libs are built it is necessary to change VS2017 settings (Tools->Options->Project and Solutions->Allow parallel projects initialization uncheck it).
    • Note this is no longer necessary as of VS 15.9.7
  3. Right click the PeerConnectionClient.WebRtc project and choose Set as Startup Project
  4. Choose processor architecture
  5. Hit F5

Unity Video Rendering on HoloLens

Unity build requirements

Running Unity Peer Connection Client application on HoloLens device (or HoloLens simulator)

  1. Open webrtc\windows\solutions\WebRtcUnity.sln solution, select x86 platform and build PeerConnectionClientUnityCore project. The build procedure produces WebRTC libraries, WebRTC for UWP wrapper component and deploys WebRTC and Peer Connection Client Core libraries to the Unity project space.
  2. Open Unity project `common\windows\samples\PeerCC\ClientUnity' in Unity Editor
  3. Go to 'File' -> 'Build settings...', select 'Universal Windows Platform', click on the 'Build' button and choose an export folder
  4. Add the following XML block to generated manifest file PeerCCUnity\Package.appxmanifest:
  <Extensions>
    <Extension Category="windows.activatableClass.inProcessServer">
      <InProcessServer>
        <Path>WebRtcScheme.dll</Path>
        <ActivatableClass ActivatableClassId="WebRtcScheme.SchemeHandler" ThreadingModel="both" />
      </InProcessServer>
    </Extension>
  </Extensions>
  1. Open PeerCCUnity.sln from export folder, build PeerCCUnity project and run the application on the device