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.

  • stratself@lemdro.id
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    4 hours 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

  • Funky_Beak@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    12
    ·
    1 day 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
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 day 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.

  • Brkdncr@lemmy.world
    link
    fedilink
    English
    arrow-up
    14
    arrow-down
    1
    ·
    1 day 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.worldOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 day 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
        link
        fedilink
        English
        arrow-up
        6
        ·
        edit-2
        1 day 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.

  • Cousin Mose@lemmy.hogru.ch
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 day 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.

  • A_norny_mousse@feddit.org
    link
    fedilink
    English
    arrow-up
    1
    arrow-down
    1
    ·
    1 day ago

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

    • Fedegenerate@lemmynsfw.com
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      2 hours ago

      Sames, I have a bunch of users(2) all streaming jellyfin fine over tailscale, except one house which buffers sporadically over the day. There’s no rhyme or reason to the when, or the what that needs to be buffered. As in it’ll buffer direct plays/HEVCs/AV1s, or it’ll play them fine. Some times it’ll buffer at night, sometimes during the day, sometimes neither or both. Worse, I’m getting all my information via users, so maybe theres a common thread, but they haven’t found it.

      Their internet speed is fine. It could be WiFi being saturated in their area. It could be the relay being a very old rPi3 just isn’t up to it (The pi, captures their requests through Pi-Hole and proxyies their traffic over tailscale). It could be the laptop they’re using as a client isn’t up to it. Or it could be some setting somewhere.

      It’s annoying whatever it is.