If it is encoded properly, NextCloud links will just play. I’ve sent video to my “Which one is the right click?” Mother.
Mkv won’t play out of the box, but most mp4’s do. I self host, but I have a higher upstream than you do. (I get about 12. Slow, but it does generally work.)
Have you considered keeping them on YouTube but unlisted, so that they don’t show up on your profile nor in youtube searches?
Otherwise, you could create a Google Photos album, but either quality suffers, or the videos will take a lot of space.
All the other options I could suggest either call for a recurrent payment, but trust me, it gets tedious after a while (ie. VPS with Peertube or similar), or call for losing quality by a lot (ie. Whatsapp or Telegram channels/groups), or quickly become unpractical (ie. Mega, Dropbox…)
There are plenty of choices, and if you’re 100% sure you’re fine with recurring payments and having to constantly mantain a system/keep it updated and secure, then go ahead and make a VPS, but if you’d rather have it be convenient, look into additional YouTube settings or common alternatives like Vimeo.
Yup, this is the answer - if they need to be able to open the video with just the link, there’s functionally no difference if it’s self-host or YouTube unlisted. Just a lot less effort.
Another option is to make the youtube video private. Then you have the option to only share it with specific people. If it’s unlisted, then anyone with the link can view it.
Hosting on a VPS will get expensive. 4K video takes up a lot of space. If you want adjustable quality, then you will need to store multiple copies of the video at various resolutions and bitrates. A cheap VPS won’t have a GPU to do real time transcoding.
That wouldn’t surprise me. I’m sure they don’t want people using youtube their own private video archive. Storage isn’t free after all. If they didn’t want people to set videos to private, they would have removed the option though. Just don’t expect the videos to stay there forever.
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.
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.
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.
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.
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.
The problem about the “automatically adjust resolution and bitrate” can be done in two ways:
Using a GPU to transcode the 4k video in real time (generally unavailable on VPS)
Encoding the video in multiple resolutions and bitrates, using much more disk space
Both solutions are expensive on a VPS.
In this case when I need to share stuff in 4k 60 (basically never) I just host on YouTube unlisted and having Google foot the bill. Maybe think like this: the content really deserves to be 4k 60 fps? Home videos that I share with my family are downgraded to 720p as anyway they will watch it horizontal on a vertical screen
I honestly didn’t know that Youtube “unlisted” was even a thing; I’ve never posted a video to Youtube before, but this might be a promising idea. I’m assuming they still inject ads into unlisted videos, which is a major barrier for me… I hate ads.
I’ll admit that I’m a snob when it comes to video and audio quality; 4k/60 might be overkill, but I think at least 4k/30 has some merit in this case. Most modern phones and tablets (and TVs) are at least greater than 1080p, so assuming they’re watching the video horizontally, 1080p video would still result in a loss of quality. Would they care? Almost certainly not, but the idea of watching a UHD video source in a lower resolution bothers me far more than it should.
It definitely seems like VPS hosting is out of my budget. I think that hosting multiple version of the same video (and paying for more HDD space) would probably be cheaper than a VPS with a GPU resources, but the recurring fees are probably more than I’m willing to spend.
Unfortunately, the only people who would actually want to see my home videos (family) live several thousand miles away. I’m also not sure they would even know what to do with an external HDD. Not a bad idea, though.
Tailscale just solves so many these types of problems.
With a virtual network, you mo longer need tools that work over the internet - just use the same tools as you would on a LAN.
I’ve used Hamachi this way on windows since about 2006. I’ve waited for an Androidi/iOS client, but it never appeared. Glad to see Wireguard/Tailscale step in to fill that gap, and it’s self-hostable!
As a general rule: One system, one service. That system can be metal, vm, or container. Keeping things isolated makes maintenance much easier. Though sometimes it makes sense to break the rules. Just do so for the right reasons and not out of laziness.
Your file server should be it’s own hardware. Don’t make that system do anything else. Keeping it simple means it will be reliable.
Proxmox is great for managing VMs. Your could start with one server, and add more as needed to a cluster.
It’s easy enough to setup wireguard for roaming systems that you should. Make a VM for your VPN endpoint and off you go.
I’m a big fan of automation. Look into ansible and terraform. At least consider ansible for updating all your systems easily - that way you’re more likely to do it often.
One rule one system is very bad practice. You should run a bunch of services with docker compose. If you have enough resources to warrant 3 VMs you could setup a swarm.
Xpipe xpipe.io is an alternative it runs and stores your data locally on your machine and not web based. I’ve been playing with that a bit, it does auto discover Containerized apps and you can sort of exec into them to run commands and also browse the directories of your containerized apps with a simple click in a File type GUI. It uses your OS’s default Terminal application so it won’t bring any extra with you so it’s more native to your OS.
I’ve been a Konsole user on KDE for a few years now and it’s pretty much what I’ve been used to. Trying out Xpipe now and Termius about a year ago, I can say that Xpipe is stronger in it’s ability to interface with my containerized apps (Docker), but lacks the polish that Termius has visually. They both get the job done, but at the end of the day, I still reflexively just hit my Ctrl+Alt+T key combo to log into my machines.
Then, for a whole different take, SSWifty! github.com/nirui/sshwifty - Instead of launching an app, deploy this on your server, and then use your browser’s session to securely access your sites.
Are you sure Youtube doesn’t pick video quality based on connection speed? It will frequently drop down to 360p when my connection speed is particularly shitty that day, and I’ll have to manually increase it (I’d rather have occasional buffering than a blurry mess).
Emby, Jellyfin, and Plex will all detect connection speed, adjust quality settings, and transcode the media to playback without buffering.
I wouldn’t recommend Plex. They’ve been steadily moving away from self-hosted private media servers and towards just serving comercial content to you.
I myself run Emby as I’m rather fond of their development team and their attitude towards privacy. It does require payment for ‘emby premier’, ie the installable client apps and transcoding features, but it has single payment lifetime licenses as well as monthly.
Jellyfin is a popular open source option that is built on a fork of Embys older open source code before they went closed source.
selfhosted
Oldest
This magazine is from a federated server and may be incomplete. Browse more on the original instance.