• Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below
  • Forum
  • Website
  • GitHub
  • Status
  • Translation
  • Features
  • Team
  • Rules
  • Help
  • Feeds
User Links
  • Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below

    Useful Links Forum Website GitHub Status Translation Features Team Rules Help Feeds
    Jellyfin Forum Support General Questions Seeking help understanding and optimizing transcoding on my TrueNAS server

     
    • 0 Vote(s) - 0 Average

    Seeking help understanding and optimizing transcoding on my TrueNAS server

    mooch91
    Offline

    Junior Member

    Posts: 14
    Threads: 6
    Joined: 2025 Mar
    Reputation: 0
    Country:United States
    #1
    2025-03-10, 12:56 PM (This post was last modified: 2025-03-10, 01:02 PM by mooch91. Edited 1 time in total.)
    Hi all,

    TLDR: Looking for tips to set up and optimize transcoding on my TrueNAS/Jellyfin media server.

    Still relatively new to Jellyfin and server setup in general.  I recently set up a Jellyfin instance in a container on a TrueNAS server.  The server is an HP EliteDesk 800 G5, running an Intel i7-9700, with 16 GB of memory, and 2x14TB mirrored.

    My Jellyfin clients include browsers on various PCs, Apple devices (iPhones and iPads), and Rokus around the house.  Local networking is a combination of gigabit wired and 3 wireless access points running on a TP-Link Omada controller, so it is solid.  My primary Roku is literally 3 feet from the closest wireless access point.

    My currently small library is a mix of DVDs, Blu-Rays, and Ultra HD ripped using MakeMKV.  I still do not fully understand video encoding and containers, I'm letting MakeMKV do its thing without changing anything or re-encoding.

    What I'd like to understand is what is needed to be set up from a transcoding perspective.  I believe the HP computer with the 9th gen Intel should have some reasonable capabilities to support.

    I've been playing back the library over the last week and have noticed a couple of issues.  Some of the DVD playbacks seem to be a littl grainy.  And the UHD/4K would not play over the Roku without buffering every 5 seconds (and would ultimately fail).

    What I've done so far:

    Within TrueNAS, I configured resources to "pass through available GPUs".  I left the options as default.
       

    Within Jellyfin, I set under "Intel Quicksync QSV" as hardware acceleration under Transcoding.  I also added HEVC to the list of protocols to be transcoded.  I left all other options the same.
       
       

    Any of the other options in Jellyfin remain as default.

    This has resolved the issue with playback on Roku for the 4K content for sure.  While transcoding the 4K content, I see the CPU utilization on the TrueNAS server come up to between 20-30% for both user and system.

    Can anyone offer me any additional tips for further optimizing the transcoding for my setup?  I am considering adding some memory since it's cheap, but I'm specifically looking at the settings since I don't understand most of them.  As an example, should I be transcoding all of the formats or just the ones selected as defaults?

    Thanks!
    TheDreadPirate
    Offline

    Community Moderator

    Posts: 15,374
    Threads: 10
    Joined: 2023 Jun
    Reputation: 460
    Country:United States
    #2
    2025-03-10, 03:16 PM
    2 CPU cores is pretty limiting. Audio transcoding always happens on the CPU. As does subtitle burn in. With subtitle burn in, the GPU will still decode and encode, but the CPU renders the subtitle in the video.

    So limiting Jellyfin to two cores can potentially be a factor.

    The list of codecs at the top does not force Jellyfin to transcode those codecs. It only informs Jellyfin which codecs your GPU can decode when it does need to transcode a video. If it is not checked and Jellyfin does need to transcode, the CPU will decode the video before sending to the GPU for encoding.

    Use this wiki to check the correct boxes. The "Coffee Lake" column. Basically, check everything in the list except AV1 and HEVC RExt. You can also check "Allow encoding in HEVC format" and both tone mapping boxes.

    https://en.wikipedia.org/wiki/Intel_Quic...d_encoding

    You should also enable Low Power encoding, but only for H264. But this does require additional configuration in the OS. This is optional, but can increase performance when you are tone mapping HDR to SDR.

    https://jellyfin.org/docs/general/admini...r-encoding
    Jellyfin 10.10.7 (Docker)
    Ubuntu 24.04.2 LTS w/HWE
    Intel i3 12100
    Intel Arc A380
    OS drive - SK Hynix P41 1TB
    Storage
        4x WD Red Pro 6TB CMR in RAIDZ1
    [Image: GitHub%20Sponsors-grey?logo=github]
    1
    mooch91
    Offline

    Junior Member

    Posts: 14
    Threads: 6
    Joined: 2025 Mar
    Reputation: 0
    Country:United States
    #3
    2025-03-10, 03:29 PM (This post was last modified: 2025-03-10, 03:40 PM by mooch91. Edited 1 time in total.)
    (2025-03-10, 03:16 PM)TheDreadPirate Wrote: 2 CPU cores is pretty limiting.  Audio transcoding always happens on the CPU.  As does subtitle burn in.  With subtitle burn in, the GPU will still decode and encode, but the CPU renders the subtitle in the video.

    So limiting Jellyfin to two cores can potentially be a factor.

    The list of codecs at the top does not force Jellyfin to transcode those codecs.  It only informs Jellyfin which codecs your GPU can decode when it does need to transcode a video.  If it is not checked and Jellyfin does need to transcode, the CPU will decode the video before sending to the GPU for encoding.

    Use this wiki to check the correct boxes.  The "Coffee Lake" column.  Basically, check everything in the list except AV1 and HEVC RExt.  You can also check "Allow encoding in HEVC format" and both tone mapping boxes.

    https://en.wikipedia.org/wiki/Intel_Quic...d_encoding

    You should also enable Low Power encoding, but only for H264.  But this does require additional configuration in the OS.  This is optional, but can increase performance when you are tone mapping HDR to SDR.

    https://jellyfin.org/docs/general/admini...r-encoding

    Thanks very much for the response.  Is there a recommendation for number of cores of an 8-core processor, as well as memory, that one should allocate?  Right now, the server is being used as a NAS as well as for Home Assistant, along with Jellyfin.

    Thanks also for the explanation of the codecs - very helpful - as well as the chart.

    I'll also need to read up on the subtitle piece a bit more.  I don't generally use the subtitles, though I've been ripping at least the English tracks with any discs, as I know others in my family do - to aid in catching everything when they are walking the treadmill, for example.
    TheDreadPirate
    Offline

    Community Moderator

    Posts: 15,374
    Threads: 10
    Joined: 2023 Jun
    Reputation: 460
    Country:United States
    #4
    2025-03-10, 03:47 PM
    4 cores should be enough. 4GB should be enough memory, but 8GB is recommended if you have enough to spare. Large library scans can spawn a lot of ffmpeg processes that would benefit from the additional memory. Or you can limit the number of library scan threads and stay at 4GB of memory.

    Dashboard > General. At the bottom there are two settings to specify how many threads Jellyfin uses during library scans. By default it will spawn 2x the number of threads available.
    Jellyfin 10.10.7 (Docker)
    Ubuntu 24.04.2 LTS w/HWE
    Intel i3 12100
    Intel Arc A380
    OS drive - SK Hynix P41 1TB
    Storage
        4x WD Red Pro 6TB CMR in RAIDZ1
    [Image: GitHub%20Sponsors-grey?logo=github]
    Efficient_Good_5784
    Offline

    Community Moderator

    Posts: 1,167
    Threads: 3
    Joined: 2023 Jun
    Reputation: 50
    #5
    2025-03-10, 06:45 PM
    Just to point out, in the Truenas app launcher, "CPUs" is in threads, not cores.

    So if you have an 8 core CPU, you have 16 total threads which can be assigned to a container.

    As an example, setting CPUs to 8 will assign a total limit of 4 cores (8 threads) to the container.

    Also keep in mind that CPUs is a limit, not a forced setting. The container will use less threads when it doesn't need all of them, then use as much up to the limit that you set.

    I would also not recommend trying to enable low power encoding on Truenas since Truenas is shipped as an appliance OS. This means that anything you modify outside of the provided GUI will 99% of the time be lost when you update Truenas to a new version (or restore from an OS failure).

    This means that if you're serious about enabling low power encoding on Truenas, you will need to do the same steps to enable it in the shell upon each new Truenas update. ix-systems also removes permissions for apt so that newbies don't accidentally brick their system following some random instructions online. You can't use apt until you restore permissions with chmod each Truenas update too.
    mooch91
    Offline

    Junior Member

    Posts: 14
    Threads: 6
    Joined: 2025 Mar
    Reputation: 0
    Country:United States
    #6
    2025-03-10, 08:48 PM
    (2025-03-10, 06:45 PM)Efficient_Good_5784 Wrote: Just to point out, in the Truenas app launcher, "CPUs" is in threads, not cores.

    So if you have an 8 core CPU, you have 16 total threads which can be assigned to a container.

    As an example, setting CPUs to 8 will assign a total limit of 4 cores (8 threads) to the container.

    Also keep in mind that CPUs is a limit, not a forced setting. The container will use less threads when it doesn't need all of them, then use as much up to the limit that you set.

    I would also not recommend trying to enable low power encoding on Truenas since Truenas is shipped as an appliance OS. This means that anything you modify outside of the provided GUI will 99% of the time be lost when you update Truenas to a new version (or restore from an OS failure).

    This means that if you're serious about enabling low power encoding on Truenas, you will need to do the same steps to enable it in the shell upon each new Truenas update. ix-systems also removes permissions for apt so that newbies don't accidentally brick their system following some random instructions online. You can't use apt until you restore permissions with chmod each Truenas update too.

    Thanks.  So with CPU set at 2, I'm effectively using 2 threads = 1 core.

    I was going to stay away from low-power encoding for now; if I can't change it in the GUI, I'm not experienced enough with linux to do it.  Smiling-face
    « Next Oldest | Next Newest »

    Users browsing this thread: 1 Guest(s)


    • View a Printable Version
    • Subscribe to this thread
    Forum Jump:

    Home · Team · Help · Contact
    © Designed by D&D - Powered by MyBB
    L


    Jellyfin

    The Free Software Media System

    Linear Mode
    Threaded Mode