原本一直用 KODI 走 SMB 內網觀看,但有些影片會一頓一頓,甚至完全無法播放,加上遠端存取不方便,決定試用 Jellyfin。遠端播放確實方便許多,但字幕問題實在令人頭痛——不設定的話字幕要等 3~5 分鐘才出現,設定燒錄後又變成點播後需要等一段時間才開始播放。對於繁體中文用戶來說,整體體驗不算友好,最終仍決定改用 Emby 免費版收場。
以下是安裝與設定的完整過程,供有需要的人參考。
1. 前置作業
- 安裝 Docker
- 安裝 Docker Compose
- 申請網域(供反向代理使用)
2. Nginx Proxy Manager 設定
- 內網地址填入
$IP:8096,例如192.168.6.7:8096;8096 為預設埠口,若有更改需同步調整。 - 為網域申請 SSL 憑證後,在「進階」頁籤貼入以下設定:
- 將 HSTS 等安全選項全部啟用。
proxy_buffering off;
# Proxy main Jellyfin traffic
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_headers_hash_max_size 2048;
proxy_headers_hash_bucket_size 128;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "0";
add_header X-Content-Type-Options "nosniff";
3. Docker Compose 設定
可透過 Portainer 建立 Stack,或直接手動建立 docker-compose.yml:
---
services:
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Taipei
- JELLYFIN_PublishedServerUrl=公網網址
- DOCKER_MODS=linuxserver/mods:jellyfin-amd # AMD 硬解 MOD
volumes:
- /mnt/cloud1/dockerData/jellyfin/library:/config
- /mnt/cloud1/dockerData/jellyfin/tvseries:/data/tvshows
- /mnt/cloud1/zongboa/movie:/data/movies
- /mnt/cloud1/playlists:/data/playlists
# 掛載中文字型,解決字幕亂碼問題
- /mnt/cloud1/dockerData/jellyfin/fonts/NotoSansCJK-Bold.otf:/usr/share/fonts/NotoSansCJK-Bold.otf
ports:
- 8096:8096
# - 8920:8920 # HTTPS(選用)
# - 7359:7359/udp # 自動探索(選用)
# - 1900:1900/udp # DLNA(選用)
restart: unless-stopped
devices:
- /dev/dri:/dev/dri # AMD 硬解
- /dev/kfd:/dev/kfd # AMD 硬解
networks:
- metatube-net
注意:安裝含有 MODS 的映像檔,首次啟動需等待 2~5 分鐘才能連線,期間出現 502 Bad Gateway 屬正常現象,耐心等待即可。
4. 啟用硬解功能
使用管理者帳號登入,前往 控制台 → 播放 → 轉檔:
- 硬體加速:選擇
Video Acceleration API (VAAPI)(適用 AMD GPU,如 AMD 5600G) - VA-API 裝置:通常自動帶入
/dev/dri/renderD128 - 啟用硬體解碼的項目:維持預設勾選(H264、HEVC、MPEG2、VC1、VP8、VP9、AV1 等)
- 點擊儲存
5. 字幕問題
Jellyfin 的字幕支援對繁體中文用戶相當不友好,主要問題有:
- 預設不顯示字幕:若不額外設定,字幕可能需要等待 3~5 分鐘才出現,或根本不出現
- 字型渲染問題:未掛載中文字型時,繁體中文字幕可能顯示亂碼或方塊
- 燒錄延遲:啟用強制燒錄字幕後,播放前需先等候轉檔完成
暫時解決方式:
- 點擊右上角個人圖示 → 字幕
- 字幕載入:選擇「總是顯示字幕」
- 燒錄字幕:選擇「全部」
- 儲存
這樣設定後,字幕會在播放前強制燒錄,不會再出現播了幾分鐘才出現字幕的情況,但代價是點播後需要等一段時間才會開始播放。魚與熊掌不可兼得……
6. 遭遇問題
- 無法從外網修改使用者:安裝後發現從外網網址進入無法修改使用者設定,需改用內網 IP(
192.168.x.x)連入才能正常操作 - 硬解確認困難:硬解是否正常運作不易確認,但影片播放本身沒有問題
metatube 插件
有成人影片封面抓取需求的話,可加入 metatube 容器。初始設定如下:
version: "3"
services:
metatube-server:
ports:
- 8081:8080
volumes:
- /mnt/cloud1/dockerData/jellyfin/plugin/metatube/config:/config
container_name: metatube
image: metatube/metatube-server:latest
command: -dsn /config/metatube.db
7. Jellyfin + metatube 整合版
使用一段時間後,決定將 Jellyfin 與 metatube 合併為單一 Stack,並搭配 .env 檔管理敏感資訊。metatube 不需對外暴露埠口,改以容器內網方式(http://metatube:8080)與 Jellyfin 通訊,減少不必要的埠口開放。
docker-compose.yml:
version: '3.8'
services:
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
- TZ=${TZ:-Asia/Taipei}
- JELLYFIN_PublishedServerUrl=${JELLYFIN_URL}
- DOCKER_MODS=linuxserver/mods:jellyfin-amd # AMD 硬解 MOD
volumes:
- /mnt/cloud1/dockerData/jellyfin/library:/config
- /mnt/cloud1/dockerData/jellyfin/tvseries:/data/tvshows
- /mnt/cloud1/playlists:/data/playlists
# 掛載中文字型
- /mnt/cloud1/dockerData/jellyfin/fonts/NotoSansCJK-Bold.otf:/usr/share/fonts/NotoSansCJK-Bold.otf
ports:
- 8096:8096
restart: unless-stopped
devices:
- /dev/dri:/dev/dri # AMD 硬解
- /dev/kfd:/dev/kfd # AMD 硬解
networks:
- metatube-net
metatube-server:
# 刪除對外埠口,以容器內網 http://metatube:8080 連線即可
# ports:
# - 8080:8080
volumes:
- /mnt/cloud1/dockerData/jellyfin/plugin/metatube/config:/config
container_name: metatube
image: ghcr.io/metatube-community/metatube-server:latest
command: -dsn /config/metatube.db
networks:
- metatube-net
networks:
metatube-net:
driver: bridge
name: metatube-net
.env 檔內容:
# 使用者與時區
PUID=1000
PGID=1000
TZ=Asia/Taipei
# 網域
JELLYFIN_URL=自定義網址
8. 結論:最終改用 Emby 免費版
用了一段時間之後,還是決定放棄 Jellyfin,轉向 Emby 免費版。
Jellyfin 對繁體中文用戶的痛點太多:
- 字幕顯示問題根深柢固:不論是載入延遲、字型渲染還是強制燒錄的等待,每個解法都製造新問題,始終無法像 KODI 那樣開箱即用
- 繁體中文介面翻譯品質參差:部分功能標示混亂,設定邏輯也不直覺
- 用戶管理限制:外網無法修改使用者等小問題,累積下來令人疲憊
相比之下,Emby 免費版雖然不是完全開源,但對繁體中文字幕的處理明顯更成熟,整體體驗比 Jellyfin 順很多,對一般家用影音需求而言已經相當足夠。
