The cheapest transcoder is the one you never start. Before you buy a graphics card for your media server, find out how often it will really have to work.
The short answer
What hardware do you need to transcode with Jellyfin or Plex? First make Direct Play work, because then the server hardly works at all [2]. If something still has to be transcoded, a processor with integrated Intel graphics and Quick Sync is the cheapest sensible step on both servers. Jellyfin's hardware guide names the Intel N100, the Pentium Gold G7400 and the Core i5-11400 as examples [1]. A graphics card is for heavy loads or for hardware you already own. The big difference is the licence. Plex needs an active Plex Pass on the server owner's account for hardware transcoding [7]. Jellyfin's documentation lists no paid tier for it.
How it works
- Four kinds of playback. Jellyfin lists them from the lowest to the highest load. Direct Play delivers the file untouched. Remux changes only the container. Direct stream transcodes the audio and leaves the video alone. Transcode converts the video [2]. The client asks for what it can handle, and the server picks the best settings within its capabilities [2]. Plex describes the same idea with the names Direct Play, Direct Stream and transcoding [8].
- What pushes you into a transcode. A client that does not support the video codec. A remote connection that is too slow for the original bitrate: Plex notes that remote access very often requires transcoding because the network speed often cannot carry full quality [8]. Subtitles that are burned into the picture: both projects say this needs transcoding, and Jellyfin calls it the most intensive part [6][8]. HDR video: when the source is HDR, Jellyfin has to tone-map it to SDR, because it supports neither HDR-to-HDR tone-mapping nor passing HDR metadata through [2]. Jellyfin's codec table shows how much depends on the client. H.264 8-bit is fully supported in the browsers it lists, except Firefox where it depends on the setup. H.265 10-bit depends on the device in Chrome, Edge, Firefox, Android and Roku [6].
- How hard software transcoding hits the CPU. Plex gives a rough guide in PassMark scores for one full transcode: 2,000 for a 1080p H.264 file at 10 Mbps, 12,000 for a 4K SDR HEVC file at 40 Mbps, and 17,000 for a 4K HDR HEVC file at 50 Mbps, each converted to 10 Mbps 1080p. You multiply by the number of simultaneous streams. Plex says to use it only for a rough idea, and the article was last modified on 18 Jun 2019 [8]. Jellyfin adds two data points. Tone-mapping 4K 60 fps Dolby Vision to 4K 60 fps H.264 SDR needs a Ryzen 9 5950X to run faster than real time in software. And for HDR tone-mapping, even a basic Intel integrated GPU can handle as much load as a Ryzen 5800X [1][2]. That is why Jellyfin says not having a GPU is not recommended [1].
- Hardware transcoding has three names. Quick Sync Video (QSV) is the video engine in Intel graphics. NVENC and NVDEC are NVIDIA's encoder and decoder. VA-API, the Video Acceleration API, is the Linux interface for video hardware on Intel and AMD. Jellyfin supports QSV, NVENC, AMD's AMF, VA-API on Linux, Apple's VideoToolbox and Rockchip RKMPP [3]. Plex uses Quick Sync and NVENC, and on Linux VA-API and NVDEC [7]. Both fall back to software when the hardware cannot handle a format [7][3].
- Intel is the easy default. For integrated graphics, Jellyfin recommends the Core i5-11400, the Pentium Gold G7400, the Intel N100 or an Apple M series, and excludes Intel J, M, N and Y series up to the 11th generation. It removed the 7th to 10th generation from the list because Intel deprecated the toolkit, and says to keep using them if you own them, but to look elsewhere if you are buying [1]. Intel's own pages list the N100 with 4 cores, a design power (TDP) of 6 W and Quick Sync [15], and the Pentium Gold G7400 with 2 cores, 4 threads, a base power of 46 W, UHD Graphics 710 and Quick Sync [16]. Do not buy a model with the letter F in its name, since it has no integrated graphics [4]. Jellyfin's generation table: H.264 8-bit on any Quick Sync GPU, HEVC 8-bit from the 6th generation, HEVC 10-bit from the 7th, AV1 decoding from the 11th, AV1 encoding only on Arc A-series and Meteor Lake and newer [4]. The N100 belongs to the Alder Lake-N family [15], so by that table we read it as able to decode AV1 but not encode it. Under Linux, 12th and 13th generation integrated graphics need kernel 6.2 or newer [1]. Quick Sync on Linux is losing support for Ice Lake, Jasper Lake, Elkhart Lake and older, because Intel deprecated the runtime [4]. Plex wants a 2nd generation Core (Sandy Bridge) or newer, recommends 5th generation or newer, and needs a 7th generation i3, i5 or i7 for HEVC encoding [7]. On Intel, neither project sets an artificial limit on simultaneous streams [7][4].
- NVIDIA fits when you already own a card or need the headroom. Jellyfin supports NVENC from the Maxwell generation, HEVC 10-bit encoding from Pascal, AV1 decoding from Ampere and AV1 encoding from Ada Lovelace. Low-end cards such as the GT 1030 have no encoder [5]. Jellyfin ranks encoder quality with the newest NVIDIA parts on top, but still recommends Intel on Linux unless you need CUDA, because Intel's drivers are easier to set up [1]. NVIDIA GeForce cards can limit concurrent encoding sessions, which Plex calls a driver limitation [7]. NVIDIA's own pages disagree on the number: its support matrix lists 12 concurrent sessions for the GeForce RTX 30, 40 and 50 rows we read [17], while an NVENC application note for SDK 13.0 says 8 per system for non-qualified GPUs [18]. Look up the row for your card. In Docker, Jellyfin's image needs the NVIDIA driver and the NVIDIA Container Toolkit on the host [5].
- AMD is the least preferred choice for both. Jellyfin calls AMD graphics the least preferred option, because its H.264 encoders before RDNA 4 are weak and the driver support is poor. It does not recommend AMD for integrated graphics either [1]. Plex says its support for many AMD cards is “as is” and recommends Intel Quick Sync or a dedicated NVIDIA GPU [7].
- Small boards and NAS boxes need a second look. Jellyfin lists prebuilt NAS appliances, most single-board computers including the Raspberry Pi 5, and Intel J, M, N and Y chips up to the 11th generation as potentially problematic [1]. The Raspberry Pi 5 has no hardware encoders, so Jellyfin deprecated its V4L2 support for the Pi [3]. If every client Direct Plays, the CPU hardly matters, but the Jellyfin guide still warns against these platforms, so test before you commit [1][2]. Plex asks for a Jasper Lake or better processor in a NAS for reliable HEVC output [7].
- The licence is part of the hardware bill. Plex calls hardware-accelerated streaming a premium feature that needs an active Plex Pass [7]. HDR tone-mapping also needs it [9]. Streaming outside your home network needs a Plex Pass on the server admin's account, or a Remote Watch Pass on the viewer's account [11]. The Remote Watch Pass does nothing else, so it does not unlock hardware transcoding [10]. On Plex's blog, the US-dollar example prices are: Plex Pass $6.99 per month and $69.99 per year since 29 Apr 2025 [12], unchanged according to the post of 19 May 2026 [13]. A new lifetime Plex Pass costs $749.99 since 1 Jul 2026, up from $249.99, and a new five-year plan costs $249.99 [13]. Plex says other currencies may vary [13]. The plans page showed no prices when we loaded it on 25 Oct 2026 [11], so today's euro price is unconfirmed. Over five years the dollar examples add up to $419.40 monthly, $349.95 yearly, $249.99 for the five-year plan or $749.99 lifetime (our calculation). One third-party hardware guide from March 2026 still lists $120 for lifetime and $5 per month [19]. That is out of date against Plex's own posts, which is why you read the price at the source.
- Power matters for a box that runs all year. TDP and base power are design figures, not wall readings. Measure your machine. The formula is watts × 8,760 hours ÷ 1,000, which gives kWh per year. As an assumed example, a box averaging 15 W uses 131.4 kWh a year, or €48.62 at €0.37 per kWh, the household average that BDEW's analysis of August 2026 reports for 2026 so far [20][21]. The wattage is an assumption, not a measurement; use your own tariff. Our guide on energy costs explains the method.
- The rest of the machine. Jellyfin recommends a 100 GB SSD for the system, its files and the transcoding cache, 8 GB of RAM (4 GB can do for a Linux server without a desktop), gigabit Ethernet instead of Wi-Fi or Powerline, and at least 20 Mbps of upload for remote access [1]. Its rule of thumb for the cache is your largest media file times the maximum number of concurrent streams [1]. It advises dual-channel memory for integrated graphics and warns against SMR hard drives for Jellyfin's own files [3][1]. Plex warns that its database does not work reliably on network shares such as NFS or SMB [14]. Jellyfin states it is not designed to be exposed directly to the internet [1]. Put it behind a firewall, a reverse proxy or a VPN.
What fits when
Our assessment, based on the documentation above:
| Your situation | Hardware that fits | Licence note |
|---|---|---|
| Every client Direct Plays, nobody streams from outside | A modest, low-power machine, because Direct Play puts almost no extra load on the server [2] | Local streaming is free on Plex [11] |
| A few transcodes at once: a phone on mobile data, burned-in subtitles, some HDR | An Intel processor with Quick Sync, in the class of the N100 or G7400 that Jellyfin's guide names [1] | Plex needs a Plex Pass for hardware transcoding [7] |
| Many 4K HDR streams with tone-mapping | A newer Intel GPU or an NVIDIA RTX card. Jellyfin says a GPU is always recommended for tone-mapping [2] | Same as above |
| You already own an NVIDIA card | Use NVENC, check your card's session limit and the driver version [5][17] | Same as above |
| A prebuilt NAS or a Raspberry Pi | Test first. Jellyfin lists both as potentially problematic [1] | Plex wants Jasper Lake or better in a NAS for HEVC output [7] |
A homelab example
This is how a setup could look. It is an example, not a report on our systems. We make no statement about media servers in our homelab (as of 25 Oct 2026). This guide covers your own media only: home videos, recordings and files you have the right to use. We point to no sources for other people's content.
Assume three clients. A living-room TV that Direct Plays everything, a laptop browser at home that sometimes needs HEVC converted, and a phone on mobile data that gets a lower bitrate. By Plex's rough guide, two software transcodes of 1080p files would need about 4,000 PassMark points, and a single 4K HDR transcode 17,000 [8]. Integrated Quick Sync avoids that bill. So the plan is a small mini PC of the N100 class, Linux with a current kernel, and Docker.
First check that the graphics device exists and find the group that may use it:
ls -l /dev/dri
getent group render | cut -d: -f3Jellyfin's compose example for Intel graphics, from its documentation [4]. Replace 122 with your render group id and the paths with yours:
services:
jellyfin:
image: jellyfin/jellyfin
user: 1000:1000
group_add:
- '122'
network_mode: 'host'
volumes:
- /path/to/config:/config
- /path/to/cache:/cache
- /path/to/media:/media
devices:
- /dev/dri/renderD128:/dev/dri/renderD128Then ask the container what the graphics can do with docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/vainfo. In the Jellyfin dashboard, switch on QSV or VA-API for the codecs your hardware supports and switch off the rest [4]. To test, play a file and force a transcode by lowering the resolution or bitrate [4].
For Plex, the official container needs the device passed through and a Plex Pass on the server owner's account [14]:
docker run -d --name plex --network=host \
-e TZ="<timezone>" -e PLEX_CLAIM="<claimToken>" \
-v <path/to/plex/database>:/config \
-v <path/to/transcode/temp>:/transcode \
-v <path/to/media>:/data \
--device=/dev/dri:/dev/dri \
plexinc/pms-dockerThen open Settings, Server, Transcoder, turn on Show Advanced and tick “Use hardware acceleration when available” [7]. To check it, force a conversion in any Plex app and look for “(hw)” next to the video format in the dashboard [7]. Two notes. The Plex README tests for the i915 kernel driver, while Jellyfin says newer Intel GPUs use the xe driver [14][4]. And Plex says hardware streaming is currently not possible inside a virtual machine [7]. We found no statement about GPU passthrough in either project's docs, so test it if you plan to try.
Checklist
- Test which of your clients Direct Play which files, and write down the ones that force a transcode.
- Read Jellyfin's codec table for your client devices before you buy anything.
- Look up the processor on Intel's page: Quick Sync must say Yes, and the name must not end in F.
- Check the Linux kernel version if you use a 12th or 13th generation Intel part or an Arc card.
- Decide on Plex Pass or Jellyfin first, and read today's price at plex.tv before you pay.
- Look up the encode-session row for your NVIDIA card, and check the driver version.
- Keep the Jellyfin config and cache on an SSD, and avoid SMR drives for them.
- Measure the wall power of the box and calculate the yearly cost with your own tariff.
- Expose the server only through a VPN or reverse proxy, never directly.
- Force a transcode after setup and confirm that the dashboard shows hardware acceleration.