this post was submitted on 26 Jan 2024
30 points (91.7% liked)

Selfhosted

40219 readers
1150 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 1 year ago
MODERATORS
 

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.

you are viewing a single comment's thread
view the rest of the comments
[–] vividspecter@lemm.ee 14 points 9 months ago* (last edited 9 months ago) (3 children)

Maybe Jellyfin, where I believe you can force a low bitrate for every remote client. It wouldn't be "adjust to internet speed" but you could minimise buffering that way.

[–] aBundleOfFerrets@sh.itjust.works 4 points 9 months ago (1 children)

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

[–] vividspecter@lemm.ee 2 points 9 months ago (1 children)

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.

[–] aBundleOfFerrets@sh.itjust.works 3 points 9 months ago (2 children)

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 2 points 9 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 1 points 9 months ago* (last edited 9 months ago) (1 children)

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).

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.

[–] corroded@lemmy.world 1 points 9 months ago (1 children)

I'm a big fan of Jellyfin. I run it at home with a dedicated Nvidia A2000 for hardware transcoding. It's able to transcode multiple 4k streams with tonemapping faster than they can play.

As much as I'd love to use Jellyfin, there are two major issues: My internet connection is so slow, that I'd be lucky to stream 720p at a low bitrate. I'd spend the money on a faster connection, but I live in an area that doesn't even get cell phone service. My options are DSL and Starlink, and I have both; the DSL is just slow, and Starlink uplink speed isn't much better, plus I have plenty of obstructions that make it somewhat unreliable. The second problem is that Jellyfin has too steep of a learning curve. Telling my relatives "oh, if it starts buffering, just lower the bitrate" isn't an option. Not to mention, I'd have to run it on a VPS, and hosting a VPS with the resources required for this is way too expensive for me.

[–] redcalcium@lemmy.institute 1 points 9 months ago* (last edited 9 months ago)

and hosting a VPS with the resources required for this is way too expensive for me.

If you're ok with using VPS from bottom-tier providers, you can get them for 10x cheaper than the usual cloud providers (or more during holiday sales) on lowendtalk.com.