- β‘ Low-latency (~35ms).
- π¦ Multi-Platform (Linux, macOS, Windows).
- π Low-overhead with Hardware Acceleration.
- πΌοΈ Works with any codec (HEVC, AVC, VP9, VP8, AV1).
- 𧳠Supports multiple transport streams (UDP, TCP, UNIX, GNURadio).
- π Encrypted tunnel between TCP peers (TLS v1.3).
OS | Display | Screen-Capture | Native Video Source | Native Video Sink |
---|---|---|---|---|
Linux | β (GLFW) | β (XCB) | β (V4L2) | β (V4L2) |
macOS | β (GLFW) | β (AVFoundation) | β (AVFoundation) | β |
Windows | β (GLFW) | β | β | β |
Technology | Encode | Decode | Description |
---|---|---|---|
VideoToolBox | β | β | Apple Devices (macOS & iOS) |
NVENC/CUVID | β | β | Modern Nvidia GPUs |
OMX | β | β | Broadcom SoC (Raspberry Pi) |
VAAPI | β | β | Modern Intel CPUs |
Pre-compiled binary packages will be available once this app reaches beta. For now, if you want to try the pre-release version of the app, you should compile it yourself by following the instructions below.
- C++17 Compiler
- GLFW
- OpenGL ES >3.0 or OpenGL >3.3
- LibAV >12.3
- CMake >3.13
- XCB (For Linux)
- Xcode Toolchain (For macOS)
This list will be reduced once Meson is implemented in the next version.
$ sudo apt install libavcodec-dev libavfilter-dev libavutil-dev libavformat-dev libglfw3-dev libyaml-dev libssl-dev build-essential cmake git pkg-config python3 python3-pybind11 python3-dev libwebsocketpp-dev libboost-all-dev
You will need to compile Google's ANGLE OpenGL ES 3.0 for this to work on macOS. Thank Apple.
$ git clone --recursive https://github.com/luigifreitas/kimera.git
$ cd kimera
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ make -j
$ sudo make install
Create a server with the /dev/video0
as input and localhost TCP as output.
$ kimera tx ../examples/linux.yml
Receive the video from the TCP server and display it on the screen.
$ kimera rx ../examples/linux.yml
This module is distributed under a GPL-2.0 License.
This is a list of unfinished tasks that I pretend to pursue soon. Pull requests are more than welcome!
- Replace current render with
librender
. - Replace CMake with Meson.
- Better WebCodecs support.
- Add WebTransport module.