/winrtc

The WinRTC project hosts everything needed to build apps with interoperable real time communications for modern Windows. It brings the power of WebRTC to modern Windows apps written in C#, C++ and VB. WinRTC enables real-time voice calling, video chat and data functionality (file transfer etc.) with web browsers via WebRTC.

Primary LanguageC++

Welcome to the WinRTC repo!

This repository contains the following sections:

Getting Started | Resources | FAQ | What's New | Road Map | Contribution Guidelines | Feedback Form


Overview

What is WinRTC?

The WinRTC project aims to host everything needed to build apps with interoperable real time communications for windows. It brings the power of WebRTC to Windows apps written in C#, C++ and VB. With WinRTC, native Windows apps can have real time communications with web browsers via WebRTC.

Build 2020 WinRTC Session

For an overview and live walkthrough of building with WinRTC please see our session from Build 2020!

Session Breakdown:

  • 00:00 to 11:30 - Excellent WinRTC overview, history, use cases and customer success stories from Dina Ayman, PM for WinRTC
  • 11:30 to 25:10 - Awesome end to end demo of using WinRTC in code from Augusto Righetto, Sr Engineer for WinRTC

WinRTC Architecture

WinRTC architecture

WinRTC's compatibility extends to .Net and RN4W, as well as UWP and Win32 applications. For more insight into the architecture, check out our frequently asked questions page.


Installing and running WinRTC

Patching WebRTC M84

As is, the WebRTC code base has a Win32 port that doesn't build for UWP. Get started with building WebRTC for Windows with the patches available in this repo. We recommend applying the M84 patch, which has the most recent security updates and features.

These patches are being contributed back. Some of these patches were already merged into their original repos, but didn't rolled over WebRTC yet.

Wrappers for WinRTC

The WebRtcWrapper folder contains an alpha version of WinRT wrappers for WebRTC. With these wrappers you'll be able to consume WebRTC functionality from any WinRT projection. Stay tuned for NuGet packages coming soon for these wrappers!


Resources

For more information about WinRTC, you may find some of these resources useful and interesting:


FAQ

Check out our frequently asked questions page which we will update periodically.

Have an urgent question and can't find the answer? Don't hesitate to ask!


What's New

July 2020 Update

A big goal for us this month was to improve the hardware accelerated capabilities for audio and video capture, rendering, encoders and decoders in WinRTC.

We'd like to thank everyone who filed a bug, gave feedback, or made a pull-request. The WinRTC team is extremely grateful to have the support of an amazing active community.

In our most recent update, we have:

  • Added port WebRTC-UWP H264 Encoder & Decoder over WinRTC
  • Added port WebRTC-UWP supporting Camera Profiles over WinRTC
  • Enabled libWebRTC built-in camera capture module for Arm64 devices
  • Created public documentation on GitHub wiki about how to change libWebRTC build system

For our next release, we are proactively working on:

  • Creating NuGet packages for WinRTC wrappers

Road Map

Coming soon!

We're in the midst of building our road map to showcase which features we'll be working on in the near-future. You can help by filing issues for features you'd like to see! For example, you can propose an idea for a new API. It's fine if you don't have all the details: you can start with a summary and rationale.

Contributing

We want to hear from you!

File a new issue! Tell us what problem you're trying to solve, how you've tried to solve it so far, and what would be the ideal solution for your app. Bonus points if there's a gist or existing repo we can look at with you.

Read more about the contribution guide here.

License Info

Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution.


Feedback

Did you find this page helpful? Let us know by providing your feedback.

You can also file an issue to report a bug or propose a new feature.


Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct.