Skip to content

Commit

Permalink
Merge pull request #1120 from felix920506/software-tonemap-hwsel
Browse files Browse the repository at this point in the history
10.10 hwa / transcode docs update
  • Loading branch information
nielsvanvelzen authored Oct 26, 2024
2 parents b8299ad + c3ccec0 commit c3e2875
Show file tree
Hide file tree
Showing 7 changed files with 61 additions and 75 deletions.
20 changes: 7 additions & 13 deletions docs/general/administration/hardware-acceleration/amd.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ title: AMD GPU

# HWA Tutorial On AMD GPU

This tutorial guides you on setting up full video hardware acceleration on AMD integrated GPU and discrete GPU via AMF and VA-API.
This tutorial guides you on setting up full video hardware acceleration on AMD integrated GPU and discrete GPU via AMF or VA-API. If you are on macOS, please use [VideoToolbox](/docs/general/administration/hardware-acceleration/apple) instead.

## Acceleration Methods

Expand All @@ -15,7 +15,7 @@ On Windows **AMF** is the only available method.

On Linux there are two methods:

- **VA-API** - Prefered on all GPUs, full acceleration on Vega+ GPUs, open source.
- **VA-API** - Preferred on all GPUs, full acceleration on Polaris(RX400/500)+ GPUs, open source.

- **AMF** - Not recommended, limited support, hardware encoder only, closed source.

Expand Down Expand Up @@ -81,13 +81,7 @@ The HEVC support on AMD is complicated:

- **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.

:::
- **Encoding HEVC 10-bit** - Ryzen 4000 series APU (Renoir), Radeon RX 5000 series (Navi 1x) and newer

### Transcode AV1

Expand Down Expand Up @@ -187,7 +181,7 @@ Please refer to [this section](/docs/general/administration/hardware-acceleratio

#### Debian And Ubuntu Linux

The `jellyfin-ffmpeg6` deb package required by Jellyfin 10.9 comes with all necessary user mode Mesa drivers.
The `jellyfin-ffmpeg*` deb package required by Jellyfin comes with all necessary user mode Mesa drivers.

Besides that you only need to configure the permission of the `jellyfin` user.

Expand All @@ -199,10 +193,10 @@ Root permission is required.

1. Assuming you have added the jellyfin repository to your apt source list and installed the `jellyfin-server` and `jellyfin-web`.

2. Install the `jellyfin-ffmpeg6` package. Remove the deprecated `jellyfin` meta package if it breaks the dependencies:
2. Install the `jellyfin-ffmpeg7` package. Remove the deprecated `jellyfin` meta package if it breaks the dependencies:

```shell
sudo apt update && sudo apt install -y jellyfin-ffmpeg6
sudo apt update && sudo apt install -y jellyfin-ffmpeg7
```

3. Make sure at least one `renderD*` device exists in `/dev/dri`. Otherwise upgrade your kernel or enable the iGPU in the BIOS.
Expand Down Expand Up @@ -300,7 +294,7 @@ Root permission is required.

Linux Mint uses Ubuntu as its package base.

You can follow the configuration steps of [Debian And Ubuntu Linux](/docs/general/administration/hardware-acceleration/amd#debian-and-ubuntu-linux) but install all Jellyfin packages `jellyfin-server`, `jellyfin-web` and `jellyfin-ffmpeg6` manually from the [Jellyfin Server Releases Page](https://repo.jellyfin.org/releases/server/). Also make sure you choose the correct codename by following the [official version maps](https://linuxmint.com/download_all.php).
You can follow the configuration steps of [Debian And Ubuntu Linux](/docs/general/administration/hardware-acceleration/amd#debian-and-ubuntu-linux) but install all Jellyfin packages `jellyfin-server`, `jellyfin-web` and `jellyfin-ffmpeg7` manually from the [Jellyfin Server Releases Page](https://repo.jellyfin.org/releases/server/). Also make sure you choose the correct codename by following the [official version maps](https://linuxmint.com/download_all.php).

#### Arch Linux

Expand Down
22 changes: 8 additions & 14 deletions docs/general/administration/hardware-acceleration/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,17 +63,17 @@ The transcoding pipeline usually has multiple stages, which can be simplified to

Some of these stages cannot be GPU accelerated due to software, hardware or driver limitations.

Partial acceleration may result in slightly higher CPU usage and lower transcoding speed.
Partial acceleration may result in higher CPU usage and lower transcoding speed.

:::

Jellyfin 10.8 supports full acceleration on mainstream Intel, NVIDIA and AMD (Windows only) GPUs.

Jellyfin 10.9 enables full acceleration for:
Jellyfin supports full acceleration for:

- Mainstream Intel and Nvidia GPUs on Windows and Linux
- AMD Polaris and newer GPUs on Linux via VA-API and Vulkan interop
- Older AMD GPUs on Windows
- Rockchip VPU of RK3588/3588S
- Intel and Apple Silicon Macs on macOS 12 and above
- Intel and Apple Silicon on macOS 12 and above

Using [jellyfin-ffmpeg](https://github.com/jellyfin/jellyfin-ffmpeg/releases) with Jellyfin is highly recommended, which has a `-Jellyfin` suffix in the version string.

Expand Down Expand Up @@ -180,21 +180,15 @@ Dolby Vision (P5 & P8) to SDR tone-mapping is supported in Jellyfin 10.8 and req

:::

| OS/Platform | NVIDIA NVENC | AMD AMF | Intel QSV | Intel VA-API | AMD VA-API |Apple VideoToolbox| Rockchip RKMPP | Software |
| -------------- | ------------ | ------- | --------- | ------------ | ---------- | ---------------- | -------------- | -------- |
| Windows | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | WIP |
| Windows Docker | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | WIP |
| Linux | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | ✔️ | WIP |
| Linux Docker | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | ✔️ | WIP |
| macOS | N/A | N/A | N/A | N/A | N/A | ✔️ | N/A | WIP |

## Tips For Hardware Acceleration

- Avoid H.264 / AVC 10-bit videos

:::tip

The hardware decoding of H.264 / AVC 10-bit (High 10 profile) video is not supported by any Intel, NVIDIA and AMD GPU. Jellyfin will always fallback to software decoding for it. Consider upgrading such video to H.265 / HEVC 10-bit (Main 10 profile).
The hardware decoding of H.264 / AVC 10-bit (High 10 profile) video is not supported by any Intel, NVIDIA and AMD GPU.
It is only supported by Apple Silicon and Rockchip. Jellyfin will fall back to software decoding for it when there is
no hardware decoder available. Consider upgrading such video to H.265 / HEVC 10-bit (Main 10 profile).

:::

Expand Down
42 changes: 10 additions & 32 deletions docs/general/administration/hardware-acceleration/intel.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ title: Intel GPU

# HWA Tutorial On Intel GPU

This tutorial guides you on setting up full video hardware acceleration on Intel integrated GPUs and ARC discrete GPUs via QSV and VA-API.
This tutorial guides you on setting up full video hardware acceleration on Intel integrated GPUs and ARC discrete GPUs via QSV and VA-API. If you are on macOS, please use [VideoToolbox](/docs/general/administration/hardware-acceleration/apple) instead.

## Acceleration Methods

Expand All @@ -15,37 +15,15 @@ On Windows **QSV** is the only available method.

On Linux there are two methods:

- **QSV** - **Prefered on mainstream GPUs**, for better performance
- **QSV** - **Preferred on mainstream GPUs**, for better performance

- **VA-API** - Required by pre-Broadwell legacy GPUs, for compatibility

:::note

Linux VA-API supports nearly all Intel GPUs.

Linux QSV [supported platforms](https://github.com/intel/media-driver#supported-platforms) are limited to:

- **BDW** (Broadwell)

- **SKL** (Skylake)

- **BXTx** (BXT: Broxton, APL: Apollo Lake, GLK: Gemini Lake)

- **KBLx** (KBL: Kaby Lake, CFL: Coffe Lake, WHL: Whiskey Lake, CML: Comet Lake, AML: Amber Lake)

- **ICL** (Ice Lake)

- **JSL** (Jasper Lake) / **EHL** (Elkhart Lake)

- **TGLx** (TGL: Tiger Lake, RKL: Rocket Lake, ADL-S/P/N: Alder Lake, RPL-S/P: Raptor Lake)

- **DG1**/**SG1**

- Alchemist (**DG2**)/ATSM

- Meteor Lake (**MTL**)

- Future platforms...
Linux QSV [supported platforms](https://github.com/intel/media-driver#supported-platforms) are limited to Broadwell (5th gen Core) and newer.

:::

Expand Down Expand Up @@ -117,13 +95,13 @@ HEVC / H.265 remains the first choice for storing 4K 10-bit, HDR and Dolby Visio

Intel GPUs are no exception:

- **Decoding & Encoding HEVC 8-bit** - Gen 9 Sky Lake (6th Gen Core) and newer
- **Decoding & Encoding HEVC 8-bit** - Gen 9 Skylake (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.
Note that the 6th Gen Core with HD 5xx iGPUs lacks 10-bit support, it's best to choose 7th Gen and newer processors, which usually have HD / UHD 6xx series iGPUs.

:::

Expand Down Expand Up @@ -163,7 +141,7 @@ They can be divided into 4 tiers by their performance:

:::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.
These iGPUs usually come from mini PC boxes or 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.

:::

Expand Down Expand Up @@ -291,7 +269,7 @@ Please refer to [this section](/docs/general/administration/hardware-acceleratio

#### Debian And Ubuntu Linux

The `jellyfin-ffmpeg6` deb package comes with all necessary user mode Intel media drivers except OpenCL (see below).
The `jellyfin-ffmpeg*` deb package comes with all necessary user mode Intel media drivers except OpenCL (see below).

:::note

Expand All @@ -305,10 +283,10 @@ Root permission is required.
If you are running Debian, you will need to add "non-free" to your apt config.
:::

2. Install the `jellyfin-ffmpeg6` package. Remove the deprecated `jellyfin` meta package if it breaks the dependencies:
2. Install the `jellyfin-ffmpeg7` package. Remove the deprecated `jellyfin` meta package if it breaks the dependencies:

```shell
sudo apt update && sudo apt install -y jellyfin-ffmpeg6
sudo apt update && sudo apt install -y jellyfin-ffmpeg7
```

3. Make sure at least one `renderD*` device exists in `/dev/dri`. Otherwise upgrade your kernel or enable the iGPU in the BIOS.
Expand Down Expand Up @@ -404,7 +382,7 @@ Root permission is required.

Linux Mint uses Ubuntu as its package base.

You can follow the configuration steps of [Debian And Ubuntu Linux](/docs/general/administration/hardware-acceleration/intel#debian-and-ubuntu-linux) but install all Jellyfin packages `jellyfin-server`, `jellyfin-web` and `jellyfin-ffmpeg6` manually from the [Jellyfin Server Releases Page](https://repo.jellyfin.org/releases/server/). Also make sure you choose the correct codename by following the [official version maps](https://linuxmint.com/download_all.php).
You can follow the configuration steps of [Debian And Ubuntu Linux](/docs/general/administration/hardware-acceleration/intel#debian-and-ubuntu-linux) but install all Jellyfin packages `jellyfin-server`, `jellyfin-web` and `jellyfin-ffmpeg7` manually from the [Jellyfin Server Releases Page](https://repo.jellyfin.org/releases/server/). Also make sure you choose the correct codename by following the [official version maps](https://linuxmint.com/download_all.php).

#### Arch Linux

Expand Down
12 changes: 6 additions & 6 deletions docs/general/administration/hardware-acceleration/nvidia.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ NVENC/NVDEC performance tables:

## Windows Setups

Windows 10 64-bit and newer is recommeded. **In Jellyfin 10.9 the minimum required NVIDIA driver version is 522.25**.
Windows 10 64-bit and newer is recommeded. **In Jellyfin 10.10 the minimum required NVIDIA driver version is 522.25**.

### Configure On Windows Host

Expand Down Expand Up @@ -151,13 +151,13 @@ Refer to [Configure On Linux Host](/docs/general/administration/hardware-acceler

## Linux Setups

A 64-bit Linux distribution is required. **In Jellyfin 10.9 the minimum required NVIDIA driver version is 520.56.06**.
A 64-bit Linux distribution is required. **In Jellyfin 10.10 the minimum required NVIDIA driver version is 520.56.06**.

### Configure On Linux Host

#### Debian And Ubuntu Linux

The `jellyfin-ffmpeg6` deb package required by Jellyfin 10.9 doesn't include any NVIDIA proprietary driver.
The `jellyfin-ffmpeg*` deb package required by Jellyfin doesn't include any NVIDIA proprietary driver.

You have to install the NVIDIA driver from the distro and configure the permission of the `jellyfin` user.

Expand All @@ -169,10 +169,10 @@ Root permission is required.

1. Assuming you have added the jellyfin repository to your apt source list and installed the `jellyfin-server` and `jellyfin-web`.

2. Install the `jellyfin-ffmpeg6` package. Remove the deprecated `jellyfin` meta package if it breaks the dependencies:
2. Install the `jellyfin-ffmpeg7` package. Remove the deprecated `jellyfin` meta package if it breaks the dependencies:

```shell
sudo apt update && sudo apt install -y jellyfin-ffmpeg6
sudo apt update && sudo apt install -y jellyfin-ffmpeg7
```

3. Install the NVIDIA proprietary driver by following these links. Then install two extra packages for NVENC and NVDEC support:
Expand Down Expand Up @@ -220,7 +220,7 @@ Root permission is required.

Linux Mint uses Ubuntu as its package base.

You can follow the configuration steps of [Debian and Ubuntu Linux](/docs/general/administration/hardware-acceleration/nvidia#debian-and-ubuntu-linux) but install all Jellyfin packages `jellyfin-server`, `jellyfin-web` and `jellyfin-ffmpeg6` manually from the [Jellyfin Server Releases Page](https://repo.jellyfin.org/releases/server/). Also make sure you choose the correct codename by following the [official version maps](https://linuxmint.com/download_all.php).
You can follow the configuration steps of [Debian and Ubuntu Linux](/docs/general/administration/hardware-acceleration/nvidia#debian-and-ubuntu-linux) but install all Jellyfin packages `jellyfin-server`, `jellyfin-web` and `jellyfin-ffmpeg7` manually from the [Jellyfin Server Releases Page](https://repo.jellyfin.org/releases/server/). Also make sure you choose the correct codename by following the [official version maps](https://linuxmint.com/download_all.php).

#### Arch Linux

Expand Down
4 changes: 2 additions & 2 deletions docs/general/administration/hardware-acceleration/rockchip.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ A 64-bit Linux distribution is recommended. **The Rockchip BSP kernel (6.1 or 5.

#### Debian And Ubuntu Linux

The `jellyfin-ffmpeg6` deb package required by Jellyfin 10.9 comes with all necessary user mode Rockchip MPP & RGA drivers.
The `jellyfin-ffmpeg*` deb package required by Jellyfin comes with all necessary user mode Rockchip MPP & RGA drivers.

Besides that you only need to install the OpenCL runtime (libmali) and configure the the device permissions.

Expand All @@ -109,7 +109,7 @@ Root permission is required.

:::

1. Assuming you have added the jellyfin repository to your apt source list and installed the `jellyfin-server`, `jellyfin-web` and `jellyfin-ffmpeg6`.
1. Assuming you have added the jellyfin repository to your apt source list and installed the `jellyfin-server`, `jellyfin-web` and `jellyfin-ffmpeg7`.

2. Make sure `dma_heap`, `dri`, `mpp_service` and `rga` exist in `/dev`. Otherwise upgrade your BSP kernel to 5.10 LTS and newer.

Expand Down
Loading

0 comments on commit c3e2875

Please sign in to comment.