https://github.com/bengreenier/webrtc
Prebuilt WebRTC binaries for Windows, Mac, and Linux. 🏗️🪄
https://github.com/bengreenier/webrtc
cpp native webrtc
Last synced: 12 months ago
JSON representation
Prebuilt WebRTC binaries for Windows, Mac, and Linux. 🏗️🪄
- Host: GitHub
- URL: https://github.com/bengreenier/webrtc
- Owner: bengreenier
- License: mit
- Created: 2022-07-13T19:56:12.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-06-04T21:55:13.000Z (almost 3 years ago)
- Last Synced: 2025-03-24T19:21:38.312Z (about 1 year ago)
- Topics: cpp, native, webrtc
- Language: JavaScript
- Homepage: https://github.com/bengreenier/webrtc
- Size: 128 KB
- Stars: 9
- Watchers: 5
- Forks: 3
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# webrtc
Prebuilt WebRTC binaries for Windows, Mac, and Linux. 🏗️🪄
[](https://github.com/bengreenier/webrtc/releases/latest)
[](https://github.com/bengreenier/webrtc/releases/latest)

I've been working with WebRTC for years; but it's always been a pain to build libraries for various modern desktop platforms.
Previously, [sourcey/webrtc-builds](https://github.com/sourcey/webrtc-builds) was a good place to get these, but it appears they're no longer publishing updated builds.
Anyway, I finally got around to setting this up myself, using CircleCI to produce builds for the following targets:
- Windows, x64
- Mac (Intel), x64
- Mac (Apple Silicon), arm64
- Linux, x64
__Both debug and release artifacts are produced__, and I've also packed up the various WebRTC tools and tests in seperate zips.
## Getting Started
Our releases are named after the WebRTC branch that we built; To determine the latest (stable, beta, etc) WebRTC branch, see [this Chromium dashboard](https://chromiumdash.appspot.com/branches).
### Windows
> Note: The windows libraries are MSVC compatible, meaning you can build and link with Visual Studio.
- Download [the latest Windows release](https://github.com/bengreenier/webrtc/releases/latest) to `vendor/webrtc`
- For all configurations, ensure your `LanguageStandard` is `stdcpp17`
- For all configurations, add `$(ProjectDir)vendor\webrtc\$(Configuration)` to your project's `LibraryPath`
- For all configurations, add `$(ProjectDir)vendor\webrtc\include;$(ProjectDir)vendor\webrtc\include\third_party\abseil-cpp;` to your project's `IncludePath`
- For your project's Release configuration, define `WEBRTC_WIN`, `NOMINMAX`, and `RTC_ENABLE_WIN_WGC`
- For your project's Debug configuration, define `WEBRTC_WIN`, `NOMINMAX`, `RTC_ENABLE_WIN_WGC`, and `_ITERATOR_DEBUG_LEVEL=0`
### Mac
- Download [the latest Mac release](https://github.com/bengreenier/webrtc/releases/latest) (for your given architecture, e.g. `x64` or `arm64`) to `vendor/webrtc`
- Add `vendor/webrtc/include` and `vendor/webrtc/include/third_party/abseil-cpp` to your include path
- Define `WEBRTC_MAC`, and `WEBRTC_POSIX`
- Link against `libwebrtc.a` from either `vendor/webrtc/debug` or `vendor/webrtc/release` depending on your desired configuration
### Linux
- Download [the latest Linux release](https://github.com/bengreenier/webrtc/releases/latest) to `vendor/webrtc`
- Add `vendor/webrtc/include` and `vendor/webrtc/include/third_party/abseil-cpp` to your include path
- Define `WEBRTC_POSIX`
- Link against `libwebrtc.a` from either `vendor/webrtc/debug` or `vendor/webrtc/release` depending on your desired configuration