快轉到主要內容

Jellyfin Docker啟用GPU硬體加速轉碼,讓串流更順暢

· 民國114年乙巳年
·
切換繁體/簡體
分類   Linux系統 Self-hosting自架
標籤   Jellyfin
目錄

使用Docker安裝Jellyfin之後,預設是使用CPU轉碼影片,若啟用GPU硬體加速 (Hardware Acceleration) 轉碼可讓影片處理速度更快。

Jellyfin觸發轉碼的時機為何?何時該使用轉碼?參見Jellyfin的直接播放 (Direct Play) 與轉碼 (Transcoding)

Jellyfin支援Intel、AMD、Nvidia、Apple、Rockchip的加速技術,官方文件對此有詳細說明。

為方便處理影片,Jellyfin官方開發了特製版的jellyfin-ffmpeg套件,此一套件已含在Jellyfin的官方Docker映像檔,無需另外安裝。

1. Nvidia GPU啟用NVENC硬體解碼
#

  1. 首先要先安裝Nvidia驅動和Nvidia Container Toolkit

  2. 將使用者加入video群組

sudo usermod -aG video root
sudo usermod -aG video $USER
  1. 編輯docker-compose.yml,在最下面加入runtime
    runtime: nvidia
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
  1. 更新Jellyfin容器的動態連結,重啟Docker服務
sudo docker exec -it jellyfin ldconfig

sudo systemctl restart docker
  1. 檢查容器是否能存取Nvidia顯示卡,應能印出顯示卡驅動資訊
sudo docker exec -it jellyfin nvidia-smi
  1. 進入Jellyfin首頁,點選左邊選單→ 「設定」→「控制台」 →「播放」,選擇使用Nvidia NVENC硬體加速(注意每張Nvidia顯示卡能支援的編碼都不同,AV1至少需要RTX30以上),再往下捲動按儲存。

2. Intel CPU啟用QSV或VA-API硬體解碼
#

只要Intel CPU有內顯,幾乎所有Intel GPU都支援VA-API硬體解碼。QSV則是要Haswell架構以後才支援。

儘管開發者說Intel解碼驅動和OpenCL執行時已含在Jellyfin的映像檔,不需要額外安裝驅動,但若驅動找不到,請還是參考官方文件了解要安裝哪些驅動套件。可能還得設定LIBVA_DRIVER_NAME的環境變數。

  1. 安裝OpenCL執行時套件
sudo apt install intel-opencl-icd
  1. 將使用者加入render群組
sudo usermod -aG render root

sudo usermod -aG render $USER
  1. 取得render群組的ID,每台電腦數字不一樣
sudo getent group render | cut -d: -f3
  1. 修改docker-compose,在最下面加入devices
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
  1. 重新啟動容器
sudo docker compose down

sudo docker compose up -d
  1. 檢查Jellyfin容器能否印出Intel解碼器版本
sudo docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/vainfo
  1. 檢查Jellyfin容器能否印出OpenCL執行時
sudo docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va -init_hw_device opencl@va
  1. 重新啟動容器
sudo docker compose down

sudo docker compose up -d
  1. 至Jellyfin首頁,點選左邊選單 → 「設定」→「控制台 →「播放」,選擇使用Intel QSV硬體加速,往下捲動按儲存。

  2. 要確認影片解碼有無運作,隨便開一部影片,然後用nvtop這類工具查看GPU使用率就知道了。

相關文章

Pixiv與Danbooru圖站下載器:Hydrus Downloader用法,批次下載圖片&抓取網頁所有圖片
分類   Linux系統 Self-hosting自架
標籤   Hydrus Network Pixiv Danbooru 4chan Komica
TagRank:從Hydrus圖片資料庫找出你最愛的性癖好標籤!
分類   Linux系統 Self-hosting自架
標籤   Hydrus Network
AFFiNE筆記軟體使用心得,Markdown筆記+自由繪製的畫布!
分類   Linux系統 Self-hosting自架
標籤   Note-Taking Docker

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

(留言板載入中)這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。