I am running ZimaOS on my NAS with Jellyfin as my local Media Server.
The Network Type is set to Host
My Hardware is a Intel n100 CPU and 16GB RAM
Everything is working fine up to 1080p Media. But if I want to stream 4k and need Transcoding the CPU usage goes to 100% and the stream starts to jerk. It is Not possible to watch a Stream this way.
Which settings do I have to make to get better Transcoding Performance? There is no dedicated GPU in the system.
It is indeed very difficult to transcode on the N100 model, let alone transcode 4K media, without a dedicated GPU to do so. I’ve opted to not have 4K media and set my profiles to grab x|h264 codec media whenever possible for compatibility with most devices. Even so, depending on the end users device capabilities and internet speeds…sometimes x|h264 will still transcode. I suspect this is mainly audio that is forcing the transcoding. 4K media is mainly available in x|h265, which is not a codec that widely used on smaller devices and TV’s due to hardware limitations.
I believe your N100 system is working as expected. The reason is that software transcoding of 4K is extremely heavy and will always push a small CPU like the N100 to 100 percent. That is why your 1080p files play fine but 4K does not.
I suggest checking one thing first. You want to confirm whether Jellyfin is actually using the N100’s built-in Intel QuickSync video engine. If hardware transcoding is enabled, the load will move from the CPU to the iGPU and 4K performance becomes much smoother.
Here are the two steps I recommend.
Step 1
Open Jellyfin admin
Playback
Transcoding
Make sure Hardware acceleration is enabled and set to VAAPI.
Step 2
Check if transcoding is really using the iGPU.
Start a transcode, then open this page inside Jellyfin.
Dashboard
Activity
If you see Video Codec h264 (VAAPI) or hevc (VAAPI) then the iGPU is active.
If you only see Software then the CPU is doing all the work.
I believe the real limitation here is that the N100 iGPU cannot transcode every type of 4K file. Some high bitrate HEVC files will still fall back to software. When that happens the CPU overload and stuttering is normal.
If you want stable 4K transcoding, the two options are
Lower the source bitrate or
Add a small Intel Arc GPU which works very well on ZimaOS.
Little confused on step 2. I go to Dashboard->Activity and it only shows VideoPlayback and VideoPlaybackStopped events. It doesn’t say anything about the use of VAAPI or software. That goes for all playback events. Jellyfin version 10.10.7. Am I just looking in the wrong place?
Also in BTop, I’m not sure if the iGPU usage would show in the GPU category so I can’t verify there either. I have successfuly passed the iGPU to Frigate and Frigate clearly shows its usage in the container.
You are looking in the right place, but the Activity page only shows the events. It will not show VAAPI or Software flags. That information appears in a different section.
Here is the correct way to confirm what Jellyfin is using.
Step 1
Start a 4K stream that forces transcoding.
Step 2
Open
Dashboard
Playback
Transcoding
In this view you will see the active transcode session.
Look at the line under the codec.
If it says VAAPI then hardware acceleration is working.
If it says Software then the CPU is doing all the work.
If that screen is empty then Jellyfin is direct playing or direct streaming, which means no transcoding is happening.
Regarding BTOP
The Intel iGPU will not appear in the GPU section. ZimaOS exposes it differently. BTOP only shows dedicated GPUs. So the iGPU will not appear there even if it is fully active.
Since Frigate shows the iGPU, your pass through setup is correct. Jellyfin just needs to be confirmed through the Transcoding page as shown above.
I checked my settings and actived hardware acceleration for transcoding. Now it is possible to stream at least one transcoded stream. But I am not sure if the system is using the iGPU now.
This is the output I get in the dashboard watching a transcoded stream
48.7 Mbps MP4 H264 AAC
The CPU usage is still around 95 to 98% the whole time