Well it isn't really CPU vs GPU. It is integrated vs dedicated GPU. A CPU certainly can transcode, but not well. A lot of CPUs have integrated graphics which can handle transcoding quite well. I went with an Intel arc a380 because I know quite a lot of people could hit it under some circumstances. For most people though, I would recommend an Intel CPU with quicksync. What you really should spend your budget on IMO is as much storage as you can.
Selfhosted
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:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
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.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
My current setup:
- one stream using CPU transcoding, Intel Xeon E2246G
- six streams using GPU transcoding, Nvidia Tesla P4
I have no idea what the people who recommend CPU are smoking. The difference between a GPU with hardware support and doing it on the CPU is huge.
It’s really not, like at all. QuickSync is fast af and overkill for almost any usecase.
GPU all the way as it will be more efficient. Keep in mind Intel integrated graphics counts as a GPU
If only 1 person will watch at any given time, cpu is plenty
My optiplex with i5-6500TE can transcode 4K videos easily if the codec is AVC. HEVC is different story though. Any CPU newer than 10th generation would be more than enough for your needs, I'd say.
Use the on board GPU
6th gen's integrated GPU cannot decode HEVC.
Intel Quicksync would do it, no need for a dedicated GPU.
The easiest and cheapest solution is don’t allow transcoding.
The easiest way to do that is separate your 720/1080p videos from your 4k videos. Limit 4k access to the users that can play 4k
Setups for hardware decoding are based on the underlying OS. An example quite common is docker on Debian or Ubuntu. You will need to pass the appropriate /dev/ directories and at times files into your jellyfin docker container with the device environment variable. Commonly that would be /dev/dri
It gets more complicated with a vm because you are likely going to be passing the hardware directly into the vm which will prevent other devices outside the vm from using it.
You can get around this by placing docker directly on the os or placing docker in a Linux container with appropriate permissions and the same devices passed into the Linux container. In this manner system devices and other services will still have access the the video card.
All this to say it depends on your setup and where you have docker installed how you will pass the hardware into jellyfin. However jellyfin on docker will need you to pass the video card into the container with the device environment variable. Docker will need to see the device to be able to do that.
I've been using podman due to its low overhead.
Nothing but love for that project. I've been using docker-ce and docker-compse. I had portainer-ce but just got tired of it. It's easier for me to just make a compose file and get things working exactly like I want.