We released a QGroundControl custom build extension for receiving and displaying iLive real-time video streams in QGC Flight View.
GitHub:
Demo video:
The motivation is straightforward: many UAV systems already use QGroundControl as part of their ground station workflow, and maintaining a heavily modified GCS can become expensive over time. We wanted to keep the upstream QGC checkout unchanged while adding a cleaner custom-build path for resilient video display under weak, unstable, or asymmetric wireless links.
Current scope:
QGroundControl v5.0.8 baseline
Linux x86_64 source build
1 to 8 iLive video streams
grid and primary-plus-thumbnails layouts
decoded BGRA/RGB24 frame rendering through the iLive C player API
stream URLs configured through local iLiveVideo.json
optional startup selection between iLive and QGC native GStreamer backend
upstream QGC checkout remains unchanged; composition happens in a separate worktree
The demo compares RTSP and iLive video playback in QGroundControl under controlled weak-network conditions.
Limitations:
this is not a runtime-loadable QGC plugin
the proprietary iLive SDK is not included and must be obtained separately
current release does not include remote bitrate control, stream-priority control, or iLive data/MAVLink bridging
To clarify, this repository provides only the auditable source integration
layer for a QGroundControl custom build. It does not distribute QGroundControl,
Qt, the proprietary iLive SDK, or a combined binary. The iLive SDK is obtained
separately and runs inside the QGC process, so it is an external binary trust
boundary. We have updated the documentation to make this boundary and the
attribution of QGC-derived files more explicit.
OEMs and integrators are responsible for licensing their final combination of
QGroundControl, Qt, the iLive SDK, and other dependencies. For proprietary
distribution, QGroundControl documents the intended path as QGC under
Apache-2.0 together with a valid Commercial Qt license:
Regarding GStreamer, v0.2.1 retains QGC’s native GStreamer backend and allows
either GStreamer or iLive to be selected at startup. General GStreamer
improvements are valuable and complementary.
The iLive backend is designed for resilient real-time video delivery under
moderate-to-poor and unstable network conditions, including packet loss,
jitter, bandwidth fluctuation, and severely bandwidth-constrained networks.
Its transport and recovery mechanisms are implemented by the separately
supplied iLive SDK, rather than as a replacement for or a simple
reconfiguration of QGC’s GStreamer pipeline. Actual performance depends on
the stream configuration, hardware, and network conditions.