I am unable to get video streaming established in the latest Mission Planner version 1.3.68.1.
My gstreamer pipeline as defined in MP is: rtspsrc location=rtsp://10.0.1.128:8554/zedimage ! application/x-rtp ! rtpjpegdepay ! videoconvert ! video/x-raw,format=BGRA ! appsink name=outsink
Despite I have gstreamer 1.16.1 installed, Mission Planner tries to downlad something when I either confirm the pipeline string or when I click on the gstreamer button in the CRTL-F menu screen.
The download aborts with the folowing error screen:
Needless to say that the streaming works perfectly well under Windows on the same machine in QGC and within a terminal window with the following pipeline: gst-launch-1.0 -v rtspsrc location=rtsp://10.0.1.128:8554/zedimage drop-on-latency=true use-pipeline-clock=true do-retransmission=false latency=0 protocols=GST_RTSP_LOWER_TRANS_UDP ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink sync=true
Given this, I assume my gstreamer install works properly.
Any ideas?
the issue is with the pipeline.
it should be
rtspsrc location=rtsp://10.0.1.128:8554/zedimage drop-on-latency=true use-pipeline-clock=true do-retransmission=false latency=0 protocols=GST_RTSP_LOWER_TRANS_UDP ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! video/x-raw,format=BGRA ! appsink name=outsink
Hi @Michael_Oborne thanks for getting back.
When I set the gstreamer source in MP, it starts to download something and then fails with an “unexpected error”. See the screenshot below. I am on the latest MP beta and I do have gstreamer 1.16.1 installed. Gstreamer works fine when I launch it from the command line.
What can I do?
Thx Stephan
Thx @Michael_Oborne
Today MP finally could complete the download and display the RTSP video stream.
However:
when I restart the RTSP server on the companion computer MP crashes immediately
when I close MP and restart, I always need to open the gsttreamer setup in the HUD menu again. Then the download process starts again and after 30 seconds or so it eventually starts the stream - very awkward behaviour.
When I make changes to the pipeline in MP, eg change the RTSP node, MP crashes immediately.
Questions:
Why does MP need to download and unpack any code at all? Why not simply rely on an existing gstreamer installation? In case gstreamer is not properly installed, a meaningful error message would be more convinient and helpful.
What server is being contacted and what files are being tried to download? It makes me always a bit nervous when an app loads and installs something w/o notice.
Thanks!
I am wondering that MP ignores my existing gstreamer installation and tries to download and install gstreamer in the c:\programdata directory everytime I access the gstreamer pipeline menu - which - according to the log, periodically fails. It would be a better way if MP looks for the “offcial” GSTREAMER_ROOT_X86_64 environment variable, and, if not set, issues an error.
No I have to start it manually every time when I try to stream via RTSP.
I tried UDP, and interestingly when I have an UDP stream set up on the companion computer, MP automatically starts video and everything works.
So I assume the RTSP streaming implementation in MP is faulty. I tried different RTSP servers, they all fail with MP, but work well with Gstreamer launched in the terminal as well as with QGC.
@Michael_Oborne
UPDATE: I just upgraded to MP 1.3.69 and now RTSP streaming works with my both servers!
The only issue I saw is that while UDP streaming starts automatically once a stream is available, I always need to open the Set Gstreamer Source menu and click OK (w/o changing anything) in order to invoke the RTSP stream.
Thanks for your help!
make sure you don’t have gstream installed outside of Mission Planner. If yes then uninstall it from Add remove programs…
Quit Mission Planner, and delete contents of c:\Program Data\Mission Planner direcotry (If you need, you can keep the gmapcache directory (C:\Program Data is a hidden directory)
Start Mission Planner and update to latest version
Add gstreamer source which will trigger fresh download of gstreamer.