liburtc (μRTC or microRTC) is a minimal WebRTC library for embedded systems and microcontrollers. It is lightweight, portable, and free.
In contrast to other WebRTC implementations, it aims to be nimble, with a small footprint, minimal dependencies, and simple build process. It does not aim to implement all parts of WebRTC, but rather only those commonly used within embedded devices, such as IP cameras. For instance, H.264 is the only supported video codec, and there is no support for software acoustic echo cancellation (AEC).
Getting Started
git clone https://git.liburtc.org/liburtcBrowse git: master
Design Goals
- Single local video track (ITU-T H.264 codec only)
- Single local audio track (ITU-T G.711 / Opus)
- Answer only (no
createOffer
support) - Data channels support
- Trickle ICE support
- STUN support for server reflexive candidate discovery
- NACK retransmission
- Congestion control
- Ephemeral mDNS host candidates and mDNS server
- Event-loop concurrency model
- Small footprint (<100KB)
- Minimal dependencies (only libcrypto for DTLS and RTP encryption)
- Autotools build system
- ANSI C99 implementation
- BSD license