diff --git a/README.md b/README.md index b5ff615..9595f53 100644 --- a/README.md +++ b/README.md @@ -1,61 +1,30 @@ -# jellyfin-amd - Docker mode for Jellyfin +# jellyfin-amd - Docker mod for Jellyfin -This mode adds the mesa libraries (v20.1+) needed for hardware encoding (VAAPI) on AMD GPUs to the Jellyfin Docker container. +This mod adds the mesa libraries (v20.1+) needed for hardware encoding (VAAPI) on AMD GPUs to the Jellyfin Docker container (`latest` tag). -## Docker compose -The docker-compose file needs a `devices` entry for jellyfin ([Official Documentation](https://jellyfin.org/docs/general/administration/hardware-acceleration.html)) -``` ---- -version: "2.1" -services: - jellyfin: - image: linuxserver/jellyfin - container_name: jellyfin - environment: - - PUID=1000 - - PGID=1000 - - TZ=Europe/London - - UMASK=<022> #optional - - DOCKER_MODS=pascalminder/jellyfin-amd:jellyfin-amd - volumes: - - /path/to/library:/config - - /path/to/tvseries:/data/tvshows - - /path/to/movies:/data/movies - - /opt/vc/lib:/opt/vc/lib #optional - ports: - - 8096:8096 - - 8920:8920 #optional - - 7359:7359/udp #optional - - 1900:1900/udp #optional - devices: - # VAAPI Devices - - "/dev/dri/renderD128:/dev/dri/renderD128" - - "/dev/dri/card0:/dev/dri/card0" - restart: unless-stopped -``` +To enable, you need to add the 2 following entries: +- Device mapping for `/dev/dri` + - docker-compose: + ```yaml + devices: + - /dev/dri:/dev/dri + ``` + - docker cli + ```sh + --device /dev/dri:/dev/dri + ``` +- Environment Variable: `DOCKER_MODS=linuxserver/mods:jellyfin-amd` + - docker-compose: + ```yaml + environment: + - DOCKER_MODS=linuxserver/mods:jellyfin-amd + ``` + - docker cli: + ```sh + -e DOCKER_MODS=linuxserver/mods:jellyfin-amd + ``` -## Docker cli -``` -docker run -d \ - --name=jellyfin \ - -e PUID=1000 \ - -e PGID=1000 \ - -e TZ=Europe/London \ - -e UMASK=<022> `#optional` \ - -e DOCKER_MODS=pascalminder/jellyfin-amd:jellyfin-amd - -p 8096:8096 \ - -p 8920:8920 `#optional` \ - -p 7359:7359/udp `#optional` \ - -p 1900:1900/udp `#optional` \ - -v /path/to/library:/config \ - -v /path/to/tvseries:/data/tvshows \ - -v /path/to/movies:/data/movies \ - -v /opt/vc/lib:/opt/vc/lib `#optional` \ - --device /dev/dri/renderD128:/dev/dri/renderD128 \ - --device /dev/dri/card0:/dev/dri/card0 \ - --restart unless-stopped \ - linuxserver/jellyfin -``` +If adding multiple mods, enter them in an array separated by `|`, such as `DOCKER_MODS=linuxserver/mods:jellyfin-amd|linuxserver/mods:jellyfin-mod2` ## Settings in Jellyfin Under server administration in `Server > Playback` the `Hardware acceleration` can be set to `Video Acceleration API (VAAPI)` and the `VA API Device` has to be set to the device given in the Docker configuration. For example `/dev/dri/renderD128`. diff --git a/root/etc/cont-init.d/98-mesa b/root/etc/cont-init.d/98-mesa index e2c0c1f..681df21 100644 --- a/root/etc/cont-init.d/98-mesa +++ b/root/etc/cont-init.d/98-mesa @@ -2,32 +2,25 @@ # Determine if setup is needed if [ ! -f "/usr/bin/apt" ]; then - echo "**** Image is not Ubuntu, skipping opencl-intel install ****" - exit 0 + echo "**** Image is not Ubuntu, skipping opencl-intel install ****" + exit 0 fi pkgs='mesa-vdpau-drivers mesa-va-drivers mesa-vdpau-drivers libdrm-radeon1' install=false for pkg in $pkgs; do - status="$(dpkg-query -W --showformat='${db:Status-Status}' "$pkg" 2>&1)" - if [ ! $? = 0 ] || [ ! "$status" = installed ]; then - install=true - break - fi + status="$(dpkg-query -W --showformat='${db:Status-Status}' "$pkg" 2>&1)" + if [ ! $? = 0 ] || [ ! "$status" = installed ]; then + install=true + break + fi done if "$install"; then - echo "**** Installing mesa ****" - apt-get update - - apt-get install -y \ - gpg - - apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F63F0F2B90935439 - echo "deb http://ppa.launchpad.net/kisak/kisak-mesa/ubuntu focal main" > /etc/apt/sources.list.d/kisak-ubuntu-kisak-mesa-bionic.list - - apt-get update - - apt-get install -y $pkgs + echo "**** Installing mesa ****" + apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F63F0F2B90935439 + echo "deb http://ppa.launchpad.net/kisak/kisak-mesa/ubuntu focal main" > /etc/apt/sources.list.d/kisak-mesa-focal.list + apt-get update + apt-get install -y $pkgs fi