Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/marshalx/python-webrtc
a Python extension that provides bindings to WebRTC M92
https://github.com/marshalx/python-webrtc
async asynchronous audio lib library ortp p2p python python-extension realtime rtc rtp srtp streaming voip webrtc webrtc-api webrtc-libraries webrtc-native
Last synced: 8 days ago
JSON representation
a Python extension that provides bindings to WebRTC M92
- Host: GitHub
- URL: https://github.com/marshalx/python-webrtc
- Owner: MarshalX
- License: other
- Created: 2022-01-03T09:34:59.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-08-14T15:52:41.000Z (about 1 year ago)
- Last Synced: 2024-10-19T07:15:24.536Z (19 days ago)
- Topics: async, asynchronous, audio, lib, library, ortp, p2p, python, python-extension, realtime, rtc, rtp, srtp, streaming, voip, webrtc, webrtc-api, webrtc-libraries, webrtc-native
- Language: Python
- Homepage: https://wrtc.rtfd.io
- Size: 285 KB
- Stars: 137
- Watchers: 7
- Forks: 8
- Open Issues: 106
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
- Security: SECURITY.md
Awesome Lists containing this project
README
A Python extension that provides bindings to WebRTC M92
Examples
•
Documentation
•
PyPI
## Python WebRTC
> Let's use the native WebRTC with strict compatibility and fully implemented stuff!
This project follows the [W3C specification](https://w3c.github.io/webrtc-pc/) with some modifications and additions to make it work better with Python applications, with useful APIs like programmatic audio and video.
## DISCLAIMER
This project is still under development and isn't ready for any serious use. In the current stage, it's possible to establish connection and work with audio, but many interfaces and methods not implemented yet.
You can easily check status of methods and interfaces availability [here](https://github.com/users/MarshalX/projects/1/views/1).
#### Snippet
```python
import asyncio
import webrtcasync def main():
pc = webrtc.RTCPeerConnection()stream = webrtc.get_user_media()
for track in stream.get_tracks():
pc.add_track(track, stream)audio_source = webrtc.RTCAudioSource()
track = audio_source.create_track()
pc.add_track(track)local_sdp = await pc.create_offer()
print(local_sdp.sdp)if __name__ == '__main__':
asyncio.run(main())
```### Requirements
#### Pre-built wheels:
- Python 3.7 or higher
- pip 21 or higher
- And compatible platform:
Linux
macOS
Windows
armv7l
arm64
x86_64
Intel
Apple Silicon
64bit
Python
3.7
N/A
N/A
✅
✅
N/A
✅
3.8
N/A
N/A
✅
✅
✅
✅
3.9
N/A
N/A
✅
✅
✅
✅
3.10
N/A
N/A
✅
✅
✅
✅
#### Building from sources (sdist):
- ~15 GB of free disk space
- CMake 3.14 or higher
- GCC 7.5 or higher
- glibc 2.18 or higher
- ARM toolchain (ARM only)_Full building instruction will be present later_
### Installing
Pre-built wheel:
``` bash
pip3 install --pre wrtc
```Build from sources:
``` bash
pip3 install --pre wrtc --no-binary wrtc
```### Documentation
The documentation is live at [readthedocs.io](https://wrtc.rtfd.io/).
### Getting help
You can get help in several ways:
- Report bugs, request new features by [creating an issue](https://github.com/MarshalX/python-webrtc/issues/new).
- Ask questions by [starting a discussion](https://github.com/MarshalX/python-webrtc/discussions/new).### Contributing
Contributions of any sizes are welcome.
### Special thanks to
- [Authors](https://github.com/node-webrtc/node-webrtc/blob/develop/AUTHORS) of [node-webrtc](https://github.com/node-webrtc/node-webrtc).
- Authors of [web-platform-tests](https://github.com/web-platform-tests/wpt).### License
The `python-webrtc` is published under the [BSD 3-Clause License](LICENSE.md).