Awesome
Summary
c++ Library for wifibroadcast video and telemetry streaming. \
Features
- Multiplexing and packet validation / encryption
- Zero latency overhead FEC video streaming (requires usage of c++)
- SIMD accelerated FEC (NEON on ARM, SSSE3 on x86)
- Advanced debugging and statistics (e.g. packet loss) see
- Simple examples to get started
- Basic unit tests for FEC
Getting started
Compiling
run sudo ./install_dep.sh
Compile with cmake (./build_cmake.sh)
Examples
NOTE: You need to first enable monitor mode on your card(s) and the card driver needs to support active and passive monitor mode (listening & injecting packets)
- example_hello: link
Bidirectional communication between air and ground unit - benchmark: link
Gives a quick overview over FEC and encryption / decryption performance on your platform - example_udp: link
Simple unidirectional UDP streaming application, can be used for rapid development and shows how you could create your own WB link with multiple unidirectional / bidirectional streams
For a more practical application, please check out OpenHD EVO !
Pre unify tx / rx
The design principle of running multiple instances of an application (e.g. wifibroadcast tx / rx) has a couple of disadvantages. It makes debugging quite hard (you now have multiple applications for video tx, video rx, and telemetry tx, telemetry rx), makes threading and sequencing harder and also increases latency on the tx with the udp & rtp approach. Doing more in c++ and less scripting makes it easy to solve those issues. However, if you want to use scripting / udp badly, checkout pre-unify-tx-rx