How to setup a Mission Planner HD-Video HUD using GStreamer and Mission Planner plugins

This blog is a continuation of my previous post.

How to build a High-Definition FPV UAV using a Rasperry PI with HD ...

This post will discuss how to use GStreamer and Mission Planner together to display the HD video with a HUD (Head-Up-Display).

Note: I have only tested this feature on Windows so the instructions given here are for Windows only. 

To give proper credit, the HUD created here was borrowed from APM Planner, a Qt-Based app similar to Mission Planner. The HUD part was created from the Qt codebase QML HUD created by Bill Bonney who is on the APM Planner development team. To make the HUD work with the background video, I used a GStreamer library called "QtGStreamer" which integrates GStreamer plugins with painting on a Qt widget.  This library is available on the GStreamer website.

The end-result is dynamically added to Mission Planner using the plug-in architecture. 

In the previous posts I discussed used a Raspberry PI and a High-speed WiFi link using GStreamer on the PI and the ground station PC.  To get the HUD to work, you need to already have a successful link with the video on your ground station. 

Here are the steps to follow to install the plugin:

1) Install Mission Planner.

2) Download and install GStreamer from this link.  Use the x86 version, the x86_64 version will NOT work. (Use the default path 'C:\GStreamer' when installing). When installing GStreamer, select 'Custom' install and select ALL plugins to be installed.

3) Follow the steps in the previous blog noted above to get your video stream working.

4) Download and the MSI installer from this link. and run the installer.

If all went well, you should have the plugin installed.

Open Mission Planner and navigate to the "Flight Data" page and right-click on the map. You should see a menu item called "GStreamer HUD" as shown below:

Select this menu item and the following screen should appear:

In the upper-left corner is a context menu. Here is where you enter your GStreamer Pipeline string. If you had the video displaying without the HUD using a valid pipeline, enter it here.

Note: The GStreamer Pipeline string should be exactly the same as the string you used before, but WITHOUT the final video sink element. The video sink is the QtGStreamer element which will be added automatically by the plugin. The GStreamer pipe should therefore be the same, except remove the last element for the video sink.

Here is an example string I used on my setup:

udpsrc port=9000  buffer-size=60000 ! application/x-rtp,encoding-name=H264,payload=96 ! rtph264depay ! h264parse ! queue ! avdec_h264

If all is well, you can connect to your UAV and see the HUD elements moving.  To change the HUD, right click on the display and select which elements you want to display. The default is to display everything shown here. 

If anybody has problems, please post back and I'll update the blog in case I missed something, and you cannot get it to work.

Happy Flying!

Views: 49589

Comment by Dan Murray on November 5, 2014 at 12:04pm

Holy F! Is this new? I have been using a GS pipeline for a while and just putting the window off to the side. This is awesome!

Comment by Dan Murray on November 5, 2014 at 12:05pm

Doh - I got so excited I didn't even read the whole thing. This is awesome - can't wait to test it.

Comment by Patrick Duffy on November 5, 2014 at 12:08pm

@Dan, I just finished the development work on this a few days ago. This is a 'beta', please let me know of any issues, or if it affects your performance/latency. Have fun.

Comment by RatFeet on November 5, 2014 at 2:50pm

Patrick, this is pretty cool. I'll be testing your previous Raspberry Pi posts and this one tomorrow onwards and will post my findings.

I am also interested to stream Telemetry and Video over 3G/4G (Raspberry Pi with APM/Pixhawk). I have read some posts earlier but haven't found a solid and workable solution. Have you done this before?


Comment by The Sun on November 5, 2014 at 4:09pm

really want to see some videos of raspi HD fpv

so close to buying the equipment and giving it a go - would love to see one or two flights

Do you guys that have flown it notice stuttering or dropped frames? Just wondering.

Comment by Patrick Duffy on November 5, 2014 at 4:20pm

@RatFeet,  I have heard some folks using 4G LTE for HD video, but not 3G.  3G bandwidth is not high enough I think.  

Comment by Bernt Christian Egeland on November 6, 2014 at 6:57am

Nice work Patrick Duffy.

I will test this very soon,..  

PS! 3G works also for video stream. :)

Comment by Patrick Duffy on November 6, 2014 at 7:27am

@Bernt, You can stream anything over 3G, but at what rate/latency? Are you doing HD video or standard analog? 

Comment by Steve on November 6, 2014 at 8:16am

Does it matter which MissionPlanner Version we have? I followed instructions but when I run setup.msi it quickly runs something but nothing happens and when I open MP I don't get the option. I have gstreamer installed with all options as well. do we need to install QT libraries

Comment by Patrick Duffy on November 6, 2014 at 9:47am

@Steve.   The version of Mission Planner needs to support plugins. Check your install directory and see if a sub-directory named "plugins" exists. The plugin assumes that mission planner is installed in "C:\Program Files (x86)\Mission Planner".  If this is not the case, the plugin will not install correctly. The installer will need to be 'smarter' in future releases, but this is a beta.  If there is another problem, you can turn on the console window in Mission Planner and see any error messages. To enable the console window, go to the "Help" button and enable it at the bottom of the page. Then restart Mission Planner and see if you get any error messages.


You need to be a member of DIY Drones to add comments!

Join DIY Drones


Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service