Home

Awesome

🐙 Kimera (Alpha Work-in-Progress)

Low-latency hardware-accelerated codec-based video streaming utility.

Features

<p align="center"> <img src="https://github.com/luigifreitas/kimera/raw/master/assets/kimera_macos.png" /> </p>

Compatibility

Interfacing

OSDisplayScreen-CaptureNative Video SourceNative Video Sink
Linux✅ (GLFW)✅ (XCB)✅ (V4L2)✅ (V4L2)
macOS✅ (GLFW)✅ (AVFoundation)✅ (AVFoundation)
Windows✅ (GLFW)

Hardware Acceleration

TechnologyEncodeDecodeDescription
VideoToolBoxApple Devices (macOS & iOS)
NVENC/CUVIDModern Nvidia GPUs
OMXBroadcom SoC (Raspberry Pi)
VAAPIModern Intel CPUs

Installation

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.

Dependencies

Linux-Debian

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

macOS

You will need to compile Google's ANGLE OpenGL ES 3.0 for this to work on macOS. Thank Apple.

Compilation

$ 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

Usage

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

License

This module is distributed under a GPL-2.0 License.

Roadmap

This is a list of unfinished tasks that I pretend to pursue soon. Pull requests are more than welcome!