I built a 4K Jellyfin server with Intel Quick Sync for under $200 and it’s more than enough to replace my old GPU setup.


Unlike typical lightweight FOSS tools, you need a proper set of hardware to get a media server up and running. The storage front is especially important, as you’ll need TB of space to house your collection of ripped TV shows and movies. If you ask any veteran tuner, they’ll also recommend getting a spare GPU for hardware-assisted transcoding tasks.

But when PC hardware prices hit the red zone, dedicated graphics cards that don’t sell for scalp prices start to look like a myth. In fact, this is the same problem I ran into a few weeks ago when I wanted to replace my code replacement task on a Jellyfin instance. After hearing good things about the Intel N100, I tried converting the sub-$200 system to a Jellyfin server, and it has one minor gripe, it can handle parallel 4K streams without breaking a sweat.


Asus Rog Strix RTX 3080 Ti graphics card.

Intel Quick Sync is the reason I will never buy another Nvidia card for my Jellyfin server

Quick Sync is effective for self-hosted media server installations

Hardware transcoding is a must for my setup

But I don’t want to use the old GPU only for transcoding operations

The person holding the LattePanda Mu

If you’re like me, you probably have movies and TV shows ripped to all kinds of codecs. Unfortunately, not all devices in my arsenal can support every media format, and that’s where transcoding comes into the equation. As you may have guessed by now, transcoding converts an incompatible video format into a format that the device can play. But relying entirely on the CPU to transcode videos is not ideal, as it can cause frame drops and stutter the video stream under additional transcoding tasks.

This is where hardware-assisted coding comes into the equation. Instead of taxing the graphics cards CPU, it solves the extra processing load required to convert the video codecs to the correct format for the client device, only to get poor performance. But here’s the thing: I already use my old graphics card for my virtual machine heavy experiments. So unless I start running Jellyfin on me giant VM (which I have no intention of doing) I had to look at alternatives – like relying on the integrated GPU. You see, a few (but not all) modern Intel processors have an additional processing core called Quick Sync, designed to handle moderate coding tasks, in addition to the iGPU. This makes it a perfect alternative to a dedicated GPU, especially since my family doesn’t stream more than 3 4K videos simultaneously.

I went with Jellyfin LXC hosted on Proxmox

One that supports GPU switching and connects to my SMB shares

Shifting gears to the practical side of things, I decided to use it LattePanda Mu Jellyfin as the host system for my server. It is a working compute module with N100 CPU and 8 GB RAM Proxmox on a SBC with similar features I’ve learned to underestimate Intel’s budget processor in the past.

Anyway, I armed the board with Proxmox and a few LXCs, and configuring Jellyfin was as simple as executing. bash -c “$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/jellyfin.sh)” In the Shell section of the PVE node. Since I plan to combine this LXC with SMB shares with all the archived media files on the NAS, I went with the default settings and didn’t bother to allocate additional storage provisions. Even better, the PVE Helper Script immediately detected the Intel iGPU and started installing the drivers along with other Jellyfin packages. Once the container was up and running, I logged into its web UI and enabled Intel Quick Sync in the Transcoding tab of the Dashboard section.

Selecting the path for archived files within Jellyfin LXC

Unfortunately, Proxmox’s UID/GID mapping tendencies make things a bit more difficult when connecting network shares to unprivileged LXCs, meaning I had to consider workarounds when adding archived movies and TV shows to my Jellyfin instance. The tether mount solution involves connecting the primary Proxmox host to the SMB share on the NAS, which is easy enough to do via the Storage section of PVE’s Datacenter tab. I also created a new folder within LXC to serve as a mount point for the network share. Then I ran away pct set 102 -mp0 /mnt/pve/jellyfin-smb,mp=/mnt/media Command to allow the Jellyfin server to access the share. Finally, I navigated to Jellyfin’s web UI and used the Library option to add the folders that housed my painstakingly collected media library. Sure enough, they appeared in the directory and Jellyfin began scanning the files and their metadata.


Jellyfin on TV

6 Jellyfin plugins that add free features Plex will charge you for

Jellyfin’s plugin ecosystem does what Plex does for free, and it’s free

My budget setup is more than enough to handle a few 4K streams

AV1 decoding is the only missing component here

Jellyfin scans the Library

Wanting to confirm that the iGPU was working for my transcoding tasks, I quickly tried playing some videos from my collection in my web browser. Of course, changing some playback settings resulted in the Playback method switching to Transcoding without causing any stuttering or dropped frames. I was able to run three 4K streams simultaneously, even the fourth with a few frame drops at the start. Switching to 1080p videos made things a lot easier on the system and my N100 was able to handle 8 streams without any noticeable issues.

However, this pint-sized setup has an Achilles’ Heel – although the N100’s iGPU does well with hardware-accelerated AV1 decoding, it must rely on the CPU to encode this codec. It’s kind of confusing, but given that most of my files are in H.264 and HEVC, it’s not a deal breaker by any means. Honestly, the fact that I can play all 4K videos from a low-powered device with a small footprint like the LattePanda Mu speaks volumes for the capabilities of Intel Quick Sync, and I have no doubt that I’ll soon be ditching the GPU for my media streaming tasks.

LattePanda Mu

Storage

64 GB eMMC, M.2 M key slot

CPU

Intel N100 (upgradable to Intel i3-N305)

Memory

8 GB LPDDR5 (upgradable to 16 GB)

Operating system

Windows 11, Linux

Ports

4x USB Type-A, 1x HDMI 2.0, 1x 1GbE RJ45, 1x PCIe 3.0 x4

GPU

Intel UHD Graphics




Source link

Leave a Reply

Your email address will not be published. Required fields are marked *