自托管流媒体平台的基础使用(jellyfin) - 基于Docker
因同质性,本文移植后由原jellyfin/emby/plex三篇文章汇聚而成,不过我个人只用jellyfin
前置条件:unraid开启cpu核显
Jellyfin
推荐版本:nyanmisaka的jellyfin
一、安装Jellyfin
> app商城搜索“jellyfin”。切换至“Click Here To Get More Results From DockerHub”
找到“NyanMisaka”开发的jellyfin(善用ctrl+f)并安装
> 在配置页面,设置cache(缓存)与media(媒体库)文件夹
缓存文件就是保存了临时文件、和刮削出来的一些略缩图等
> 在文末点击“ Add another Path, Port, Variable, Label or Device”添加新参数,以便开启硬解
> “Config Type”选择“device”,“Value”选择驱动位置即“/dev/dri/”(默认就在dev目录下,寻找dri文件夹即可),其他随意,想要稳妥点用英文而非中文也可。
> 设置完成后保存配置即可
二、设置jellyfin
点击图标运行发现是命令行?别慌,看ip
浏览器访问jellyfin对应的你家内网IP+端口号即可
发现访问进去后不是设置页面?清除浏览器缓存试试
或者直接访问:http://你的内网ip:你的端口/web/index.html#/wizardstart.html 试试
如若行不通请重装(重装之前在appdata目录删除jellyfin的文件夹)
之后再度访问它
初设置:
> 语言:汉语(简体字)
> 用户名:root(可以自定义,我推荐默认的root)
> 密码:自定义
> 设置媒体库:先跳过,随时可以添加
首选元数据语言
> 语言:chinese
> 国家/地区:p开头的,这是中国全称
设置远程访问:保持如下图默认状态即可,不必开启端口映射,后续路由器自己设置就行
大功告成
开启硬解:
> 在【控制台】—【播放】—【硬件加速】栏选择“QSV”或“VAAPI”(我选择的是QSV)
ps:如果是选择了VAAPI会让你选择驱动路径,默认已经是在dev目录内了,所以找到dri目录并选择就行了
> 启用硬件解码相关的设置建议能勾都勾
> 在页面底部保存即可
添加媒体库:
登陆后自动跳转到首页,可以按照提示点击创建,也可以在左侧菜单栏选择
> 在【控制台】—【媒体库】中选择添加媒体库
扫描媒体库适用于规范的文件夹,可以快速添加,这里以手动创建为例
> 选择内容类型:根据你的需要选择
> 设置要显示名称
> 设置首选语言和地区
> 点击设置文件夹(点击旁边的加号)
> 选择路径“/media”此路径映射就是配置时设置的那个路径
你可以在里面创建文件夹来进行分类影视
示例:
其他:
他是自带了一些内置的元数据获取插件(刮削器),不过有些可能需要魔法解决,后面看使用的具体情况考虑是否换就行,这里默认即可)
可以勾选“将媒体图像保存到媒体所在文件夹”,如其简介所说,方便编辑,然后刮削的单集截图文件会被存放在影视文件夹中,有一个新建文件夹:metadata
保存即可
进一步设置:
鼠标悬浮至该媒体库,点击右下角的更多,可以修改
按照需求进行编辑即可,设置封面之类的
(在具体的影视上点击“编辑元数据”可以修改年龄限制评级和具体的元数据信息)
测试:
大功告成!
设置里还可以设置用户组、添加用户、指定用户可以访问哪些媒体库等等,可以自行设置里探索,或者我后面会出文章介绍我所设置的选项。
解码相关:
实测VAAPI默认只勾选的那几个解码,播放器来很流畅,很迅速,但是cpu占用过高
可是视频参数里显示不支持转码,虽然核显确实被用了,但是估计没正常走转码
然后我将所有解码都勾选上,占用低了,可是异常的卡,动一动卡半天
之后经由大佬指路,换成了qsv算是完美解决了,缓冲还是慢些,但只卡顿两三秒(4K),占用也很低,运转占用10左右,缓冲了有一段之后占用更低
三、进阶设置
前半篇文章正式将jellyfin投入使用了,实际上,在中文的页面下,他的设置项是非常的清晰的,都是字面意思,您可以花费一些时间去看一圈,将自己需要的给设置上。
1、新建/管理用户
> 【控制台】中选择【用户】,点击加号即可新建用户
> 设置登录账户和密码,同时可以设置媒体库访问权限
> 单击右下角更多按钮,上面三个随便选一个进入即可。
> 在【简介】选项卡中可以更改用户名、设置管理媒体库权限、播放限制、速率限制、以及同时登陆设备数量限制
> 在【访问】选项卡中可以设置允许访问的媒体库、取消勾选设备访问口,会出现一个登陆过的列表,可以设置白名单,限制其他设备访问
> 在【家长控制】选项卡中可以设置评级,适合给家里有小孩的用,可以限定可访问的最大电影评级,或限制访问时间
> 在【密码】选项卡中可以修改账户密码,下方有一个pin码,我原本以为类似于Netflix的pin码,一个主账户多个子账户,不同pin码对应不同账户,可是试了试不对,目前还没有拓展出玩法
2、字幕设置
你在在影视的适合如果发现字幕的位置不对,那么不用慌
> 点击右上角的头像,选择【字幕】
> 调整字幕垂直位置
负数代表从下到上,因此“-1”就是字幕在视频最下方,“-16”是可设置的最上方
正数代表从上往下,因此“1”就是字幕在视频最上方,“16”是可设置的最下方
一般根据习惯设置为-1、-2都可。具体还是看习惯
注意,该设置是针对设备的设置,此设置仅对当前用户的当前设备生效,你有其他客户端的话,还是要手动设置一下
3、分辨率设置
默认分辨率是最高画质,像是4k,如前文所说,对cpu负载1080和4k差不了多少,而一般的手机或电脑设备也无所谓这点区别,可如果普通wifi网络还行,流量的环境下,那不直接gg
> 点击右上角的头像,选择【播放】
可以自行设置默认播放分辨率(如果为自动会根据网速自动调整)、跳转按钮的时间跨度
疑难杂症:安卓版客户端播放卡顿、无法识别imdb
遇到的两个应该是bug的问题:
问题:安卓端jellyfin播放卡顿、只有声音播放,画面不动。
经过测试,tv版正常,搜了下问题的英文描述,有相同案例,我是一开始正常使用,后面突然(应该是更新了一下)不行了的。
非技术人员,目前的解决方案是 “客户端设置”更改视频播放器为“综合(integrated player)”或“外部”(External player)。
原理不知道,解决思路是网页、linux/win客户端、tv版都正常,那就是安卓版的问题,人为能控制的也就是不同客户端具体的设置,就试了试,体验(操作上)不如原版播放器好用,但主要还是电脑看片,无所谓。
问题:手动输入imdb识别无效,能找到正确的电影,但是无法替换任何数据。
搜了下也有相同案例。这个比较玄学,印象中有几次正确修改了,有的只能替换图片,有的改成了乱七八糟的东西。
最后解决了,但不知道哪里起了作用,毕竟非技术玩家,也懒得试验。反正我是安装了个imvdb的插件(已经安装TMDb的插件了),媒体库设置里把anidb等无关的元数据获取渠道取消勾选,重启jellyfin,第一次是用tmdb识别的,正常替换数据,然后用imdb也一切正常了。不清楚具体哪里起了作用。
总而言之,在不清楚技术原理及没有对应的技术水准理解问题根源的情况下,遇事不决靠玄学,能用就用,少折腾最好。
emby
推荐版本:lovechen的emby
一、安装emby
> app商城搜索“emby”。切换至“Click Here To Get More Results From DockerHub”
- 图片还是用的jellyfin的图片,懒得换了,搜索emby即可
找到“lovechen”的emby(善用ctrl+f)并安装
> 在配置页面,设置端口及media(媒体库)文件夹
> > 注意端口设置,如果端口冲突修改下,不冲突保持默认即可
> > 设置media(媒体库)文件夹
从上往下分别是:该设置的名称、容器内部目录、对应的外部实际目录
前两者自定义即可,没有要求,仅作为标识存在
> 在文末点击“ Add another Path, Port, Variable, Label or Device”添加新参数,以便开启硬解
> “Config Type”选择“device”,“Value”选择驱动位置即“/dev/dri/”(默认就在dev目录下,寻找dri文件夹即可),其他随意,想要稳妥点用英文而非中文也可。
> 设置完成后保存配置即可
二、设置emby
点击图标运行发现是命令行?别慌,看ip
浏览器访问emby对应的你家内网IP+端口号即可
发现访问进去后不是设置页面?清除浏览器缓存试试
或者直接访问:http://你的内网ip:你的端口/web/index.html?start=wizard#!/wizard/wizardstart.html 试试
如若行不通请重装(重装之前在appdata目录删除emby的文件夹)
之后再度访问它
初设置:
> 语言:Chinese Simplified
> 设置root用户和密码(账户名和密码自定义即可)
> 新建媒体库,暂时跳过(直接选“Next”)
> 选择元数据(刮削)语言和地区(中国是“china”,但位置在“P”开头的区域)
> 设置UPnP,建议自行路由器端口映射,这里取消勾选
> 接受服务条款并下一步,再点击完成即可
> 登陆账户即可
添加媒体库
> 点击右上角的设置按钮进入控制台(仪表盘)
> 在左侧“服务器”栏选择“媒体库”选项
> 点击“新媒体库”
> > 选择内容类型、显示名称
> > 添加媒体库文件夹
> > 设置元数据语言、国家(与前面机制一样)等
与#Jellyfin大同小异,因为服务器性能不再额外截图
之后等待一会
> 测试:
大功告成。其他诸如新建用户、播放等细节的设置均可参考#Jellyfin的相关设置,大同小异
plex
推荐版本:官方的或者linuxserver的都行(本教程用的官方的)
ps:plex没有开心版方案,jellyfin是开源的,emby有开心版
一、安装plex
> app商城搜索plex,下拉找到并安装官方镜像
> 在配置页面 设置临时目录:随意,转码产生的临时文件存放处,我是设置到了appdata目录下,这个无要求
> 设置映射文件夹:实际存放影视的文件夹,可以根据需求添加多条映射
> 设置PLEX_CLAIM:(提前登录好plex账户)访问:https://www.plex.tv/claim/ 查看claim代码(有效期4分钟,注意时限)
(图中ip的设置是因为我有需求,单独分配了ip,没有需求的话按照默认设置即可)
> 添加硬解驱动 方法1:点击右上角进入高级设置,在extra parameters栏添加--device /dev/dri:/dev/dri
设置硬解驱动
>添加硬解驱动 方法2:新加一个参数,type选为device,name自定义,value设置为/deb/dri
方法2是传统的方式,方法1原理一致,我个人使用的方法1
添加之后,点击apply等待拉取镜像完成后:
> 在docker页面点击plex图标选择webui,或直接输入你的内网ip:32400(默认端口)访问plex。首次会跳转至plex官网
> 官网页面核对账户后确认登录
> 核对后会再次返回内网webui端口,首次提示是否开启同步,英文机翻过来也不好确定意思,应该就是观看历史或者影视评级之类的?开不开无所谓,我是给点开了,随时可以关闭
>下个页面是plex工作原理提示,确认即可
> 基础设置:设置plex名称和琐项。名称自定义即可,资料库可以稍后设置这里直接下一步跳过
> 下载应用官方给的服务端(虽然切换按钮就在旁边)网址,这个是->各端客户端下载,也可以直接app商城搜索。之后点击完成即可
> 个性化设置媒体,默认即可,点击完成
二、基础设置plex
添加媒体库
> 由于没有设置媒体库,默认是plex自己提供的一些流媒体服务,点击左侧菜单栏的“更多”,选择自己的媒体库
> 点击“管理库”(或直接在控制台的设置里找到管理--媒体库)
> 点击新加资料库(如果添加了内容,可以点击扫描资料库文件更新资料库)
> 设置媒体库类型,根据你媒体库内容而定和媒体库文件夹名称,自定义即可,需要注意的就是语言,选择中文即可
> 设置媒体库文件夹,在data(默认容器内部映射路径)目录下选择影视存放的文件夹,点击添加即可
> 等待自动刮削(plex有自己的刮削服务器不用自己设置)完成即可
高级设置里可以自定义一些具体的设置,都是字面意思,如无特殊需求无需单独设置,可以自行浏览下
编辑媒体库
> 如果设置错了,可以在媒体库文件夹里点击三个竖点(⋮)--管理资料库--编辑中随时更改(媒体库类型无法更改)
> 如果修改的是语言等数据,可以点击上面设置页面编辑下方的“刷新所有元数据”即可
> 自带的plex官方的媒体库觉得烦人可以取消固定,点击三个竖点(⋮)--取消固定即可
使用硬解
> 播放视频看一下核显占用,或者在设置--面板中看一下是否有HW标志,有则代表使用了硬解
> 如果没有使用硬解,在设置--转码器里勾选可用时使用硬件加速。
> 如果还是无硬解,则取消勾选“启用高动态范围色调映射”。
顺带一提,plex解码有点问题,部分影视可以很好的硬解,但是有部分电影会有解码瓶颈,我这里是核显跑到10%就跑不上去了,以至于正常播放一段时间缓冲跟不上来就很卡,更别提加载、转码等更改设置了。
目前来看,解决方案是关闭字幕……没错,字幕的锅,很无语
转码器临时目录的话,我这里因为解码问题,linuxserver和官方的来回换着测试,上图是linuxserver的plex,默认没有转码目录我自己映射了一个,官方的设置好转码临时目录时会自动填充设置的文件夹,不需要更动