1.embyԴ?源码????
embyԴ?????
目前市面上常见的播放服务软件大致有三种,plex,编译emby,源码jellyfin。编译
plex 和 emby 在信息的源码搜刮以及海报墙展示上个人认为性能会比 jellyfin 更好一些,同时系统也更为稳定,编译android源码上传svn但 plex 和 emby 的源码高级功能,例如硬件解码以及直播等功能,编译均需要付费才能支持。源码
jellyfin 作为播放系统,编译除了海报墙等基础功能外,源码还自带免费的编译硬件解码以及转码功能,对于远程播放且带宽受限的源码用户来说,是编译一个比较经济的解决方案。除此之外,源码jellyfin 源码也在 github 上 开源了,这相比闭源系统来说,使用更加放心。
部署过程主要参考油管 Techno Dad 相关视频。servlet论坛源码下载
由于国内网络性能的原因,从 docker hub 拉取镜像时可能会出现下载缓慢的现象。因此笔者的建议是先将 docker image 下载缓存在本地后再进行 docker-compose 的部署。
从 docker hub 网站 复制命令 docker pull linuxserver/jellyfin,使用 ssh 连接终端,复制命令并运行,等待镜像下载完成。下载后执行 docker image list,应该会看到相应镜像。kcf源码运行环境
打开 portainer,选择侧边栏 stacks ,点击 add stack 按钮即可创建 portainer stack。
portainer stack 使用的是 docker-compose 格式的部署脚本,需要从 docker hub 中的 jellyfin 文档复制并且加以修改。文档中代码如下:
需要修改的地方有以下几个:
根据 linuxserver 文档所述,使用 PUID 和 PGID,可以将容器的内部用户映射到宿主机上的用户,这样能够避免 root 权限配置及容器映射卷内的导航主页wap源码文件管理问题。
使用 ssh 连接至 omv 终端后,输入id admin 命令获取当前 PUID 以及 PGID,如下图所示,此时的 PUID = ,PGID = 。
根据当前时区位置修改为TZ=Asia/Shanghai
docker 会将宿主机的文件路径映射为容器中的文件路径。在 docker-compose 中,例如/path/to/appdata/config:/config 冒号前的则为宿主机路径,冒号后的app竞拍源码为映射的路径。
首先在 omv 中通过添加共享文件夹来创建宿主机的目的文件夹,如下图所示:
在添加时,设备指的是共享文件夹存储对应的硬盘,路径则是共享文件夹在硬盘上存储的相对位置。
创建成功后,在页面上显示的绝对路径即为所要的宿主机路径,如下图所示:
根据部署脚本代码,需要修改以下几个磁盘映射路径:
根据文档所述,主要需要调整以下端口:
实际上主要调整 端口即可。
当使用 intel 集显时,通常情况下在 debian 系统中会自动安装驱动,只需检查 /dev/dri 路径下是否存在 renderD 即可,只要存在则驱动已被安装,只需要挂载驱动即可
--device=/dev/dri:/dev/dri
使用英伟达显卡时,需要先 安装 Nvidia-docker 容器,之后重新启动容器,并在启动项中增加 --runtime=nvidia ,并且增加环境变量 NVIDIA_VISIBLE_DEVICES=all 即可。
经过上述调整,修改后的 docker-compose 大致如以下所示:
设置完点击Deploy the stack 按钮,如果部署脚本没有错误,应该会跳回 stacks 页面。同时使用 http 协议访问 jellyfin 之前设置的 web ui 对应端口,应该能够弹出 jellyfin 登陆界面,证明部署成功:
点击控制台->媒体库->添加媒体库,并将前文挂载的媒体库按照类型进行添加。
添加后点击扫描所有媒体库,系统会自动进行扫描和索引。
intel 核显勾选Video Acceleration API(VAAPI) 选项,并且设备选择 /dev/dri/renderD 即可,将硬件解码部分所有都勾选上,系统遇到合适编码时,将会自动使用硬件进行解码。
至此,jellyfin 基本设置完毕,可以尝试播放媒体库中的视频判断是否成功运行。
这次主要实现了直接部署 jellyfin 在 portainer 上,并且进行了 jellyfin 的基础设置。