onlygon

joined 1 year ago
[โ€“] onlygon@alien.top 2 points 11 months ago

I have a modest 2-bay Synology NAS connected to a Lenovo office PC from eBay that runs jellyfin. It works great. I don't use the other services you mentioned.

A standalone NAS can do what you want. But it depends on your needs and how much you want to spend. How many concurrent clients? How many transcodes at once then? Transcoding 4K (this is very expensive)? All on NAS or NAS + PC?

My understanding is you can transcode using ram or ssd. And the size should be at larger than the size of the file. So 25GB file transcoded, you should have 25GB of ssd or ram available. This is per stream. So now you see how ram is expensive to transcode with, especially with multiple streams.

If transcoding a couple 1080 streams then a cheap office PC off eBay with Intel quicksync that is at least Skylake should work e.g. i5-6500T (this is what I have). You should be able to run those other services just fine. If direct streaming 4K there is not even overheard because no transcoding is happening so that should be fine too.

[โ€“] onlygon@alien.top 1 points 1 year ago (1 children)

There are lots of challenges with a server+client architecture like jellyfin for emulation that disincentive people from doing it, like handling multiple instances, peripherals connectivity, etc.

There are a few ways to get close but with various pros and cons:

  1. A compromise is having something like a NAS manage the data and metadata that multiple emulators can connect to e.g. 1 NAS + 3 PCs running Batocera with their own peripherals. This is the simplest option.
  2. A headless server running an OS like Windows or maybe even Steam OS that a client can connect to, but you're limited to one client at a time. Many ways to set this up, for example https://github.com/Steam-Headless/docker-steam-headless
  3. You could have a server running multiple vms with some OS like batocera, one per client. I do not think sharing GPU is feasible so software rendering only. You need to setup peripherals somehow for each client to each vm. Sounds complicated but plausible.

These options are all off the top of my head. I'm very curious what ideas other people share.