Table of Contents

Background
I just setup my Synology DS1821+ using Jellyfin for media server. It's great that everything is free and open-source that everyone can build together. Jellyfin is great that it comes with free hardware transcoding which in Plex and Emby you need to pay for that feature. The video scrapper and media wall all worked great for Jellyfin!

Problem
However, I've got problems that Synology NAS is simply not powerful enough for HEVC, 4k, and 10bit videos where it just serve as a high speed nas, instead of a media centric nas.
Jellyfin offers web player for playing your media. However, as my nas without hardware acceleration, the media can only be transcoded with the CPU. Playing 4K HDR with HEVC( H265 ) contents turns CPU into 100% and the video cannot be played.

Solution
There are several solutions to the problem. We need to avoid making the nas do the transcoding job. So we need media players that direct-play the video from nas instead of transcoding at the nas first then send out.
iOS
In iOS, Infuse and MrMC work for direct play.


MacOS
In MacOS, you can use Jellyfin Media client and pick the highest framerate for direct play.

Android and Windows
In Android and Windows, Jellyfin's Kodi plugin is here to help!

Multiple Users
However, if we need to share the media center with family members, it'll be hard for them to understand which player to use for different platform. So, is there a way for disabling the transcoding on the Jellyfin server to avoid CPU 100% problem.
Yes! I found the solution from the reference link!
Steps
Here is what we need to do:
We cannot setup for the whole system to avoid transcoding, but we can avoid it in users' settings one by one.
First, let's get to the users settings menu
Disable these settings to avoid transcoding!
Under Media Playback;
- ❌ Allow audio playback that requires transcoding
- ❌ Allow video playback that requires transcoding
- ❌ (possibly) Allow video playback that requires conversion without re-encoding
Under Download & Sync;
- ❌ Allow media downloading and syncing that requires transcoding
Now, if the player starts playing HEVC videos that the browser client cannot transcode, it will only show the cover page. The Jellyfin server will not transcode for them so that the media server can remain stable!
Future work
Finding a hardware powerful enough for transcoding is still important for a media server, I still need to survey which board is the cheapest for the job. Maybe, RPi4, Nvidia video card or Nvidia shield? Please share some thoughts if you know the answer.
Stucking in the cover page as the video cannot be played is just a horrible user experience. An alert or notice message are needed for telling them to use proper player to play Jellyfin with client transcoding!