{"id":20776917,"url":"https://github.com/introlab/webrtc-native-build","last_synced_at":"2026-03-06T07:03:06.622Z","repository":{"id":40782106,"uuid":"347997580","full_name":"introlab/webrtc-native-build","owner":"introlab","description":"Native build of Google's webrtc library.","archived":false,"fork":false,"pushed_at":"2024-12-17T19:53:03.000Z","size":211,"stargazers_count":33,"open_issues_count":2,"forks_count":11,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-28T20:51:42.046Z","etag":null,"topics":["binary","build","introlab","webrtc"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/introlab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-03-15T14:16:57.000Z","updated_at":"2025-08-25T03:12:27.000Z","dependencies_parsed_at":"2024-04-09T21:37:16.065Z","dependency_job_id":"94f9006b-8890-4cd8-84e5-6ea34dba9ff7","html_url":"https://github.com/introlab/webrtc-native-build","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/introlab/webrtc-native-build","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/introlab%2Fwebrtc-native-build","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/introlab%2Fwebrtc-native-build/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/introlab%2Fwebrtc-native-build/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/introlab%2Fwebrtc-native-build/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/introlab","download_url":"https://codeload.github.com/introlab/webrtc-native-build/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/introlab%2Fwebrtc-native-build/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30164901,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T04:43:31.446Z","status":"ssl_error","status_checked_at":"2026-03-06T04:40:30.133Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["binary","build","introlab","webrtc"],"created_at":"2024-11-17T13:12:51.573Z","updated_at":"2026-03-06T07:03:06.592Z","avatar_url":"https://github.com/introlab.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# webrtc-native-build\n\nNative build of Google's webrtc library. The library is also packaged with BoringSSL and libyuv.\n\n* [WebRTC](https://webrtc.org/) is a standard for real-time audio/video/data communication and is mostly used in web browsers.\n* [BoringSSL](https://github.com/google/boringssl) is a fork of OpenSSL that is designed to meet Google's needs.\n* [libyuv](https://chromium.googlesource.com/libyuv/libyuv/) is an open source project that includes YUV scaling and conversion functionalities.\n\n## License\nBy default, libwebrtc is built with non-free codecs. To build without them, change the following flags in [generate_ninja_files.bash](3rdParty/webrtc_native/generate_ninja_files.bash) and [generate_ninja_files.bat](3rdParty/webrtc_native/generate_ninja_files.bat).\n\n```bash\nrtc_use_h264=false\nproprietary_codecs=false\nffmpeg_branding=\"Chromium\"\n```\n\n## Dependencies (Linux)\n```bash\nsudo apt-get install ninja-build cmake build-essential libssl-dev libboost-all-dev\nsudo apt-get install libglib2.0-dev libgtk-3-dev libpulse-dev libasound2-dev\n\n# For cross compiling\nsudo apt-get install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu\nsudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf\n```\n\n## Dependencies (Mac)\n```bash\n# XCode and homebrew must be installed first.\nbrew install ninja\n```\n\n## Building\n\n```bash\n# Create build directory\nmkdir build\n# Go to build directory\ncd build\n# Run CMake with arguments\ncmake ../ [-DCMAKE_BUILD_TYPE=Release|Debug] [-DCMAKE_BUILD_ARCHITECTURE=arm32|arm64|amd64|win64|osx64]\n# Parallel build\nmake -j\n# will copy to dist directory\nmake install\n```\n\n## Building on Windows\nBuilding on Windows is not supported yet for recent versions of WebRTC.\nYou can submit a PR to help with this if you wish.\nIf you want to build on Windows, you can use the tag `4389.e7d9f7.130`.\nThere is also a prebuilt version of the library available in the releases section on GitHub.\n\n### Dependencies\n* [Ninja](https://github.com/ninja-build/ninja/releases)\n    * Copy `ninja.exe` in `3rdParty/webrtc_native/`\n* [CMake](https://cmake.org/download)\n* [Git](https://git-scm.com/download/win)\n* [Python](https://www.python.org/downloads)\n* [MSVC 2022 Build Tools](https://visualstudio.microsoft.com/fr/downloads/)\n* Windows SDK 10.0.20348.0 (make sure that it is checked while installing MSVC)\n* Windows SDK Debugging Tools\n    1. Navigate to `Control Panel` -\u003e `Programs` -\u003e `Programs and Features`\n    2. Right-click on `Windows Software Development Kit`, and choose `Change`\n    3. Select `Change` and click `Next`\n    4. Check the box for `Debugging Tools for Windows` and click `Change`\nMake sure to check `Add to PATH` for everything you install\n\n### Setup\n* Create a copy of your `\u003cpython_dir\u003e/python.exe` executable as `\u003cpython_dir\u003e/python3.exe`.\n* Make sure that `python`, `python3`, `cmake` and `git` are in your path.\n* Make sure the registry entry `HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\FileSystem::LongPathsEnabled` is set to `0x1`\n* Launch a `CMD` prompt as Administrator, and execute `git config --system core.longpaths true`\n\n### Building\nUsing a CMD prompt (not tested with `powershell` or `git-bash` or any other shell)\n```powershell\n# Create build directory\nmkdir build\n# Go to build directory\ncd build\n# Run CMake with arguments\ncmake .. -G \"Ninja\" [-DCMAKE_BUILD_TYPE=Release|Debug]\n# Parallel build\nninja\n# Copy to dist directory\nninja install\n# Generate a zip archive in build/\nninja package\n```\n### Important notes\n* You might have trouble building if your system is not in English\n* You might have trouble building if the full path to `python.exe` has at least one space in it\n\n### Consuming the library\nOn Windows, you will have to link any target that consumes this library to these additional Windows libraries:\n* `secur32`\n* `winmm`\n* `dmoguids`\n* `wmcodecdspuuid`\n* `msdmo`\n* `strmiids`\n* `iphlpapi`\n\n\nIf you don't link against these libraries, your linker might see missing symbols like these ones:\n* `__imp_timeGetTime`\n* `__imp_timeKillEvent`\n* `__imp_timeSetEvent`\n* `__imp_timeBeginPeriod`\n* `__imp_timeEndPeriod`\n* `CLSID_CWMAudioAEC`\n* `IID_IMediaObject`\n* `IID_IMediaBuffer`\n* `MoInitMediaType`\n* `MoFreeMediaType`\n* `InitializeSecurityContextA`\n* `AcquireCredentialsHandleA`\n* `__imp_FreeCredentialsHandle`\n* `CompleteAuthToken`\n* `__imp_DeleteSecurityContext`\n\n## How to use a new version?\n1. Fetch WebRTC Code\n```bash\nmkdir build\ncd build\ncmake .. -DCMAKE_BUILD_TYPE=Release\n```\n2. Find the new `branch-head-number`\n    1. Open Chrome\n    2. Open the following URL [chrome://settings/help](chrome://settings/help)\n    3. The new `branch-head-number` is the third number of the version (Version 120.0.6099.109 --\u003e `branch-head-number` = 6099)\n3. Find the commit hash\n```bash\ngit checkout branch-heads/\u003cbranch-head-number\u003e\ngit rev-parse HEAD\n```\n4. Update the version (see the next section)\n    1. Update the hash and version in the [CMakeList.txt file](3rdParty/webrtc_native/CMakeLists.txt#L1-L2)\n    2. Update the [VERSION file](VERSION)\n\n## Versioning Scheme\n\n`branch-head-number`.`first-6-digits-of-webrtc-commit-hash`.`patch-number`\n\nTo find the `patch-number` for a given `branch-head-number`, use the following web page:\n`https://chromium.googlesource.com/chromium/src/+/branch-heads/\u003cbranch-head-number\u003e/chrome/VERSION`\n\n## Dropped support\n\n### MacOS 10.15 Catalina\nGitHub Actions dropped support for MacOS 10.15 Catalina.\nHowever, the latest tag might still work to build under MacOS 10.15.\nThere are also prebuilt versions of the library available in the releases section on GitHub, for tag version `5039.5df5b1.1` and earlier.\n\n## Authors\n\n* Marc-Antoine Maheux (@mamaheux)\n* Dominic Létourneau (@doumdi)\n* Philippe Warren (@philippewarren)\n\n## License\n\n* [Apache License, Version 2.0](LICENSE)\n\n## Sponsor\n\n![IntRoLab](https://introlab.3it.usherbrooke.ca/IntRoLab.png)\n\n[IntRoLab - Intelligent / Interactive / Integrated / Interdisciplinary Robot Lab](https://introlab.3it.usherbrooke.ca)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintrolab%2Fwebrtc-native-build","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fintrolab%2Fwebrtc-native-build","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintrolab%2Fwebrtc-native-build/lists"}