Page 1 of 1

VLCkit timeout using Tailscale

Posted: 03 May 2024 03:46
by Batwam
Hello,

I am experiencing a strange behaviour with apps using VLCkit (including VLC’s iOS client) when connected using Tailscale. If I connect to my Plex server, the music won’t start for about 4min. See logs below with 2 timeout and then success. I’m by no means an expert but noticed when comparing the timed out attempt Vs successful one that VLC seems to attempt to connect using HTTP/1.1 twice which fails. It eventually tries using HTTP/1.0 which succeeds right away.

Note that:
- I am using the local IP address as Tailscale translates that into the relevant IP. It works fine with other apps and the same behaviour is experienced if I use the Plex server’s Tailscale IP.
- I do not experience any lag in VLC if using a Samba share, just http so it shouldn’t be a bandwidth issue but smb is obviously a different protocol.
- I am not experiencing this delay when connected to my home network using wifi (not using Tailscale)
- same issue is experienced with Navidrome app using VLCkit (LMP Music) - the issue has been reported but hard to fix at that level as it is likely to be a VLCkit issue
- no issue with Navidrome app NOT using VLCkit (Amperfy/Substreamer)

I am not sure if this is a VLC issue or a Tailscale issue, probably both as I assume that the timeout delay sits within the VLCkit code but there could also be a setting Tailscale to avoid the failure altogether.

Would anyone have any suggestion? It’s a bit painful having to way 4 min for a song to start… and I can raise this on github as my account isn’t getting approved.

Code: Select all

[DBG] looking for keystore module matching "any": 6 candidates [DBG] no keystore modules matched [DBG] resolving 192.168.1.101 ... [DBG] outgoing request: GET /library/parts/433/1361567384/file.m4a HTTP/1.1 Host: 192.168.1.101:32400 Accept: */* Accept-Language: en_US User-Agent: VLC/3.0.19 LibVLC/3.0.19 Range: bytes=0- [DBG] connection failed [ERR] HTTP connection failure [DBG] querying proxy for http://192.168.1.101:32400/library/parts/433/1361567384/file.m4a [DBG] no proxy [DBG] http: server='192.168.1.101' port=32400 file='/library/parts/433/1361567384/file.m4a' [DBG] looking for keystore module matching "any": 6 candidates [DBG] no keystore modules matched [DBG] net: connecting to 192.168.1.101 port 32400 [WARN] connection timed out [DBG] connection succeeded (socket = 17) [DBG] sending request: GET /library/parts/433/1361567384/file.m4a HTTP/1.0 Host: 192.168.1.101:32400 User-Agent: VLC/3.0.19 LibVLC/3.0.19 Icy-MetaData: 1 [DBG] HTTP answer code 200 [DBG] Content-Type: audio/mp4 [DBG] auto re-connect enabled [DBG] using access module "http" [DBG] looking for stream_filter module matching "prefetch,cache_read": 75 candidates [DBG] using 4137431 bytes buffer, 4137431 bytes read [DBG] using stream_filter module "prefetch" [DBG] looking for stream_filter module matching "any": 75 candidates [DBG] no stream_filter modules matched [DBG] looking for stream_directory module matching "any": 3 candidates [DBG] no stream_directory modules matched [DBG] attachment of directory-extractor failed for http://192.168.1.101:32400/library/parts/433/1361567384/file.m4a [DBG] looking for stream_filter module matching "record": 75 candidates [DBG] using stream_filter module "record" [DBG] creating demux: access='http' demux='any' location='192.168.1.101:32400/library/parts/433/1361567384/file.m4a' file='(null)' [DBG] looking for demux module matching "any": 138 candidates [WARN] unknown box type cpil (incompletely loaded) [WARN] unknown box type pgap (incompletely loaded) [WARN] unknown box type tmpo (incompletely loaded) [WARN] truncated box mdat discarded [WARN] truncated box mdat discarded [DBG] dumping root Box "root" [DBG] | + ftyp size 32 offset 0 [DBG] | + moov size 52694 offset 32 [DBG] | | + mvhd size 108 offset 40 [DBG] | | + trak size 47557 offset 148 …