A modular C++20 toolkit for real-time media, WebRTC, and networking, combining FFmpeg, libuv, and libdatachannel into a single runtime.
Icey is a modular C++20 toolkit that provides a complete real-time media stack, acting as a lightweight alternative to Google's libWebRTC. It integrates FFmpeg for media processing, libdatachannel for WebRTC transport, and libuv for networking into a single, cohesive runtime model. It solves the problem of dependency hell and complex build systems often associated with building real-time media applications.
C++ developers building real-time communication systems, media servers, video streaming applications, or those needing a self-hosted WebRTC solution without Google's monolithic stack.
Developers choose Icey for its modular design, fast build times, and comprehensive feature set that includes built-in signalling and TURN server. It offers a cleaner, more integrated alternative to assembling disparate libraries like libWebRTC, FFmpeg, and libuv separately.
Real-time media stack and lightweight libwebrtc alternative, built in C++20
The PacketStream architecture enables efficient media processing with explicit backpressure and frame-dropping control, minimizing memory overhead as highlighted in the README's pipeline examples.
Includes Symple for WebRTC signalling and a production-grade RFC 5766 TURN server, eliminating external dependencies for NAT traversal and simplifying real-time communication setups.
Benchmarks show 72,209 req/sec, outperforming Go's net/http by 34%, due to integration with libuv and llhttp, as documented in the HTTP performance section.
Leverages FFmpeg for capture, encoding, and decoding, supporting a wide range of media formats without vendor lock-in, as emphasized in the comparison table.
Requires system dependencies like FFmpeg and OpenSSL to be correctly installed and detected; auto-detection helps, but conflicts with existing versions can lead to build issues.
Compared to established alternatives like GStreamer, Icey has a smaller contributor base and fewer third-party resources, which may slow down bug fixes and feature development.
Demands deep understanding of WebRTC, media pipelines, and async networking, with documentation focused more on examples than beginner tutorials, as seen in the sample-heavy approach.
icey is an open-source alternative to the following products:
GStreamer is a pipeline-based multimedia framework that enables the creation of applications for handling audio and video streams, including playback, recording, editing, and streaming.
libwebrtc is an open-source library that provides WebRTC (Web Real-Time Communication) functionality, enabling audio, video, and data communication between web browsers and applications.
Simple DirectMedia Layer
Simple and Fast Multimedia Library
A cross-platform multimedia framework based on Qt and FFmpeg. 基于Qt和FFmpeg的跨平台高性能音视频播放框架. Recommand to use new sdk https://github.com/wang-bin/mdk-sdk
TagLib Audio Meta-Data Library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.