I am unable to get video streaming established in the latest Mission Planner version 188.8.131.52.
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.
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
the only part that MP requires is the last 3 elements. which is just formatting the raw data so MP can use it
please try beta MP as well
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?
Try it again. That error is a server problem.
Today MP finally could complete the download and display the RTSP video stream.
- 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.
- 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.
could you supply your missionplanner.log file?
its in c:\programdata\missionplanner\
this will give me an idea as to what is happening.
Here you go:
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.
are you starting it manually? or is it starting automatically?
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.
on your video sending side, is there any info you can give me as to how i could replicate it? i would like to get to the bottom of it.
I am using the ROS to RTSP server from here since my application is developed in ROS and I am using the ROS camera topic:
But you can replicate the problem also with this RTSP server which was developed to run on top of APsync:
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!
that does make sence. MP only listerns to thigns its sent.
rtsp is an outbound connection, so needs to be initiated.
you can pass a command line to MP on startup to try always connect to your rtsp server if thats easier?
Has anyone had this error popup?
I’m not sure how to fix it.
recently there has been a clash between GDAL and Gstreamer. ie if one works the other does not.
this is fixed in beta MP. ended up downgrading gdal