From 51c6b16bbd2fa15b8c559eb37872d6340c50a2b6 Mon Sep 17 00:00:00 2001 From: felix920506 Date: Wed, 20 Sep 2023 15:28:28 -0400 Subject: [PATCH 1/3] Create Hardware Selection Guide and link from a few places --- .../hardware-acceleration/amd.md | 64 +----- .../hardware-acceleration/index.md | 3 +- .../hardware-acceleration/intel.md | 126 +----------- .../hardware-acceleration/nvidia.md | 72 +------ .../administration/hardware-selection.md | 188 ++++++++++++++++++ docs/general/installation/index.mdx | 2 + 6 files changed, 195 insertions(+), 260 deletions(-) create mode 100644 docs/general/administration/hardware-selection.md diff --git a/docs/general/administration/hardware-acceleration/amd.md b/docs/general/administration/hardware-acceleration/amd.md index 8ad2fe155..6603d432d 100644 --- a/docs/general/administration/hardware-acceleration/amd.md +++ b/docs/general/administration/hardware-acceleration/amd.md @@ -51,69 +51,7 @@ There are two different methods that can be used on Windows and/or Linux. Pros a ## Select GPU Hardware -:::caution - -Most AMD dGPUs come with video encoders but be careful with certain models - RX 6400/6500 series don't have video encoders. - -::: - -AMD Ryzen APU (G/GE/H/HS/HX suffixed models) and Zen 4 based processors have integrated graphics. - -Best to check the video codec support via the [AMD product specifications](https://www.amd.com/en/products/specifications) before buying a GPU for hardware acceleration. - -### Transcode H.264 - -AVC / H.264 8-bit is still widely used due to its excellent compatibility. All AMD GPUs that support AMF or VA-API can decode and encode it. - -- **Decoding & Encoding H.264 8-bit** - Any AMD GPU supporting AMF or VA-API - -### Transcode HEVC - -HEVC / H.265 remains the first choice for storing 4K 10-bit, HDR and Dolby Vision video. It has mature software encoding support thanks to [x265](https://x265.readthedocs.io/en/master/), as well as the widely implemented hardware encoding support in most GPUs released after 2016. - -The HEVC support on AMD is complicated: - -- **Decoding HEVC 8-bit** - Radeon R9 Fury and newer (Fiji) - -- **Encoding HEVC 8-bit** - Radeon RX 400 series (Polaris) and newer - -- **Decoding HEVC 10-bit** - Radeon RX 400 series (Polaris) and newer - -- **Encoding HEVC 10-bit** - Ryzen 4000 series APU (Renoir), Radeon RX 5700 series (Navi 1x) and newer - -:::note - -Note that even though the RX 400 series have HEVC 10-bit decoding support, it doesn't support the [DRM-Vulkan format modifier](https://gitlab.freedesktop.org/mesa/mesa/-/issues/5882), which means full hardware acceleration is not possible for these cards on Linux for the time being. A Vega or newer GPU is recommended on Linux. - -::: - -### Transcode AV1 - -AV1 is a royalty-free, future-proof video codec. It saves a lot of storage space and network bandwidth due to smaller file size. The downside is that decoding and encoding is very demanding on the CPU. Hardware acceleration makes it possible to transcode AV1 streams on the fly. AV1 encoding support in Jellyfin is planned in the future. - -AMD added support for AV1 acceleration in their latest GPUs: - -- **Decoding AV1 8/10-bit** - Radeon RX 6000 series (Navi 2x), Ryzen 6000 mobile APU and newer (except RX 6400/6500) - -- **Encoding AV1 8/10-bit** - Radeon RX 7000 series (Navi 3x), Ryzen 7000 mobile APU and newer - -### Transcode Other Codecs - -Please refer to these links: - -- [X.org RadeonFeature](https://www.x.org/wiki/RadeonFeature/) - -- [GitHub - GPUOpen-LibrariesAndSDKs/AMF](https://github.com/GPUOpen-LibrariesAndSDKs/AMF) - -### Speed And Quality - -Due to the lack of B-frame support, the encoding quality of the AMD H.264 hardware encoder has been unsatisfactory. Although RX 6000/VCN3.0 brings back the B-frame support, the quality improvement is not great. - -The AMD HEVC encoder is far better than the AMD H.264 encoder, and the new AMD AV1 encoding support on RX 7000/VCN4.0 seems to be the savior of AMD encoding quality. Nonetheless they are currently no match for Intel QSV and NVIDIA NVENC. VCN4.0 additionally improved the encoding speed drastically. - -Encoding speed and quality: - -- VCN4(RX 7000) > VCN3/VCN2(RX 6000/RX 5000/Renoir) > VCN1/VCE(Raven/Picasso/GCN GPUs) +Please refer to the [Hardware Selection Guide](/docs/general/administration/hardware-selection) for tips on selecting hardware. ## Windows Setups diff --git a/docs/general/administration/hardware-acceleration/index.md b/docs/general/administration/hardware-acceleration/index.md index 41ab1b230..80a602a32 100644 --- a/docs/general/administration/hardware-acceleration/index.md +++ b/docs/general/administration/hardware-acceleration/index.md @@ -28,7 +28,8 @@ The supported and validated video [hardware acceleration (HWA)](https://trac.ffm :::caution While hardware acceleration is supported on Raspberry Pi hardware, it is recommended that Jellyfin NOT be hosted on Raspberry Pis or other SBCs. Many hardware acceleration features are not supported and will fallback to software. In addition, they are generally too slow to provide a good experience when transcoding is needed. Please consider getting a more powerful system to host Jellyfin. -We recommend getting a system with an Intel 7th gen or above Core series CPU. + +Please refer to the [Hardware Selection Guide](/docs/general/administration/hardware-selection) for more info on selecting hardware. ::: diff --git a/docs/general/administration/hardware-acceleration/intel.md b/docs/general/administration/hardware-acceleration/intel.md index c34c37f2c..3de8d365c 100644 --- a/docs/general/administration/hardware-acceleration/intel.md +++ b/docs/general/administration/hardware-acceleration/intel.md @@ -87,131 +87,7 @@ The `Prefer OS native DXVA or VA-API hardware decoders` feature toggles between ## Select GPU Hardware -:::caution - -Do not use models of Intel processors ending with "F" - those do not have an integrated GPU. - -::: - -Quick Sync Video support can be checked via the [Intel ark website](https://ark.intel.com/content/www/us/en/ark.html) prior to buying a new GPU suitable for hardware acceleration. - -### Transcode H.264 - -AVC / H.264 8-bit is still widely used due to its excellent compatibility. All Intel GPUs that support QSV can decode and encode it. - -- **Decoding & Encoding H.264 8-bit** - Any Intel GPU that supports Quick Sync Video (QSV) - -### Transcode HEVC - -HEVC / H.265 remains the first choice for storing 4K 10-bit, HDR and Dolby Vision video. It has mature software encoding support thanks to [x265](https://x265.readthedocs.io/en/master/), as well as the widely implemented hardware encoding support in most GPUs released after 2016. - -Intel GPUs are no exception: - -- **Decoding & Encoding HEVC 8-bit** - Gen 9 Sky Lake (6th Gen Core) and newer - -- **Decoding & Encoding HEVC 10-bit** - Gen 9.5 Kaby Lake (7th Gen Core), Apollo Lake, Gemini Lake (Pentium and Celeron) and newer - -:::note - -Note that the 6th Gen Core lacks 10-bit support, it's best to choose 7th Gen and newer processors, which usually have HD / UHD 6xx series iGPU. - -::: - -### Transcode AV1 - -AV1 is a royalty-free, future-proof video codec. It saves a lot of storage space and network bandwidth due to smaller file size. The downside is that decoding and encoding is very demanding on the CPU. Hardware acceleration makes it possible to transcode AV1 streams on the fly. AV1 encoding support in Jellyfin is planned in the future. - -Intel added support for AV1 acceleration in their latest GPUs: - -- **Decoding AV1 8/10-bit** - Gen 12 Tiger Lake (11th Gen Core) and newer - -- **Encoding AV1 8/10-bit** - Gen 12.5 DG2 / ARC A-series, Gen 12.7 Meteor Lake (14th?? Gen Core) and newer - -:::note - -Note that Jasper Lake and Elkhart Lake processors are 10th Gen Pentium/Celeron/Atom, which don't have AV1 acceleration. - -::: - -### Transcode Other Codecs - -Please refer to these links: - -- [Intel Media Capabilities documentation](https://www.intel.com/content/www/us/en/develop/documentation/media-capabilities-of-intel-hardware/top.html) - -- [Linux media-driver/iHD capabilities](https://github.com/intel/media-driver#decodingencoding-features) - -- [Linux vaapi-driver/i965 capabilities](https://github.com/intel/intel-vaapi-driver/blob/master/README) - -### Speed And Quality - -Intel improves the speed and video quality of its fixed-function encoders between each generation of graphics architectures. - -They can be divided into 4 tiers by their performance: - -- **Entry-Level** - HD / UHD 500, 600, 605 and 61x - - :::tip - - These iGPUs usually come from mini PC boxes or Synology NASes and they can transcode HEVC 10-bit and apply tone-mapping filters. You can't expect much due to performance and power constraints, but it's still adequate for personal use. - - ::: - -- **Mainstream** - HD / UHD 620, 630, Iris 640, 655 and the Gen 11 graphics - - :::tip - - These iGPUs have more computing power than entry-level, which makes them capable of multiple 4k HDR HEVC 10-bit transcoding at the same time. Note that the Gen 11 graphics have a slightly improved encoder quality over Gen 9. - - ::: - -- **High-Performance** - UHD 7xx series and Iris Xe graphics - - :::tip - - These GPUs use Gen 12 XeLP architecture with AV1 hardware decoding, [significantly improved video quality and speed](https://github.com/intel/media-delivery/blob/master/doc/benchmarks/intel-iris-xe-max-graphics/intel-iris-xe-max-graphics.md). Models like the UHD 770 and Iris Xe feature a second MFX video engine, which enhances its concurrent transcoding capabilities. - - ::: - -- **Hardcore** - ARC A-series discrete GPU - - :::tip - - ARC A-series GPUs use the latest Gen 12.5 XeHPG architecture, which continues to improve on the basis of XeLP, supports [AV1 hardware encoding and improved H.264 and HEVC encoding](https://github.com/intel/media-delivery/blob/master/doc/benchmarks/intel-data-center-gpu-flex-series/intel-data-center-gpu-flex-series.rst). This makes it competitive with the medium preset of the x264 and x265 software encoders. All ARC A-series GPU models come with two MFX video engines. - - ::: - -### OneVPL And MediaSDK - -[OneVPL](https://github.com/oneapi-src/oneVPL) is a new QSV implementation to supersede [MediaSDK](https://github.com/Intel-Media-SDK/MediaSDK). Both provide the Quick Sync Video (QSV) runtime. - -Intel supports OneVPL on Gen 12+ graphics (11th Gen Core and newer processor, namely Tiger Lake & Rocket Lake). - -:::note - -- The most notable difference is that OneVPL supports the new AV1 hardware encoder on ARC GPU. - -- [FFmpeg 6.0](http://ffmpeg.org/download.html#release_6.0) enables OneVPL. This process is seamless for the end users. - -::: - -### ARC GPU Support - -Jellyfin server 10.8.9+ and the latest jellyfin-ffmpeg5 support Intel ARC discrete GPU on both Windows and Linux **6.2+**. - -You only need to follow the [Windows Setups](/docs/general/administration/hardware-acceleration/intel#windows-setups) and [Linux Setups](/docs/general/administration/hardware-acceleration/intel#linux-setups) to configure and verify it. - -:::tip - -- [Resizable-BAR](https://game.intel.com/story/intel-arc-graphics-resizable-bar/) is not mandatory for hardware acceleration, but it can affect the graphics performance. It's recommended to enable the Resizable-BAR if the processor, motherboard and BIOS support it. - -- [ASPM](https://www.intel.com/content/www/us/en/support/articles/000092564/graphics.html) should be enabled in the BIOS if supported. This greatly reduces the idle power consumption of the ARC GPU. - -- Low-Power encoding is used by default on ARC GPUs. **GuC & HuC firmware can be missing on older distros**, you might need to manually download it from the [Kernel firmware git](https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915). - -- Old kernel build configs [may not have the MEI modules enabled](https://gitlab.freedesktop.org/drm/intel/-/issues/7732), which are necessary for using ARC GPU on Linux. - -::: +Please refer to the [Hardware Selection Guide](/docs/general/administration/hardware-selection) for tips on selecting hardware. ## Windows Setups diff --git a/docs/general/administration/hardware-acceleration/nvidia.md b/docs/general/administration/hardware-acceleration/nvidia.md index 712f7c6ac..aa15a38e3 100644 --- a/docs/general/administration/hardware-acceleration/nvidia.md +++ b/docs/general/administration/hardware-acceleration/nvidia.md @@ -41,77 +41,7 @@ The `Enable enhanced NVDEC decoder` feature toggles between the newer NVDEC and ## Select GPU Hardware -:::caution - -Most NVIDIA GPUs come with NVENC/NVDEC support but **some low-end and mobile models (e.g. GT1030 and MX450)** are exceptions. - -::: - -Video codec support can be checked via the [NVIDIA GPU Codec Support Matrix](https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new) prior to buying a GPU suitable for hardware acceleration. - -### Transcode H.264 - -AVC / H.264 8-bit is still widely used due to its excellent compatibility. All NVIDIA GPUs supporting NVENC/NVDEC can decode and/or encode it. - -- **Decoding & Encoding H.264 8-bit** - Any NVIDIA GPU supporting NVENC/NVDEC - -### Transcode HEVC - -HEVC / H.265 remains the first choice for storing 4K 10-bit, HDR and Dolby Vision video. It has mature software encoding support thanks to [x265](https://x265.readthedocs.io/en/master/), as well as the widely implemented hardware encoding support in most GPUs released after 2016. - -Maxwell+ GPUs provide support for HEVC: - -- **Decoding & Encoding HEVC 8-bit** - Maxwell 2nd Gen (GM206) and newer - -- **Decoding HEVC 10-bit** - Maxwell 2nd Gen (GM206) and newer - -- **Encoding HEVC 10-bit** - Pascal and newer - -:::note - -Note that in Maxwell 2nd Gen series only the GM206 variants provide HEVC 10-bit decoding support. Its sucessor Pascal has full support for HEVC 10-bit and improved speed and quality. - -::: - -### Transcode AV1 - -AV1 is a royalty-free, future-proof video codec. It saves a lot of storage space and network bandwidth due to smaller file size. The downside is that decoding and encoding is very demanding on the CPU. Hardware acceleration makes it possible to transcode AV1 streams on the fly. AV1 encoding support in Jellyfin is planned in the future. - -NVIDIA added support for AV1 acceleration in their latest GPUs: - -- **Decoding AV1 8/10-bit** - Ampere and newer - -- **Encoding AV1 8/10-bit** - Ada Lovelace and newer - -### Transcode Other Codecs - -Please refer to these links: - -- [NVIDIA GPU Codec Support Matrix](https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new) - -- [NVIDIA Hardware Transcoding Calculator](https://www.elpamsoft.com/?p=Plex-Hardware-Transcoding) - -### Speed And Quality - -Encoding quality: - -- H.264 & HEVC - Ada/Ampere/Turing > Turing TU117/Volta/Pascal > Maxwell - -- AV1 - Ada Lovelace only - -Decoding & Encoding speed within the same generation: - -- Multiple NVENC/NVDEC models > Single NVENC/NVDEC models - -- High GPU clock speed models > Low GPU clock speed models - -- High memory bandwidth models > Low memory bandwidth models - -NVENC/NVDEC performance tables: - -- [NVENC Performance - NVIDIA Docs](https://docs.nvidia.com/video-technologies/video-codec-sdk/12.0/nvenc-application-note/index.html#nvenc-performance) - -- [NVDEC Performance - NVIDIA Docs](https://docs.nvidia.com/video-technologies/video-codec-sdk/12.0/nvdec-application-note/index.html#nvdec-performance) +Please refer to the [Hardware Selection Guide](/docs/general/administration/hardware-selection) for tips on selecting hardware. ## Windows Setups diff --git a/docs/general/administration/hardware-selection.md b/docs/general/administration/hardware-selection.md new file mode 100644 index 000000000..909602d6d --- /dev/null +++ b/docs/general/administration/hardware-selection.md @@ -0,0 +1,188 @@ +--- +uid: admin-hardware-selection +title: Hardware Selection +--- + +# Selecting Appropriate Hardware + +This page covers what you need to know in order to select appropriate hardware for a Jellyfin server and take full advantage of its features (e. g. hardware acceleration). + +## TL;DR + +For a Jellyfin server, the following is recommended: + +### Normal Server + +- CPU (With dGPU): Intel Core i5-2300, AMD Ryzen 3 1200 or better. (Geekbench 6 Multicore 1500 or better) +- CPU (Without dGPU): Intel Pentium G4560, Intel Core i3-7100 or better. (Intel 7th gen or newer Pentium or better) +- RAM: 8GB or more +- Storage: 32GB SSD storage for Jellyfin files and transcoding cache. +- Graphics: Intel HD 6xx (7th gen integrated graphics) or newer, Nvidia GTX 16 / RTX 20 series or newer (excluding GTX 1650). Intel recommended over Nvidia, AMD and Apple Silicon not recommended. + +:::tip Upgrading an Existing System + +Intel ARC GPUs are recommended when upgrading an existing system to be used as a Jellyfin server. In cases where Intel ARC is not feasible, Nvidia graphics is recommended. Please select an appropriate GPU according to the recommended specs above. + +::: + +:::tip Fully Utilizing Intel-based Macs + +It is recommended that Intel-based macs be used with Windows or Linux installed to host Jellyfin. Many hardware acceleration features aren't available on MacOS due to the custom [jellyfin-ffmpeg](https://github.com/jellyfin/jellyfin-ffmpeg) fork not being available. + +::: + +### Low Power Applications + +For low power applications, Intel 12th gen or newer Atom CPUs with integrated graphics are recommended. It is also recommended that [Low Power Encoding](/docs/general/administration/hardware-acceleration/intel/#low-power-encoding) be setup. + +## Detailed Guide + +### CPU + +The CPU will be responsible for many tasks, notably: + +- Transcoding Audio +- Decoding video in unsupported codecs + +Audio codecs are very lightweight and most CPUs should be able to handle them without issues. Video in unsupported codecs are usually older formats that are easier to decode. Assuming hardware acceleration is properly configured, any modern CPU with 4 threads should be able to handle the workload. + +:::caution + +Newer codecs can also require software decoding if there are no available hardware decoders. High bitrate HEVC content such as commonly found in 4k HDR can be very demanding even on modern CPUs. Please considering adding a modern GPU with 10bit HEVC decoding support. HDR to SDR tone-mapping is also currently not available without hardware acceleration. + +::: + +#### Integrated Graphics + +Integrated graphics can be useful for transcoding video. Please refer to [the GPU section](/docs/general/administration/hardware-selection#graphics-cards-gpus) for a guide. + +#### Resizable BAR + +[Resizable Bar (ReBAR)](https://www.intel.com/content/www/us/en/support/articles/000090831/graphics.html) is a PCI Express feature that optimizes access to PCIe devices. This feature requires support from both the platform and the device. Intel 10th gen or above and AMD Ryzen 3000 Series or above have support for this feature. + +When using Intel ARC Graphics, Resizable BAR is recommended. Disabling it will result in a 10% reduction in transcoding performance. However, given how fast the media engine on Intel ARC is, this will not be a problem for the vast majority of users. + +### System Memory (RAM) + +As a general rule of thumb, at least 8GB is recommended, though significantly smaller amounts may work. + +:::tip Integrated Graphics + +When using Integrated graphics, the integrated graphics processer usually uses a part of system memory as video memory. It is recommended that a dual channel configuration be used and additional capacity be installed. + +::: + +### Graphics Cards (GPUs) + +With modern systems, the media engines are usually located on the GPUs. Therefore, the available hardware acceleration options are determined by the choice of GPU. + +Encoder Quality: Intel > Nvidia > AMD > Apple + +Intel graphics is recommended over Nvidia graphics because of the quality. AMD or Apple Silicon are not recommended since they produce poor quality H.264 and H.265(HEVC) output. + +:::note A Note on AMD AV1 Encoders + +With AV1, AMD has significantly improved the quality of their encoders. However, Jellyfin currently (as of 10.8.10) does NOT support transcoding to AV1. Even after Jellyfin adds support for transcoding to AV1, transcoding to H.264 or H.265(HEVC) is still more likely due to AV1 being in the early stages of adoption. + +::: + +A list of common codecs can be found [here](/docs/general/clients/codec-support/) + +The following is a list of codecs Jellyfin supports transocding to: + +- H.264 (Most common transcode target) +- H.265 (Limited supported by clients) + +:::note AV1 Support + +Jellyfin currently (as of 10.8.10) does NOT support transcoding to AV1 as a target. However, this might change in the future. Source content in AV1 will transcode to other codecs normally if needed. + +::: + +For decoding support, the more codecs the better. However, there are only a few codecs that media is commonly available in, as listed above. + +#### Intel Graphics + +Please refer to [this table](https://en.wikipedia.org/wiki/Intel_Quick_Sync_Video#Hardware_decoding_and_encoding) for supported codecs. + +:::caution F series CPUs + +Intel CPUs with a model description that ends with F don't have integrated graphics. These are intended to be used with a dedicated graphics card. + +::: + +:::note Intel 12th Gen, 13th Gen and ARC Support + +If you are planning to use Linux with Intel 12/13th Gen integrated graphics or ARC, these GPUs only work on Linux Kernel 6.2 or newer. Please check your distribution to make sure it has a supported Linux Kernel version. It is also recommended that `jellyfin-ffmpeg6` be installed instead of the default `jellyfin-ffmpeg5` on these hardware platforms. + +::: + +#### Nvidia Graphics + +Please refer to [this table](https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new) for supported codecs. + +:::caution Low End Cards + +Certain low end cards (e.g. GT 1030) don't have encoding hardware. Please be careful when choosing a GPU. + +::: + +#### AMD Graphics + +Please refer to [this article](https://en.wikipedia.org/wiki/Video_Coding_Engine) for supported codecs. + +:::caution Low End Cards + +Certain low end cards (e.g. RX 6400, RX 6500) don't have encoding hardware. Please be careful when choosing a GPU. + +::: + +:::caution Integrated Graphics + +Many AMD CPUs don't have integrated graphics. These are intended to be used with a dedicated graphics card. + +For Ryzen 1000 ~ 5000 Series, desktop CPUs with a model description that ends with G have integrated graphics while other desktop CPUs do NOT. For Ryzen 7000 Series, desktop CPUs with a model description that ends with F do NOT have integrated graphics while others do. + +Please check the product page of your CPU for more info. + +::: + +#### Apple Silicon + +Supported codecs are listed below: + +| Codec | M1 | M1 Pro | M2 | M2 Pro | +|-------------|----|--------|----|--------| +| H.264 8bit | ✅ | ✅ | ✅ | ✅ | +| H.264 10bit | 🔶 | 🔶 | 🔶 | 🔶 | +| H.265 8bit | ✅ | ✅ | ✅ | ✅ | +| H.265 10bit | ✅ | ✅ | ✅ | ✅ | +| VP9 8bit | 🔶 | 🔶 | 🔶 | 🔶 | +| VP9 10bit | 🔶 | 🔶 | 🔶 | 🔶 | +| AV1 | ❌ | ❌ | ❌ | ❌ | + +Refer to the Pro column for Max and Ultra SOCs. + +✅ = Supported, 🔶 = Decode Only, ❌ = Not Supported. + +:::caution + +Many hardware acceleration features are not available on macOS for Jellyfin, as the custom [jellyfin-ffmpeg](https://github.com/jellyfin/jellyfin-ffmpeg) fork isn't available for macOS. No Apple Silicon media engine drivers exist for other operating systems currently. You will NOT be able to use hardware acceleration if you are running [Asahi Linux](https://asahilinux.org/). + +::: + +### Storage + +There are two general types of storage that can be used on a Jellyfin server. Media libraries and Jellyfin files require different performance characteristics. + +#### Media Storage + +Anything with higher sequential access speed than bitrate of media will work. This storage can be a network share or a cloud storage service mounted on the Jellyfin host if desired. + +#### Jellyfin Files + +Jellyfin files will see lots of random access, therefore SSDs are recommended for Jellyfin files. AVOID mechanical drives that use [SMR (Shingled Magnetic Recording)](https://en.wikipedia.org/wiki/Shingled_magnetic_recording) as they will result in a VERY poor experience. + +### Networking + +Networking is for connecting your Jellyfin server to other devices. It is recommended that the server be connected to the internet via Ethernet cables. Wi-Fi or Powerline solutions are NOT recommended. diff --git a/docs/general/installation/index.mdx b/docs/general/installation/index.mdx index c5b1dcd0d..5acd982d3 100644 --- a/docs/general/installation/index.mdx +++ b/docs/general/installation/index.mdx @@ -14,6 +14,8 @@ Even though there are builds available online for these platforms, they are unof [TrueNAS SCALE](https://www.truenas.com/truenas-scale/) is based on Linux and therefore officially supported. Please install the Jellyfin app from its app repository. This app is not officially maintained by the Jellyfin team, therefore please use the TrueNAS support channels for help first. ::: +For info on selecting hardware for a Jellyfin server, please refer to the [Hardware Selection Guide](/docs/general/administration/hardware-selection) + import DocCardList from '@theme/DocCardList'; From 9f56ee478cb8ed4b761623418bc50e82889561bd Mon Sep 17 00:00:00 2001 From: felix920506 Date: Wed, 20 Sep 2023 16:14:55 -0400 Subject: [PATCH 2/3] Restore expert guide --- .../hardware-acceleration/amd.md | 66 ++++++++- .../hardware-acceleration/intel.md | 128 +++++++++++++++++- .../hardware-acceleration/nvidia.md | 74 +++++++++- 3 files changed, 265 insertions(+), 3 deletions(-) diff --git a/docs/general/administration/hardware-acceleration/amd.md b/docs/general/administration/hardware-acceleration/amd.md index 6603d432d..e21fa88a4 100644 --- a/docs/general/administration/hardware-acceleration/amd.md +++ b/docs/general/administration/hardware-acceleration/amd.md @@ -51,7 +51,71 @@ There are two different methods that can be used on Windows and/or Linux. Pros a ## Select GPU Hardware -Please refer to the [Hardware Selection Guide](/docs/general/administration/hardware-selection) for tips on selecting hardware. +For beginners, please refer to the [Hardware Selection Guide](/docs/general/administration/hardware-selection) for tips on selecting hardware. For expert users, please continue reading this section. + +:::caution + +Most AMD dGPUs come with video encoders but be careful with certain models - RX 6400/6500 series don't have video encoders. + +::: + +AMD Ryzen APU (G/GE/H/HS/HX suffixed models) and Zen 4 based processors have integrated graphics. + +Best to check the video codec support via the [AMD product specifications](https://www.amd.com/en/products/specifications) before buying a GPU for hardware acceleration. + +### Transcode H.264 + +AVC / H.264 8-bit is still widely used due to its excellent compatibility. All AMD GPUs that support AMF or VA-API can decode and encode it. + +- **Decoding & Encoding H.264 8-bit** - Any AMD GPU supporting AMF or VA-API + +### Transcode HEVC + +HEVC / H.265 remains the first choice for storing 4K 10-bit, HDR and Dolby Vision video. It has mature software encoding support thanks to [x265](https://x265.readthedocs.io/en/master/), as well as the widely implemented hardware encoding support in most GPUs released after 2016. + +The HEVC support on AMD is complicated: + +- **Decoding HEVC 8-bit** - Radeon R9 Fury and newer (Fiji) + +- **Encoding HEVC 8-bit** - Radeon RX 400 series (Polaris) and newer + +- **Decoding HEVC 10-bit** - Radeon RX 400 series (Polaris) and newer + +- **Encoding HEVC 10-bit** - Ryzen 4000 series APU (Renoir), Radeon RX 5700 series (Navi 1x) and newer + +:::note + +Note that even though the RX 400 series have HEVC 10-bit decoding support, it doesn't support the [DRM-Vulkan format modifier](https://gitlab.freedesktop.org/mesa/mesa/-/issues/5882), which means full hardware acceleration is not possible for these cards on Linux for the time being. A Vega or newer GPU is recommended on Linux. + +::: + +### Transcode AV1 + +AV1 is a royalty-free, future-proof video codec. It saves a lot of storage space and network bandwidth due to smaller file size. The downside is that decoding and encoding is very demanding on the CPU. Hardware acceleration makes it possible to transcode AV1 streams on the fly. AV1 encoding support in Jellyfin is planned in the future. + +AMD added support for AV1 acceleration in their latest GPUs: + +- **Decoding AV1 8/10-bit** - Radeon RX 6000 series (Navi 2x), Ryzen 6000 mobile APU and newer (except RX 6400/6500) + +- **Encoding AV1 8/10-bit** - Radeon RX 7000 series (Navi 3x), Ryzen 7000 mobile APU and newer + +### Transcode Other Codecs + +Please refer to these links: + +- [X.org RadeonFeature](https://www.x.org/wiki/RadeonFeature/) + +- [GitHub - GPUOpen-LibrariesAndSDKs/AMF](https://github.com/GPUOpen-LibrariesAndSDKs/AMF) + +### Speed And Quality + +Due to the lack of B-frame support, the encoding quality of the AMD H.264 hardware encoder has been unsatisfactory. Although RX 6000/VCN3.0 brings back the B-frame support, the quality improvement is not great. + +The AMD HEVC encoder is far better than the AMD H.264 encoder, and the new AMD AV1 encoding support on RX 7000/VCN4.0 seems to be the savior of AMD encoding quality. Nonetheless they are currently no match for Intel QSV and NVIDIA NVENC. VCN4.0 additionally improved the encoding speed drastically. + +Encoding speed and quality: + +- VCN4(RX 7000) > VCN3/VCN2(RX 6000/RX 5000/Renoir) > VCN1/VCE(Raven/Picasso/GCN GPUs) ## Windows Setups diff --git a/docs/general/administration/hardware-acceleration/intel.md b/docs/general/administration/hardware-acceleration/intel.md index 3de8d365c..592275c8b 100644 --- a/docs/general/administration/hardware-acceleration/intel.md +++ b/docs/general/administration/hardware-acceleration/intel.md @@ -87,7 +87,133 @@ The `Prefer OS native DXVA or VA-API hardware decoders` feature toggles between ## Select GPU Hardware -Please refer to the [Hardware Selection Guide](/docs/general/administration/hardware-selection) for tips on selecting hardware. +For beginners, please refer to the [Hardware Selection Guide](/docs/general/administration/hardware-selection) for tips on selecting hardware. For expert users, please continue reading this section. + +:::caution + +Do not use models of Intel processors ending with "F" - those do not have an integrated GPU. + +::: + +Quick Sync Video support can be checked via the [Intel ark website](https://ark.intel.com/content/www/us/en/ark.html) prior to buying a new GPU suitable for hardware acceleration. + +### Transcode H.264 + +AVC / H.264 8-bit is still widely used due to its excellent compatibility. All Intel GPUs that support QSV can decode and encode it. + +- **Decoding & Encoding H.264 8-bit** - Any Intel GPU that supports Quick Sync Video (QSV) + +### Transcode HEVC + +HEVC / H.265 remains the first choice for storing 4K 10-bit, HDR and Dolby Vision video. It has mature software encoding support thanks to [x265](https://x265.readthedocs.io/en/master/), as well as the widely implemented hardware encoding support in most GPUs released after 2016. + +Intel GPUs are no exception: + +- **Decoding & Encoding HEVC 8-bit** - Gen 9 Sky Lake (6th Gen Core) and newer + +- **Decoding & Encoding HEVC 10-bit** - Gen 9.5 Kaby Lake (7th Gen Core), Apollo Lake, Gemini Lake (Pentium and Celeron) and newer + +:::note + +Note that the 6th Gen Core lacks 10-bit support, it's best to choose 7th Gen and newer processors, which usually have HD / UHD 6xx series iGPU. + +::: + +### Transcode AV1 + +AV1 is a royalty-free, future-proof video codec. It saves a lot of storage space and network bandwidth due to smaller file size. The downside is that decoding and encoding is very demanding on the CPU. Hardware acceleration makes it possible to transcode AV1 streams on the fly. AV1 encoding support in Jellyfin is planned in the future. + +Intel added support for AV1 acceleration in their latest GPUs: + +- **Decoding AV1 8/10-bit** - Gen 12 Tiger Lake (11th Gen Core) and newer + +- **Encoding AV1 8/10-bit** - Gen 12.5 DG2 / ARC A-series, Gen 12.7 Meteor Lake (14th?? Gen Core) and newer + +:::note + +Note that Jasper Lake and Elkhart Lake processors are 10th Gen Pentium/Celeron/Atom, which don't have AV1 acceleration. + +::: + +### Transcode Other Codecs + +Please refer to these links: + +- [Intel Media Capabilities documentation](https://www.intel.com/content/www/us/en/develop/documentation/media-capabilities-of-intel-hardware/top.html) + +- [Linux media-driver/iHD capabilities](https://github.com/intel/media-driver#decodingencoding-features) + +- [Linux vaapi-driver/i965 capabilities](https://github.com/intel/intel-vaapi-driver/blob/master/README) + +### Speed And Quality + +Intel improves the speed and video quality of its fixed-function encoders between each generation of graphics architectures. + +They can be divided into 4 tiers by their performance: + +- **Entry-Level** - HD / UHD 500, 600, 605 and 61x + + :::tip + + These iGPUs usually come from mini PC boxes or Synology NASes and they can transcode HEVC 10-bit and apply tone-mapping filters. You can't expect much due to performance and power constraints, but it's still adequate for personal use. + + ::: + +- **Mainstream** - HD / UHD 620, 630, Iris 640, 655 and the Gen 11 graphics + + :::tip + + These iGPUs have more computing power than entry-level, which makes them capable of multiple 4k HDR HEVC 10-bit transcoding at the same time. Note that the Gen 11 graphics have a slightly improved encoder quality over Gen 9. + + ::: + +- **High-Performance** - UHD 7xx series and Iris Xe graphics + + :::tip + + These GPUs use Gen 12 XeLP architecture with AV1 hardware decoding, [significantly improved video quality and speed](https://github.com/intel/media-delivery/blob/master/doc/benchmarks/intel-iris-xe-max-graphics/intel-iris-xe-max-graphics.md). Models like the UHD 770 and Iris Xe feature a second MFX video engine, which enhances its concurrent transcoding capabilities. + + ::: + +- **Hardcore** - ARC A-series discrete GPU + + :::tip + + ARC A-series GPUs use the latest Gen 12.5 XeHPG architecture, which continues to improve on the basis of XeLP, supports [AV1 hardware encoding and improved H.264 and HEVC encoding](https://github.com/intel/media-delivery/blob/master/doc/benchmarks/intel-data-center-gpu-flex-series/intel-data-center-gpu-flex-series.rst). This makes it competitive with the medium preset of the x264 and x265 software encoders. All ARC A-series GPU models come with two MFX video engines. + + ::: + +### OneVPL And MediaSDK + +[OneVPL](https://github.com/oneapi-src/oneVPL) is a new QSV implementation to supersede [MediaSDK](https://github.com/Intel-Media-SDK/MediaSDK). Both provide the Quick Sync Video (QSV) runtime. + +Intel supports OneVPL on Gen 12+ graphics (11th Gen Core and newer processor, namely Tiger Lake & Rocket Lake). + +:::note + +- The most notable difference is that OneVPL supports the new AV1 hardware encoder on ARC GPU. + +- [FFmpeg 6.0](http://ffmpeg.org/download.html#release_6.0) enables OneVPL. This process is seamless for the end users. + +::: + +### ARC GPU Support + +Jellyfin server 10.8.9+ and the latest jellyfin-ffmpeg5 support Intel ARC discrete GPU on both Windows and Linux **6.2+**. + +You only need to follow the [Windows Setups](/docs/general/administration/hardware-acceleration/intel#windows-setups) and [Linux Setups](/docs/general/administration/hardware-acceleration/intel#linux-setups) to configure and verify it. + +:::tip + +- [Resizable-BAR](https://game.intel.com/story/intel-arc-graphics-resizable-bar/) is not mandatory for hardware acceleration, but it can affect the graphics performance. It's recommended to enable the Resizable-BAR if the processor, motherboard and BIOS support it. + +- [ASPM](https://www.intel.com/content/www/us/en/support/articles/000092564/graphics.html) should be enabled in the BIOS if supported. This greatly reduces the idle power consumption of the ARC GPU. + +- Low-Power encoding is used by default on ARC GPUs. **GuC & HuC firmware can be missing on older distros**, you might need to manually download it from the [Kernel firmware git](https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915). + +- Old kernel build configs [may not have the MEI modules enabled](https://gitlab.freedesktop.org/drm/intel/-/issues/7732), which are necessary for using ARC GPU on Linux. + +::: ## Windows Setups diff --git a/docs/general/administration/hardware-acceleration/nvidia.md b/docs/general/administration/hardware-acceleration/nvidia.md index aa15a38e3..e36c7527f 100644 --- a/docs/general/administration/hardware-acceleration/nvidia.md +++ b/docs/general/administration/hardware-acceleration/nvidia.md @@ -41,7 +41,79 @@ The `Enable enhanced NVDEC decoder` feature toggles between the newer NVDEC and ## Select GPU Hardware -Please refer to the [Hardware Selection Guide](/docs/general/administration/hardware-selection) for tips on selecting hardware. +For beginners, please refer to the [Hardware Selection Guide](/docs/general/administration/hardware-selection) for tips on selecting hardware. For expert users, please continue reading this section. + +:::caution + +Most NVIDIA GPUs come with NVENC/NVDEC support but **some low-end and mobile models (e.g. GT1030 and MX450)** are exceptions. + +::: + +Video codec support can be checked via the [NVIDIA GPU Codec Support Matrix](https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new) prior to buying a GPU suitable for hardware acceleration. + +### Transcode H.264 + +AVC / H.264 8-bit is still widely used due to its excellent compatibility. All NVIDIA GPUs supporting NVENC/NVDEC can decode and/or encode it. + +- **Decoding & Encoding H.264 8-bit** - Any NVIDIA GPU supporting NVENC/NVDEC + +### Transcode HEVC + +HEVC / H.265 remains the first choice for storing 4K 10-bit, HDR and Dolby Vision video. It has mature software encoding support thanks to [x265](https://x265.readthedocs.io/en/master/), as well as the widely implemented hardware encoding support in most GPUs released after 2016. + +Maxwell+ GPUs provide support for HEVC: + +- **Decoding & Encoding HEVC 8-bit** - Maxwell 2nd Gen (GM206) and newer + +- **Decoding HEVC 10-bit** - Maxwell 2nd Gen (GM206) and newer + +- **Encoding HEVC 10-bit** - Pascal and newer + +:::note + +Note that in Maxwell 2nd Gen series only the GM206 variants provide HEVC 10-bit decoding support. Its sucessor Pascal has full support for HEVC 10-bit and improved speed and quality. + +::: + +### Transcode AV1 + +AV1 is a royalty-free, future-proof video codec. It saves a lot of storage space and network bandwidth due to smaller file size. The downside is that decoding and encoding is very demanding on the CPU. Hardware acceleration makes it possible to transcode AV1 streams on the fly. AV1 encoding support in Jellyfin is planned in the future. + +NVIDIA added support for AV1 acceleration in their latest GPUs: + +- **Decoding AV1 8/10-bit** - Ampere and newer + +- **Encoding AV1 8/10-bit** - Ada Lovelace and newer + +### Transcode Other Codecs + +Please refer to these links: + +- [NVIDIA GPU Codec Support Matrix](https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new) + +- [NVIDIA Hardware Transcoding Calculator](https://www.elpamsoft.com/?p=Plex-Hardware-Transcoding) + +### Speed And Quality + +Encoding quality: + +- H.264 & HEVC - Ada/Ampere/Turing > Turing TU117/Volta/Pascal > Maxwell + +- AV1 - Ada Lovelace only + +Decoding & Encoding speed within the same generation: + +- Multiple NVENC/NVDEC models > Single NVENC/NVDEC models + +- High GPU clock speed models > Low GPU clock speed models + +- High memory bandwidth models > Low memory bandwidth models + +NVENC/NVDEC performance tables: + +- [NVENC Performance - NVIDIA Docs](https://docs.nvidia.com/video-technologies/video-codec-sdk/12.0/nvenc-application-note/index.html#nvenc-performance) + +- [NVDEC Performance - NVIDIA Docs](https://docs.nvidia.com/video-technologies/video-codec-sdk/12.0/nvdec-application-note/index.html#nvdec-performance) ## Windows Setups From 0c0bea4571215723eb2098b5980c95beee8fd166 Mon Sep 17 00:00:00 2001 From: felix920506 Date: Wed, 20 Sep 2023 16:17:27 -0400 Subject: [PATCH 3/3] Bump storage requirements to 60GB --- docs/general/administration/hardware-selection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/general/administration/hardware-selection.md b/docs/general/administration/hardware-selection.md index 909602d6d..ca1ff5830 100644 --- a/docs/general/administration/hardware-selection.md +++ b/docs/general/administration/hardware-selection.md @@ -16,7 +16,7 @@ For a Jellyfin server, the following is recommended: - CPU (With dGPU): Intel Core i5-2300, AMD Ryzen 3 1200 or better. (Geekbench 6 Multicore 1500 or better) - CPU (Without dGPU): Intel Pentium G4560, Intel Core i3-7100 or better. (Intel 7th gen or newer Pentium or better) - RAM: 8GB or more -- Storage: 32GB SSD storage for Jellyfin files and transcoding cache. +- Storage: 60GB SSD storage for Jellyfin files and transcoding cache. - Graphics: Intel HD 6xx (7th gen integrated graphics) or newer, Nvidia GTX 16 / RTX 20 series or newer (excluding GTX 1650). Intel recommended over Nvidia, AMD and Apple Silicon not recommended. :::tip Upgrading an Existing System