This repository contains the following sections:
Getting Started | Resources | FAQ | What's New | Road Map | Contribution Guidelines | Feedback Form
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.
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'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.
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.
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!
For more information about WinRTC, you may find some of these resources useful and interesting:
- Overview and live walkthrough of WinRTC: Build 2020 WinRTC Session
- Answering common questions from our community: Expert Q&A: WinRTC Open Source WebRTC Library
- The foundation of WinRTC: Google's WebRTC project
- Intuitive explanation of real time communication: Quick introduction to WebRTC
- Extensive blog about WebRTC fundamentals: HTML5 Rocks WebRTC Tutorial
- Collection of WebRTC tutorials: Kranky Geek WebRTC video series
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!
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
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.
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.
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.
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.
This project has adopted the Microsoft Open Source Code of Conduct.