Gstreamer error: Streaming video to QGC over LTE
-
@Zachary-Lowell-0
@tom @groupoThe setup is working well. I successfully pinged both the VOXL drone and the parent computer:
Additionally, I managed to stream using MVP, and it functioned:
As for the wwan0, I have confirmed that an IP address is displayed:
Both voxl-streamer and voxl-camera-server is enabled and running:
However, I'm still encountering some difficulties with streaming on VLC and QGroundControl (QGC). I've installed the necessary GStreamer dependencies, but I continue to receive errors when attempting to stream on both platforms.
I have following the instructions in this link to install gstreamer properly:
https://gstreamer.freedesktop.org/documentation/installing/on-linux.html?gi-language=cP.S: I'm using Ubuntu 22.04.5 LTS
-
@Rawdha-R Can you try adding
tailscale0
to the top of the list in/etc/modalai/network_interface_preferences.txt
and power cycling your voxl? -
@tom Like this:
# List the order of priority of network interfaces here. # Top is most important # Bottom is least important tailscale0 tun0 eth0 usb0 wlan0 wwan0 # end
-
@Rawdha-R please go into voxl-streamer config /etc/modalai/voxl-streamer.conf and change the auto ip to false and then change the url to match the IP address of that in your tailscale IP. I believe what is happening right now is voxl streamer might be prioritizing a different IP as Tom mentioned above.
Zach
-
I have configured Tailscale as a priority network:
While setting up the voxl-streamer (located at /etc/modalai/voxl-streamer.conf) with the new URL, I noticed that the parameters auto_ip and url were missing:
I have added both parameters, setting auto_ip to false and updating the url with the Tailscale IP address and I checked the voxl-streamer and found that the stream value is still showing as 127.0.0.1:
After these adjustments and power cycling the device, Additionally, I attempted to check the connection in QGroundControl and VLC, but I'm encountering some errors:
-
@Rawdha-R those parameters are in voxl-mavcam-manager.conf not voxl-streamer. Apologies for mispeaking. Please remove those from voxl-streamer as it is most likley causing it to crash and then restart voxl-streamer and voxl-mavcam-manager.
-
No worries, I reverted the voxl-streamer configuration to its original settings, restarted it, then updated and restarted voxl-mavcam-manager.conf.
Afterwards, I attempted to set the RTSP stream to the specific IP address:
When I checked voxl-streamer, the output showed the following:
This is the errors that I got from Qground:
-
@Rawdha-R Are you able to pull up the stream in something like VLC? Trying to determine if it is indeed a QGC issue
-
@tom
No, I’m not able to pull up the stream in VLC, I’m getting this error:
-
@Rawdha-R Do you have this same issue if you try to stream over just wifi with no vpn?
-
I think I need a wifi dongle for it and I haven’t tried it with wifi.
-
I am also having issues now seeing my stream in VLC. It works as expected in QGC but I get similar errors to @Rawdha-R.
I had this working before in August, in fact I reverted from 13.3. to 1.3.0 just to see if that was an issue, but it persists. I will include some screenshots of my process below
You can see in the next screenshot below that the video is being received by QGC
@tom wwan0 is in my network interface file, the default URI is set to that of the cellular modem, but of course auto_ip is set to true as well. Voxl-my-ip returns that of the cellular modem. I am a little confused though about how the config of mavcam-manager determines the behavior of voxl-streamer. In the diagram on the docs they seem decoupled.
I have included the verbose vlc log at the end of this file as well.
-- logger module started -- main debug: VLC media player - 3.0.16 Vetinari main debug: Copyright © 1996-2021 the VideoLAN team main debug: revision 3.0.13-8-g41878ff4f2 main debug: configured with ./configure '--build=x86_64-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--disable-option-checking' '--disable-silent-rules' '--libdir=${prefix}/lib/x86_64-linux-gnu' '--runstatedir=/run' '--disable-maintainer-mode' '--disable-dependency-tracking' '--disable-debug' '--config-cache' '--disable-update-check' '--enable-fast-install' '--docdir=/usr/share/doc/vlc' '--with-binary-version=3.0.16-1build7' '--enable-a52' '--enable-aa' '--enable-aribsub' '--enable-avahi' '--enable-bluray' '--enable-caca' '--enable-chromaprint' '--enable-chromecast' '--enable-dav1d' '--enable-dbus' '--enable-dca' '--enable-dvbpsi' '--enable-dvdnav' '--enable-faad' '--enable-flac' '--enable-fluidsynth' '--enable-freetype' '--enable-fribidi' '--enable-gles2' '--enable-gnutls' '--enable-harfbuzz' '--enable-jack' '--enable-kate' '--enable-libass' '--enable-libmpeg2' '--enable-libxml2' '--enable-lirc' '--enable-mad' '--enable-matroska' '--enable-mod' '--enable-mpc' '--enable-mpg123' '--enable-mtp' '--enable-ncurses' '--enable-notify' '--enable-ogg' '--enable-opus' '--enable-pulse' '--enable-qt' '--enable-realrtsp' '--enable-samplerate' '--enable-sdl-image' '--enable-sftp' '--enable-shine' '--enable-shout' '--enable-skins2' '--enable-sndio' '--enable-soxr' '--enable-spatialaudio' '--enable-speex' '--enable-svg' '--enable-svgdec' '--enable-taglib' '--enable-theora' '--enable-twolame' '--enable-upnp' '--enable-vdpau' '--enable-vnc' '--enable-vorbis' '--enable-x264' '--enable-x265' '--enable-zvbi' '--with-kde-solid=/usr/share/solid/actions/' '--disable-aom' '--disable-crystalhd' '--disable-d3d11va' '--disable-decklink' '--disable-directx' '--disable-dsm' '--disable-dxva2' '--disable-fdkaac' '--disable-fluidlite' '--disable-freerdp' '--disable-goom' '--disable-gst-decode' '--disable-libtar' '--disable-live555' '--disable-macosx' '--disable-macosx-avfoundation' '--disable-macosx-qtkit' '--disable-mfx' '--disable-microdns' '--disable-opencv' '--disable-projectm' '--disable-schroedinger' '--disable-sparkle' '--disable-srt' '--disable-telx' '--disable-vpx' '--disable-vsxu' '--disable-wasapi' '--enable-alsa' '--enable-dc1394' '--enable-dv1394' '--enable-libplacebo' '--enable-linsys' '--enable-nfs' '--enable-udev' '--enable-v4l2' '--enable-wayland' '--enable-libva' '--enable-vcd' '--enable-smbclient' '--disable-oss' '--enable-mmx' '--enable-sse' '--disable-neon' '--disable-altivec' '--disable-omxil' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -ffile-prefix-map=/build/vlc-hoXXw1/vlc-3.0.16=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security ' 'LDFLAGS=-Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -flto=auto -Wl,-z,relro -Wl,-z,now' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -ffile-prefix-map=/build/vlc-hoXXw1/vlc-3.0.16=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security ' 'OBJCFLAGS=-g -O2 -ffile-prefix-map=/build/vlc-hoXXw1/vlc-3.0.16=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security' main debug: searching plug-in modules main debug: loading plugins cache file /usr/lib/x86_64-linux-gnu/vlc/plugins/plugins.dat main debug: recursively browsing `/usr/lib/x86_64-linux-gnu/vlc/plugins' main debug: plug-ins loaded: 519 modules main debug: opening config file (/home/welchj/.config/vlc/vlcrc) main debug: looking for logger module matching "any": 4 candidates file debug: opening logfile `/home/welchj/vlc-log.txt' main debug: using logger module "file" main debug: translation test: code is "C" main debug: looking for keystore module matching "memory": 4 candidates main debug: using keystore module "memory" main debug: CPU has capabilities MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 AVX AVX2 FPU main debug: Creating an input for 'Media Library' main debug: Input is a meta file: disabling unneeded options main debug: using timeshift granularity of 50 MiB main debug: using default timeshift path main debug: `file/directory:///home/welchj/.local/share/vlc/ml.xspf' gives access `file' demux `directory' path `/home/welchj/.local/share/vlc/ml.xspf' main debug: creating demux: access='file' demux='directory' location='/home/welchj/.local/share/vlc/ml.xspf' file='/home/welchj/.local/share/vlc/ml.xspf' main debug: looking for access_demux module matching "file": 18 candidates main debug: no access_demux modules matched main debug: creating access: file:///home/welchj/.local/share/vlc/ml.xspf main debug: (path: /home/welchj/.local/share/vlc/ml.xspf) main debug: looking for access module matching "file": 29 candidates main debug: using access module "filesystem" main debug: looking for stream_filter module matching "prefetch,cache_read": 26 candidates cache_read debug: Using stream method for AStream* cache_read debug: starting pre-buffering cache_read debug: received first data after 0 ms cache_read debug: pre-buffering done 296 bytes in 0s - 13139 KiB/s main debug: using stream_filter module "cache_read" main debug: looking for stream_filter module matching "any": 26 candidates playlist debug: using XSPF playlist reader main debug: using stream_filter module "playlist" main debug: stream filter added to 0x5abe03deb8d0 main debug: looking for stream_filter module matching "any": 26 candidates main debug: no stream_filter modules matched main debug: looking for stream_directory module matching "any": 1 candidates main debug: no stream_directory modules matched main debug: attachment of directory-extractor failed for file:///home/welchj/.local/share/vlc/ml.xspf main debug: looking for stream_filter module matching "record": 26 candidates main debug: using stream_filter module "record" main debug: creating demux: access='file' demux='directory' location='/home/welchj/.local/share/vlc/ml.xspf' file='/home/welchj/.local/share/vlc/ml.xspf' main debug: looking for demux module matching "directory": 54 candidates main debug: using demux module "directory" main debug: looking for meta reader module matching "any": 2 candidates lua debug: Trying Lua scripts in /home/welchj/.local/share/vlc/lua/meta/reader lua debug: Trying Lua scripts in /usr/lib/x86_64-linux-gnu/vlc/lua/meta/reader lua debug: Trying Lua playlist script /usr/lib/x86_64-linux-gnu/vlc/lua/meta/reader/filename.luac lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta/reader main debug: no meta reader modules matched main debug: `file/directory:///home/welchj/.local/share/vlc/ml.xspf' successfully opened main debug: looking for xml reader module matching "any": 1 candidates main debug: using xml reader module "xml" main debug: EOF reached main debug: removing module "directory" main debug: removing module "record" main debug: removing module "playlist" main debug: removing module "cache_read" main debug: removing module "filesystem" main debug: creating audio output main debug: looking for audio output module matching "any": 6 candidates vlcpulse debug: using library version 15.99.0 vlcpulse debug: (compiled with version 15.99.0, protocol 35) vlcpulse debug: connected locally to /run/user/1004/pulse/native as client #23 vlcpulse debug: using protocol 35, server protocol 35 pulse debug: adding sink 1: alsa_output.pci-0000_00_1f.3.analog-stereo (Built-in Audio Analog Stereo) main debug: using audio output module "pulse" main debug: keeping audio output main debug: looking for interface module matching "dbus,none": 19 candidates dbus debug: listening on dbus as: org.mpris.MediaPlayer2.vlc main debug: using interface module "dbus" main debug: looking for interface module matching "hotkeys,none": 19 candidates main debug: using interface module "hotkeys" main debug: looking for interface module matching "globalhotkeys,none": 19 candidates main debug: using interface module "xcb_hotkeys" main: Running vlc with the default interface. Use 'cvlc' to use vlc without interface. main debug: looking for interface module matching "any": 19 candidates dbus debug: Getting All properties dbus debug: Getting All properties dbus debug: Getting All properties dbus debug: Getting All properties dbus debug: Getting All properties main debug: looking for extension module matching "any": 1 candidates lua debug: Opening Lua Extension module lua debug: Trying Lua scripts in /home/welchj/.local/share/vlc/lua/extensions lua debug: Trying Lua scripts in /usr/lib/x86_64-linux-gnu/vlc/lua/extensions lua debug: Trying Lua playlist script /usr/lib/x86_64-linux-gnu/vlc/lua/extensions/VLSub.luac lua debug: Scanning Lua script /usr/lib/x86_64-linux-gnu/vlc/lua/extensions/VLSub.luac lua debug: Script /usr/lib/x86_64-linux-gnu/vlc/lua/extensions/VLSub.luac has the following capability flags: 0x5 lua debug: Trying Lua scripts in /usr/share/vlc/lua/extensions main debug: using extension module "lua" main debug: using interface module "qt" main: playlist is empty main debug: nothing to play main debug: processing request item: rtsp://10.0.1.1:8900/live, node: Playlist, skip: 0 main debug: rebuilding array of current - root Playlist main debug: rebuild done - 1 items, index 0 main debug: starting playback of new item main debug: resyncing on rtsp://10.0.1.1:8900/live main debug: rtsp://10.0.1.1:8900/live is at 0 main debug: creating new input thread main debug: Creating an input for 'rtsp://10.0.1.1:8900/live' main debug: requesting art for new input thread main debug: using timeshift granularity of 50 MiB main debug: using default timeshift path main debug: `rtsp://10.0.1.1:8900/live' gives access `rtsp' demux `any' path `10.0.1.1:8900/live' main debug: creating demux: access='rtsp' demux='any' location='10.0.1.1:8900/live' file='(null)' main debug: looking for access_demux module matching "rtsp": 18 candidates main debug: no access_demux modules matched main debug: creating access: rtsp://10.0.1.1:8900/live main debug: looking for access module matching "rtsp": 29 candidates main debug: looking for meta fetcher module matching "any": 1 candidates lua debug: Trying Lua scripts in /home/welchj/.local/share/vlc/lua/meta/fetcher lua debug: Trying Lua scripts in /usr/lib/x86_64-linux-gnu/vlc/lua/meta/fetcher lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta/fetcher main debug: no meta fetcher modules matched main debug: looking for art finder module matching "any": 2 candidates satip debug: try to open 'rtsp://10.0.1.1:8900/live' satip debug: connect to host '10.0.1.1' main debug: net: connecting to 10.0.1.1 port 8900 lua debug: Trying Lua scripts in /home/welchj/.local/share/vlc/lua/meta/art lua debug: Trying Lua scripts in /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art lua debug: Trying Lua playlist script /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/00_musicbrainz.luac lua debug: skipping script (unmatched scope) /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/00_musicbrainz.luac lua debug: Trying Lua playlist script /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/01_googleimage.luac lua debug: skipping script (unmatched scope) /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/01_googleimage.luac lua debug: Trying Lua playlist script /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/02_frenchtv.luac lua debug: skipping script (unmatched scope) /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/02_frenchtv.luac lua debug: Trying Lua playlist script /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/03_lastfm.luac lua debug: skipping script (unmatched scope) /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/03_lastfm.luac lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta/art main debug: no art finder modules matched main debug: looking for meta fetcher module matching "any": 1 candidates lua debug: Trying Lua scripts in /home/welchj/.local/share/vlc/lua/meta/fetcher lua debug: Trying Lua scripts in /usr/lib/x86_64-linux-gnu/vlc/lua/meta/fetcher lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta/fetcher main debug: no meta fetcher modules matched main debug: looking for art finder module matching "any": 2 candidates lua debug: Trying Lua scripts in /home/welchj/.local/share/vlc/lua/meta/art lua debug: Trying Lua scripts in /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art lua debug: Trying Lua playlist script /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/00_musicbrainz.luac lua debug: Trying Lua playlist script /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/01_googleimage.luac lua debug: Trying Lua playlist script /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/02_frenchtv.luac lua debug: Trying Lua playlist script /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/03_lastfm.luac lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta/art main debug: no art finder modules matched main debug: connection succeeded (socket = 45) main debug: net: opening 0.0.0.0 datagram port 9322 main debug: net: opening 0.0.0.0 datagram port 9323 qt debug: IM: Setting an input satip error: Failed to play RTSP session satip error: Failed to teardown RTSP session main debug: net: connecting to 10.0.1.1 port 8900 main debug: connection succeeded (socket = 44) access_realrtsp warning: Cseq mismatch, got 1, assumed 0 access_realrtsp debug: rtsp connected access_realrtsp warning: only real/helix rtsp servers supported for now main debug: no access modules matched main debug: dead input qt debug: IM: Deleting the input main debug: changing item without a request (current 0/1) main debug: nothing to play main debug: processing request item: rtsp://10.0.1.1:8900/live, node: Playlist, skip: 0 main debug: rebuilding array of current - root Playlist main debug: rebuild done - 2 items, index 1 main debug: starting playback of new item main debug: resyncing on rtsp://10.0.1.1:8900/live main debug: rtsp://10.0.1.1:8900/live is at 1 main debug: creating new input thread main debug: Creating an input for 'rtsp://10.0.1.1:8900/live' main debug: requesting art for new input thread main debug: using timeshift granularity of 50 MiB main debug: using default timeshift path main debug: `rtsp://10.0.1.1:8900/live' gives access `rtsp' demux `any' path `10.0.1.1:8900/live' main debug: creating demux: access='rtsp' demux='any' location='10.0.1.1:8900/live' file='(null)' main debug: looking for access_demux module matching "rtsp": 18 candidates main debug: no access_demux modules matched main debug: creating access: rtsp://10.0.1.1:8900/live main debug: looking for access module matching "rtsp": 29 candidates satip debug: try to open 'rtsp://10.0.1.1:8900/live' satip debug: connect to host '10.0.1.1' main debug: looking for meta fetcher module matching "any": 1 candidates lua debug: Trying Lua scripts in /home/welchj/.local/share/vlc/lua/meta/fetcher lua debug: Trying Lua scripts in /usr/lib/x86_64-linux-gnu/vlc/lua/meta/fetcher lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta/fetcher main debug: net: connecting to 10.0.1.1 port 8900 main debug: no meta fetcher modules matched main debug: looking for art finder module matching "any": 2 candidates lua debug: Trying Lua scripts in /home/welchj/.local/share/vlc/lua/meta/art lua debug: Trying Lua scripts in /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art lua debug: Trying Lua playlist script /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/00_musicbrainz.luac lua debug: skipping script (unmatched scope) /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/00_musicbrainz.luac lua debug: Trying Lua playlist script /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/01_googleimage.luac lua debug: skipping script (unmatched scope) /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/01_googleimage.luac lua debug: Trying Lua playlist script /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/02_frenchtv.luac lua debug: skipping script (unmatched scope) /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/02_frenchtv.luac lua debug: Trying Lua playlist script /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/03_lastfm.luac lua debug: skipping script (unmatched scope) /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/03_lastfm.luac lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta/art main debug: no art finder modules matched main debug: looking for meta fetcher module matching "any": 1 candidates lua debug: Trying Lua scripts in /home/welchj/.local/share/vlc/lua/meta/fetcher lua debug: Trying Lua scripts in /usr/lib/x86_64-linux-gnu/vlc/lua/meta/fetcher lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta/fetcher main debug: no meta fetcher modules matched main debug: looking for art finder module matching "any": 2 candidates lua debug: Trying Lua scripts in /home/welchj/.local/share/vlc/lua/meta/art lua debug: Trying Lua scripts in /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art lua debug: Trying Lua playlist script /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/00_musicbrainz.luac lua debug: Trying Lua playlist script /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/01_googleimage.luac lua debug: Trying Lua playlist script /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/02_frenchtv.luac lua debug: Trying Lua playlist script /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/03_lastfm.luac lua debug: Trying Lua scripts in /usr/share/vlc/lua/meta/art main debug: no art finder modules matched main error: connection failed: Connection refused satip error: Failed to connect to RTSP server 10.0.1.1:8900 main debug: net: connecting to 10.0.1.1 port 8900 main error: connection failed: Connection refused access_realrtsp error: cannot connect to 10.0.1.1:8900 access_realrtsp debug: could not connect to: 10.0.1.1:8900/live main debug: no access modules matched main debug: dead input main debug: changing item without a request (current 1/2) main debug: nothing to play
-
SO, I used ffplay and was able to see the stream successfully. A quick google about vlc/rtsp brought up many issues in the community after some recent updates. I am not sure how I was able to do this before and cannot now, but I did find a fix for windows
In case that link is ever deleted, I will paste the instructions here
"In VLC, under the Tools menu, go to Preferences (or Ctrl+p), open the Input/Codecs tab, and at the bottom in the Network area, the selection for "live555 stream transport" should be moved from "HTTP (default)" to "RTP over RTSP (TCP)". This worked, I can now view the video stream in VLC player."This resolves the RTSP stream for windows. Those config options are not available in the linux version of VLC but I did see some config options you can build VLC with. I did not venture too far down that path
-
@tom
The issue still persists for me. Do you think my setup could be causing the problem? I have an M1 Mac processor, and I'm using a virtual machine with UTM(Visualizer). Could that be causing any limitations? Should I try a different setup, and do you have any recommendations? -
@tom
P.S. I am currently working with the Drone Sentinel VOXL 2 and the drone is connected via LTE but without Wi-Fi, because there is no wifi dongle.