I have a decent amount of video footage that I’d like to share with friends and family. My first thought was Youtube, but this is all home videos that I really don’t want to share publicly.

A large portion of my video footage is 4k/60, so I’m ideally looking for a solution where I can send somebody a link, and it gives a “similar to Youtube” experience when they click on the link. And by “similar to Youtube,” I mean that the player automatically adjusts the video bitrate and resolution based on their internet speed. Trying to explain to extended family how to lower the bitrate if the video starts buffering isn’t really an option. It needs to “just work” as soon as the link is clicked; some of the individuals I’d like to share video with are very much not technically inclined.

I’d like to host it on my homelab, but my internet connection only has a 4Mbit upload, which is orders of magnitude lower than my video bitrate, so I’m assuming I would need to either use a 3rd-party video hosting service or set up a VPS with my hosting software of choice.

Any suggestions? I prefer open-source self-hosted software, but I’m willing to pay for convenience.

  • ferret
    link
    fedilink
    English
    arrow-up
    4
    ·
    11 months ago

    Note that for jellyfin (or any software) to reduce the bitrate it will have to transcode the video

    • vividspecter@lemm.ee
      link
      fedilink
      English
      arrow-up
      2
      ·
      11 months ago

      Of course. Youtube and the like “pre-transcode” it so that would be one way for Jellyfin to better solve it, at the cost of a significant amount of disk space.

      • ferret
        link
        fedilink
        English
        arrow-up
        3
        ·
        11 months ago

        You can get an intel arc a310 for ~$90 and it has absolutely insane transcode performance, so depending on how large your library is it might even end up cheaper than buying more storage to just live-transcode everything.

        • MangoPenguin@lemmy.blahaj.zone
          link
          fedilink
          English
          arrow-up
          2
          ·
          11 months ago

          Or if you have a 7th gen or newer Intel CPU with integrated graphics, those work great too. Support for 10 bit does require a later model CPU though.

        • vividspecter@lemm.ee
          link
          fedilink
          English
          arrow-up
          1
          ·
          edit-2
          11 months ago

          I suspect the delay would still be longer than a Youtube like implementation which may need to switch transcodes multiple times, but that’s probably unrealistic at this point anyway.

          Transcoding everything to AV1 could be a solution too, since high resolutions can look quite good at low bitrates, so you could limit it to 5mbps or 10mbps for any resolution and be done with it. But I’m not sure Jellyfin supports that, and at least from the UI it doesn’t give you particularly fine grained control over resolution/bitrates. Perhaps having a secondary library of just AV1 transcodes that you handle manually (perhaps even using a software encoder) could be an option for some.

          The client side is also an issue, with not that many devices supporting hardware decoding (although I’ve found it’s fast enough in software with most modern smartphones at least).

          • KillingTimeItself@lemmy.dbzer0.com
            cake
            link
            fedilink
            English
            arrow-up
            1
            ·
            11 months ago

            if you’re switching between formats yeah it’s going to need to start over on the transcoding. If you don’t it’s actually better because it just caches it on disk. From that point it’s basically native.

            Jellyfin does support limiting external network speeds, and individual client speeds, so if you setup your transcoding correctly, and the clients support those codecs, it’ll work.