自述
giegie,我没有群晖nas怎么办?
哈!你小呆呆啊,这不有树莓派、电脑、手机么
你真以为电视盒子不是装了一套嵌入式系统而已啊(如今的电视也嵌入了系统)
把你废旧的设备拿出来,又是一台新功能的电视了
再也不怕被发现硬盘里有xiao电影了,555~
版本的选择
目前在官方的 Docker 仓库里,有三个主流的Jellyfin的容器,分别是 jellyfin/jellyfin、linuxserver/jellyfin和nyanmisaka/jellyfin。
-
jellyfin/jellyfin 为官方镜像,貌似仅限 x86/amd64 平台;
-
linuxserver/jellyfin 镜像,根据说明,可以使用在 x86/amd64 平台上,也可以使用在 ARM 的平台上;
-
nyanmisaka/jellyfin 的镜像,也是只能用在x86/amd64平台上,但该镜像集成了显卡驱动和字体,可直接使用,无需配置,可以直接跳到 Jellyfin 系统设置章节;
镜像下载
根据自己的情况,个人选择官方版本
1、jellyfin/jellyfin 官方镜像下载:
$ sudo docker pull jellyfin/jellyfin:latest
2、 linuxserver/jellyfin 镜像下载:
$ sudo docker pull linuxserver/jellyfin:latest
3、 nyanmisaka/jellyfin 即插即用镜像下载:
$ sudo docker pull nyanmisaka/jellyfin:latest
容器的创建与启动
创建共享文件夹
-
/config
-
/cache
-
/media
-
/dev/dri
mkdir -p C:UsersqingjiegongDesktopdatajellyfinconfig
创建与启动jellyfin容器
docker run -itd --name=Jellyfin -p 8096:8096 -v C:UsersqingjiegongDesktopdatajellyfin:/config -v C:UsersqingjiegongDesktopdatajellyfin/cache:/cache -v C:UsersqingjiegongDesktopdatajellyfin/media:/media -e TZ=Asia/Shanghai -e PUID=0 -e PGID=0 --device=/dev/dri:/dev/dri --restart unless-stopped jellyfin/jellyfin:latest
--name=Jellyfin 将容器名定义为 Jellyfin
-p 端口映射(主机端口:容器端口)
-v 共享文件夹,配置映射
-e TZ=Asia/Shanghai -e PUID=0 -e PGID=0#将容器的时区设为上海,使用窗口在运行时使用root权限
--device=/dev/dri:/dev/dri #直通显卡给 Docker 容器,用于硬解
⭐--add-host=api.themoviedb.org:13.224.161.90 #为容器增加 host 指向,加速海报与影视元数据的搜刮
--restart unless-stopped在容器退出时总是重启容器,但是 Docker 守护进程启动之前就已经停止运行的容器不算在内
端口说明:
部署容器时需要部署的端口映射
端口号 | 用途 | 可选项 |
---|---|---|
8096 | 默认http端口号 | 必须 |
8920 | 默认https端口号 | 可选 |
7359 | 让同一局域网中的客户端设备自动发现 | 可选 |
1900 | DLNA的端口 | 可选 |
docker-compose
version: '3.5'
services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
user: 0:0
network_mode: 'host'
volumes:
- C:UsersqingjiegongDesktopdatajellyfinconfig:/config
- C:UsersqingjiegongDesktopdatajellyfin:/config/cache:/cache
- C:UsersqingjiegongDesktopdatajellyfin:/config/media:/media
- C:UsersqingjiegongDesktopdatajellyfin:/config/dejavu:/usr/share/fonts/truetype/dejavu
restart: 'unless-stopped'
ports:
- 8096:8096
devices:
- /dev/dri:/dev/dri
extra_hosts:
- "api.themoviedb.org:13.224.161.90"
- "api.themoviedb.org:13.35.8.65"
- "api.themoviedb.org:13.35.8.93"
- "api.themoviedb.org:13.35.8.6"
- "api.themoviedb.org:13.35.8.54"
- "image.tmdb.org:138.199.37.230"
- "image.tmdb.org:108.138.246.49"
- "api.thetvdb.org:13.225.89.239"
jellyfin-setup:
image: jellyfin/jellyfin
command: >
bash -c "apt-get update && apt-get install -y fonts-noto-cjk-extra intel-media-va-driver"
depends_on:
- jellyfin
系统环境调试
进入 Jellyfin 的 Bash 模式:
docker exec -it Jellyfin /bin/bash
#之后是容器内的命令行环境
root@Jellyfin# apt update #更新容器内 debain 仓库信息
字体安装:
root@Jellyfin# apt install fonts-noto-cjk-extra
Intel核心显卡直通确认与驱动安装:
#显卡直通确认
root@Jellyfin# apt ls /dev/dri
#驱动安装
root@Jellyfin# apt install intel-media-va-driver
#解码支持确认
root@Jellyfin# /usr/lib/jellyfin-ffmpeg/vainfo
VAProfile输出的多少,视显卡而定
Jellyfin系统设置
启动并初始化Jellyfin
Jellyfin的容器已经在Docker里创建、启动和调试好了,接下来可以打开浏览器,输入Jellyfin服务器地址加端口号打开Jellyfin的页面
http://localhost:8096/
账:qingjiegong
密:qingjiegong
可自定义,为何放出来?因为存放到自己的docker仓库了,方便大家拉取
docker pull qingjiegong/jellyfin
媒体库设置:
菜单 -> 控制台 -> 媒体库
添加媒体库:
-
内容类型:电影内容选“电影”;电视剧选“节目”;
-
显示名称:自定义:
-
点击 “文件夹” 旁边的加号,分别添加电影或电视剧内容所在的文件夹;
-
首选语言选择“Chinese”,国家/地区选择“People's Republic of China”;
-
元数据下载器里:只保留“TheMovieDb”;
-
图片获取程序:只保留 “TheMovieDb”;
-
没提到的,则根据情况自行选择;
全部设置完点“确定”,之后系统便会自动生成电影和电视剧的海报列表,完成的速度和你使用的网络环境相关。
网络设置:
-
打开“控的制台”,在“高级”里选择“联网”;
-
设置“监听的本地网络地址”,设为 Jellyfin 服务器所在的网址;
-
设置“LAN网络”,设置为你的局域网地址,比如:192.168.1.0/255.255.255.0,如果有多个局域网网段,则用“逗号”隔开;
-
最后点”确定“完成网络配置。
视频硬解设置:
-
打开”控制台“,在”服务器“里选择”播放“;
-
硬件加速这里:下拉选择”Video Acceleartion API(VAAP)“或者”Intel QuickSync(QSV)“,不是太老的CPU/显卡,建议选QSV;
-
启用硬件解码:根据显卡支持的解码进行选择,Intel J3455及以上的CPU,即UHD500及以上的显卡可以全选;
-
首选系统原生DXVA或VA-API硬件解码器:不选;
-
硬件编码选项:只选择“启用硬件编码”,“启用VPP色调映射,没有提到的均不选;
-
最后根据实际情况选中”允许实时提取字幕“和”限制转码速度“;
-
没有提到的选择项均不选,其他参数均使用默认值;
-
最后确定完成设置。
注意,千万不要选择”启用色调映射“,这是个坑,选中后,很多HEVC/HDR的片子在播放时会报错,提示没有合适的容器,最终无法播放。
字体乱码解决
默认情况下jellyfin的中文字幕及封面会出现乱码,我们需要通过替换字体的方式来解决。
docker run的时候把字体目录挂载了出来(/dejavu:/usr/share/fonts/truetype/dejavu),接下来只需要将中文字体放入该目录即可。
中文字体可以从windows的字体文件夹(C:WindowsFonts)内随便复制一个,复制六份,分别修改为以下名字。
DejaVuSans.ttf
DejaVuSans-Bold.ttf
DejaVuSansMono.ttf
DejaVuSansMono-Bold.ttf
DejaVuSerif.ttf
DejaVuSerif-Bold.ttf
重新启动jellyfin
进入设置,设置语言偏好为中文,选择烧录所有复杂格式字幕
至此,字幕乱码问题解决完成
原文始发于微信公众号(qingjiegong):docker搭建jellyfin部署视频库、私人电视
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论