51

I currently have a jellyfin setup running on my pc which I access when away from home by tailscaling into my home network. This works great for my partner and I while we are away from home.

I have given my siblings access to my jellyfin setup as well, and I've added them to the tailscale network too. They live in a different country though and have had some latency issues (media buffering constantly) making it kinda suck to use.

I would love to be able to improve this performance but I dont really know where to start. Would this be a bandwidth issue somewhere between my pc, tailscale, my router, their router, and their device? Would this be caused by some setting in my jellyfin setup or in the jellyfin client on their device? I would really appreciate any advice on where I should start to troubleshoot to improve this performance.

top 15 comments
sorted by: hot top controversial new old
[-] Brkdncr@lemmy.world 14 points 1 week ago

When they are streaming is it transcoding?

If not, it should be reducing the stream quality to adjust to the available bandwidth.

If it is, it could be limited to your pc’s available resources. You may want to turn on hardware transcoding.

Jellyfin has logs that will tell you if its transcoding and how well it’s working.

Tailscale does add additional hops to their route and has bandwidth limitations but it should be fine for streaming.

[-] SkinList@lemmy.world 4 points 1 week ago

I believe that jellyfin has been transcoding using jellyfin-ffmpeg. I do have logs labelled "FFmpeg.Transcode-..." which seem to look fine. I have just turned on hardware acceleration though. Is that what you meant by "hardware transcoding"?

Ill check to see if the buffering is improved and will let you know how it goes! Thanks for the advice!

[-] entropicdrift@lemmy.sdf.org 7 points 1 week ago* (last edited 1 week ago)

Yes, hardware transcoding = using hardware acceleration for decoding/re-encoding the video files. CPUs do it pretty slowly (or they use a ton of electricity if they're fast enough to do it quickly) but the special decoder/encoder chips on GPUs (including integrated graphics GPUs) can handle that sort of task no sweat in most cases as long as you've got it preperly configured.

[-] Funky_Beak@lemmy.sdf.org 13 points 1 week ago

Tailscale can use relays if it cant find a way to make a p2p connection. Check the documentation. There is a command you can run to see whats using the relay.

[-] NightmareQueenJune@lemmy.world 5 points 1 week ago

The siblings could run
tailscale ping nodeIP/nodeName
This not only shows if they are connected via a DERP (relay) but also retries to connect them directly a few times.
If that doesn't work out it can sadly be quite hard figuring out why a DERP is used instead of a direct connection.

[-] jonathan@piefed.social 4 points 1 week ago

This is the first thing I'd look at too.

[-] stratself@lemdro.id 4 points 1 week ago* (last edited 1 week ago)

If both your Jellyfin server and your siblings are behind residential CGNAT, then high chance your connections are relayed through Tailscale's DERP servers. You can check with tailscale ping-ing your sibilings' nodes.

If this is the case, you may consider selfhosting your own DERP somewhere close to you, but I'd argue the performance gains are minimal compared to the extra costs. Another solution would be to enable IPv6 for both you and your siblings, skipping NAT traversal. I just hope both ISPs support it and support it properly in $CURRENT_YEAR.

This is all assuming you can direct play (i.e. not transcoding) your media. If you're transcoding, then it's good to look into hardware acceleration like the other comment mentioned, too

[-] nightrider@lemmy.world 1 points 1 week ago

Would using something like pangolin be a solution to improve speeds rather than stuff going via relay it goes DNS->VPS->Local VM behind cgnat accessed via tunnel?

[-] stratself@lemdro.id 1 points 1 week ago

Hi, I think OP wants their sibilings to directly connect to their PC, skipping any relays, even if it's their VPS.

But if you are comparing setting up your own VPS instead of relaying through Tailscale's DERP, then the answer is... it depends on the distance and whether you can establish VPS->Local VM direct connections.

I found opening a specified port for Tailscale on the VPS to help with direct connections with CGNAT'd peers. I'm not familiar with Pangolin, but I think the same principle applies as long as at least one address:port combination is agreed between Wireguard peers.

If I'm being honest though, before doing all this, try asking your ISPs for IPv6 to avoid these cumbersome things together.

[-] nightrider@lemmy.world 2 points 1 week ago

Sadly no ipv6 support with my supplier so that's sadly not an option. Vps and derp servers are both based in UK so doubt they'd be much benefit in switching from tailscales derp to pangolin. I'll look into port forwarding but pretty sure ISP blocks this.

[-] undefined@lemmy.hogru.ch 4 points 1 week ago

If it’s cable internet you might just be constrained by the available upload speed. I tend to put my media in Storj then run a VPS somewhere between all the clients that serves the media via WebDAV with rclone. This gets around the slow upload speed of cable internet at home, and I can cache the remote content on my NAS at home too.

[-] non_burglar@lemmy.world 3 points 1 week ago
  1. You might want to set an appropriate bitrate and video quality for transcoding for these users that works acceptably for their latency and bandwidth.
  2. The reason netflix, prime, Disney+, etc work as well as they do is because they have CDN peering, so your version of Game of Thrones comes from somewhere much closer to you in a network sense. You can change your tailscale relay, or you can lock down jellyfin to their ip and specific port and skip the tailscale (I don't recommend it unless you know what you're doing) and let routing tables help with latency.
[-] southrydge@lemdro.id 2 points 1 week ago

Before anything, are you doing regular restarts on your server? I had a similar issue (nobody overseas though) and they went away after restarting. So now I restart every few days to avoid any issues

[-] A_norny_mousse@feddit.org 1 points 1 week ago

All the answers so far could point in the right direction. I'm lurking to see which one pans out.

[-] roofuskit@lemmy.world 1 points 1 week ago

Jellyfin has setting for transcoding video when you are streaming to an external client. The problem is when you're using tail scale Jellyfin is seeing that client as internal. Because of this you must set caps on the bitrate within the client that is accessing via tailscale.

This of course is assuming your server is capable of the needed transcoding demands.

this post was submitted on 30 Sep 2025
51 points (100.0% liked)

Selfhosted

52122 readers
5 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS