c++ Library for wifibroadcast video and telemetry streaming. \
- 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
run sudo ./install_dep.sh
Compile with cmake (./build_cmake.sh)
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
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