Let me duplicate post that I sent on ardupilot forum a few days ago (link>>). I didn’t get any answer there so I decided to raise same question there on px4pro forum. I still flying with ardupilot firmware but my question is related video decoder build in qground control.
My copter is regular quad with Pixhawk and Raspberry PI3 onboard connected to Android ground station tab thru LTE connection. Video feed is generated by PI cam and send thru UPD protocol to Qground Control. Everythink works fine telemetry and video are available for Qground Control but I have some problems with quality of decoded gstreamer pipeline on Qground Control. It`s look like there is something wrong with decoder build in Qground Control. Latency is fine but Qground control cannot decode pipeline well comparing to other Android based software.
Please take a look on video that I made a few days ago where you can find how it works on AirPI app and next, in the second part of movie in Qground Control. For this movie purposes I send SD quality signal to ground station to create video feed with then smallest latency.
click to watch movie>>
As you can see AirPI app decode gstreamer pipeline very well , Qground control displays many pixels and video feed is sometimes broken. Video is send out of mavlink directly from RPI to Qground control over UPD so in my opinion this is somethink wrong with build in decoder.
Video function on RPI side:
raspivid -n -w 864 -h 480 -b 750000 -fps 25 -t 0 -o - | \
gst-launch-1.0 --gst-debug-level=0 -v \
fdsrc ! \
h264parse ! \
rtph264pay config-interval=10 pt=96 ! \
udpsink host=xxx.xxx.xxx.xxx port=5600
UDP function on Qground control:
udpsrc port=5600 ! application/x-rtp, payload=96 ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! fpsdisplaysink sync=false text-overlay=false
Can you analize this case and let me know is this possible to improve this video decoder in Qground Control or suggest me better coding/decoding functions for both gstreamer and Qground control side.
Thanks in advance