前言

好久没做博客记录了,一直都说搞媒体中心,其实早就搞好了,然后最近因为硬盘的问题,我的媒体流失了一些,就挺烦的。不过媒体中心经过一段时间的测试,基本来说也算稳定能用。时隔大半年的时间,今天就来做一个记录吧。

开搞

准备工具

  1. 可搭载媒体中心的服务器(普通电脑亦可)
  2. Linux或者Windows,也可以是NAS系统,甚至可以是Android
  3. Emby/Jellyfin安装包

搭建过程

安装准备

  1. 关闭防火墙,或者放行8096端口,至于为什么是8096,后面会说
  2. Linux系统关闭SElinux

前排提醒

本文只对日常简单的内容进行解释和记录,深入的功能后续请自行研究哦。

下载并安装Emby/Jellyfin的安装包

先简单解释一下,为什么这里要把Emby和Jellyfin放在一起,其实Jellyfin是Emby的一个分支,Emby在闭源之后开始了收费,Jellyfin的开发团队从原Emby脱离出来制作了一个Jellyfin,两者几乎差不多,不过Emby因为收费,所以增加了许多特色功能(会员专用),而Jellyfin因为是免费开源,所以还有一些依赖需要自己根据实际进行安装。这里安装方法分开两个软件进行说明。

Emby安装

进入下载官网→Emby下载,然后就有系统的选择,根据实际需求选择,这里大多数使用Linux或者是Windows,Jellyfin同理。
Windows安装比较简单,直接下载exe安装即可,不过这里建议选择下面Portable Installation进行安装,因为exe需要联网下载安装包,而Portable Installation直接下载就是一个完整的包,随便丢到什么地方,打开里面的EmbyServer.exe运行就可以了。
Linux的话得根据具体系统具体选择,大部分都是wget下载好安装包,然后使用各自的包管理器进行安装,也有少数例外,因为有些Linux发行版他的官方仓库已经包含了Emby的安装包,所以能通过它专用的包管理器安装。这里就不多说了。官网有完整的过程,可以直接看看。
至于NAS系统,这里不多说,看官方流程吧。还有Docker,这个就不多说了,基本就是pull一下的事情。

Jellyfin安装

进入下载官网→Jellyfin下载,然后也是系统选择,和Emby一样选择,不多赘述。
不过Jellyfin的安装和Emby有蛮大的差异。首先Jellyfin独立支持的系统仅有Windows、Linux(各种热门发行版)和MacOS,更多平台的话可以考虑使用Docker安装,例如NAS,但像Android这些,Jellyfin没有(当然也没差啦)。其次Jellyfin不同系统都有好几个包,Windows还算比较简单,Linux的话简直要命(我一开始不太理解为什么要这么搞,整合不香吗?但是其实这个也算是给了空间用户自定义,例如web上面的一些Logo,一些UI设计等等)。那么,下面就详细说说。
Windows/MacOS下:
它分了四个包,官方也有说明,我这里就简单翻译一下:

installer/包含以下全套的东西,傻瓜式exe安装,选这个准没错
combined/免安装包,就是没打包成exe的,其他和exe安装后一样
server/一个基础服务器的包,只有服务器,需要搭配下面的web/才能访问到页面
web/独立出来的web页面包,需要搭配上面的server/使用

Linux下:
(Portable除了install/外基本同理,不过只支持Linux,Windows免安装要在Windows页面下载)
ubuntu/debian/ArchLinux:官方下面页面说的很清楚,这里不再赘述。
其他Linux(包含Generic Linux和REHL系的)

*combined/免安装包,server/+web/一起,不过只有Generic Linux有这个,说白了就是整合包
server/一个基础服务器的包,只有服务器,需要搭配下面的web/才能访问到页面
web/独立出来的web页面包,需要搭配上面的server/使用

这个时候就会发现,CentOS和Fedora下的server/和web/有很多个rpm安装包,那么究竟选择哪个安装呢?选个屁啊,全部装上就是了,因为每个rpm都带一部分依赖文件,全部安装基本就没错了。(这个是个坑,我掉进去过了。)
值得注意的是,REHL系的Linux没有自带FFmpeg,Jellyfin的解码是依赖FFmpeg实现的(所以JellyFin免费),所以需要自行安装,还有部分依赖也需要根据实际需要安装,因为不同的系统安装方案,会有不同的依赖安装情况。

还有Docker,这个就不多说了,基本就是pull一下的事情。剩下的不懂可以直接访问官方的文档:官方文档

搭建使用

终于说到这一段了,安装就得长篇大论。那么安装后怎么使用呢?其实很简单,当你确保完全安装好之后,就可以打开浏览器,输入以下链接:

http://ip:8096

这里的ip就是你服务器的ip,如果你是winserver或者是带图形界面的Linux内直接访问,那就改成localhost或者是127.0.0.1即可。所以明白为什么一开始要开8096端口了吧,实际上这个端口就是默认初始化端口。
进入之后就有一段简单的配置向导,跟着向导走就对了,媒体库部分可以先随便设置,后面可以慢慢自定义,把第一个管理员账户设置好就可以了。搭建到这里,基本上就完成了,登录使用即可。如果前面媒体库的文件夹有做好设置,系统就会自动扫描刚刚你设定的媒体库文件夹,自动识别你的视频文件。

媒体数据

这里建议各位先对所有媒体做好一个分类,然后再进行媒体库的配置,媒体分类后面单独说。这里后面的内容均以完成分类后为基础。

媒体库

登录管理员账户之后,就能设置媒体库了,进入控制台的媒体库选项,选择新媒体库。可以设置多个媒体库,媒体库是用来区分分类的关键。例如你已经设定好某些是电视剧,某些是动画电影,然后就根据你的设定来划分媒体库。
这里需要选择类型,这一步非常关键,因为这个类型决定了后面元数据刮削的时候的一些内容分配,还有媒体中心版面的显示。同时不同的类型也会有不同的设置。
QQ截图20210415173425.png
接着选择文件夹,并且定位到你需要这一个媒体库显示的文件夹,当然也可以同时定义多个文件夹。但是我个人建议一个媒体库对应一个文件夹,这样方便后续的维护。
接着首选元数据下载语言统一使用中文,国家也选择中国。这里值得注意一点,Emby和Jellyfin的国家这个选项是使用英文排列的,但是Emby里面中国不是显示在C的一部分,这个主要是因为系统在后台代码对中国的描述是People's Republic Of China,所以其实中国是显示在P那一部分的,但是Emby不知道为什么UI上没有对中国写全称,而还是保留为China,所以就很突兀的China在P那一列。Jellyfin则是把中国的全程给显示出来了。接着就是图像语言,建议不要使用China,因为有些图片中国这边的海报不好看。如果大部分是日本动漫建议直接使用Japanese,美国大片就选择American。记得把实时监控打开。
22.png
元数据下载器首选TheMovieDbThe Open Movie Database不怎么好用不用勾选。储存方式也是用Nfo即可。后面都可以把The Open Movie Database的勾选去掉,国内这个不好用。图像获取器一样,不过这个最好把FanArt勾选上。
字幕的话,不用设置,如果有字幕需求,直接找ass文件然后放到视频目录下就能自动识别了。
QQ截图20210415180416.png
搞到这里,基本上就完成了。确定后,媒体库会自动扫描文件夹适配视频,然后刮削器就会自动工作,当然有时候需要手动刮削,这个在元数据的时候继续谈。

元数据

完成了上述的搭建使用是不够的,所谓媒体中心,和购物中心是一样的,你只是把购物中心的建筑盖好了,随便找几个商家卖东西,不知道那是什么店铺,也不知道卖的什么,甚至不知道商品是什么东西,那购物中心怎么能够运营呢?媒体中心也是一样,里面已经扫描好了你的媒体了,但是你也要对每一个媒体做好分类,而且还要把媒体的内容做好一个标识,内容简介等,例如某XX电视剧,每一集的大概内容,标题,电视剧出场角色,演员等等。这些都是需要去整理的。
这么说起来好像很难的样子,其实不难,一般来说都不需要手动调整,因为Emby和Jellyfin内置了相关的工具,我们称之为刮削器,这个东西能够识别到你的电视剧、动漫番剧、电影等等的数据,然后联网,通过联网平台的API进行数据匹配,并且自动把数据下载到本地,我们把这些数据称之为元数据


一般下载元数据的平台有很多,国内有豆瓣等,不过我个人比较推荐使用tmdb(themoviedb),部分平台只有英文,而且需要科学上网才能链接。但是tmdb基本不需要科学上网,而且数据大多数有中文,数据的维护也比较好,很多新内容都能及时跟上。
至于元数据的设置,可以看上面媒体库配置的元数据部分。这里要讲的是怎么手动去给某个视频做数据匹配。


首先打开控制台-高级-元数据管理器。上面就会列出你所有的媒体数据,找到你要手动修改元数据的媒体。然后就会列出一系列的数据可供编辑。一般来说,评分、口号这些基本上不用设置,概述、发行日期、年份原标题、类标题、标题、分级的话如果刮削正常会自动匹配,当然也可以做修改,而剩下其他的基本上也不需要去理会,但是标题也可以根据实际需要修改。
QQ截图20210415171220.png
先说下如果是因为网络原因无法刮削而在恢复好网络之后需要手动刮削的情况,找到编辑菜单,就在右上角的···上,找到刷新元数据,如果本身已经有一部分数据了,刷新模式就可以选择搜索缺少的元数据,默认情况下,选择覆盖所有元数据也是没问题的,元数据下载很快。
1111.png
QQ截图20210415171424.png
接着说说怎么手动刮削,先找到媒体的外部Ids,会有一些媒体平台的选项,上面叫你输入的是一个ID,那么这个ID怎么获取呢?两种方法:

  1. 编辑菜单,右上角的···上,选择识别,然后在名字输入媒体的名字,如果有搜索结果,直接匹配即可。如果没有,就可能标题有误,需要去找到正确的标题。当然也可以用方法2。
    QQ截图20210415171926.png
  2. 选择外部Ids中支持的平台,例如我默认喜欢用TheMovieDb,那就先去TheMovieDb官网→Themoviedb官网,接着搜索标题,一般来说大部分标题都能匹配到,例如我这里搜索《天体的秩序》。进入详细页,然后看到url是这样的:

    https://www.themoviedb.org/tv/66716

    这一串url后面的数字,就是媒体的ID号,复制那串数字,然后回到媒体中心的编辑页面的外部Ids部分。把ID输入到themoviedb上,然后储存,接着打开编辑菜单,刷新一下元数据即可。

QQ截图20210415171900.png
其实元数据没有想的那么复杂,不过需要各位细心对待,这个对于后期媒体中心的使用非常的重要。不然媒体中心的搭建也没什么用了。
这里补充一点,在使用themoviedb刮削前,先使用命令行ping一下api.themoviedb.org,如果网络不通的话,就证明是无法从themoviedb上刮削数据的,需要利用科学上网工具或者是使用修改hosts文件来解决这个问题。前者这里不多讲了,后者的话,只要在hosts上增加一条对应:13.226.238.82 api.themoviedb.org即可。
Linux可以使用以下命令:

echo "13.226.238.82 api.themoviedb.org">> /etc/hosts
命名规则

先扔我当时学习研究的教程:
电视剧动漫番剧命名:点我传输
电影命名:点我传输
这里简单解释一下这两种命名规则日常最简单的使用方式:
先说电视番剧,大致就是这样:

/动漫(根目录)
  /天体的秩序(动漫名称)
    /Season1(季度)
      S01E01.mp4 
    /Season0(Specials)
      S00E01 - OVA1.mp4
    /Extras
      NCOP.mp4

值得注意的地方是,在最后的视频文件一定要加上:S**E**(**代表一个数字,S后面的**是季度,E后面的**是话数,例如S01E01,就是第一季第一话),可以加在文件名的头部,也能加在尾部,只要有这个格式的文字在里面就行。
这里建议就算tv只有1季,也要在目录下做一个Season1,然后动画全部加上S01,首先例如tmdb这种基本上都会标注第一季,就是说无论这个tv剧有没有第二季,都会标注当前已放送的内容为第一季,而且这样的话方便后期维护,说不定出了第二季或者第三第四呢?
还有一个Season0,有些动漫番剧会随BD或者是DVD发布一个OVA或者是OAD,他们一般被归类为特别篇,所以可以直接和季度文件夹同级并设置为Season0或者是Specials,一般tmdb会包含特别篇,在做好分类后emby会直接识别tmdb的数据然后下载,tmdb一般会把特别篇标记为Season0,但是使用Specials也能照样识别。
Extras是用于放一些不在tmdb有信息的,但是和番剧有关的一些媒体,例如某些BT下载的动漫番剧的种子,一般都是别人解码打包好的BD蓝光数据,里面包含NCOP或者是NCED(NC的意思是Non-Credit,NCOP简单来说就是没有任何制作人信息,字幕等文字的干干净净的动画片头,NCED同理)。
其次来说说电影,电影没有那么复杂,给出的目录格式大概如下:

/电影(根目录)
  /寻梦环游记
    寻梦环游记.mp4

电影比较简单,但是要注意尽量放在文件夹里面做好区分,否则会有后续维护的麻烦。因为几乎电影不会分一二部那样,就像复联,钢铁侠那些有好几部的,tmdb都是独立分开每一部的,所以电影一部一个文件夹就行了。
当然还有一些特殊的命名规则,这些可以在上面我研究学习的教程看看,有很详细的说明,这里就不多赘述了。

媒体分类

其实媒体分类这一块在命名规则也讲的差不多了,但是这里还是得强调一下几个事情,首先是在文件夹分类上,一定要做好一个树状图,因为这个关系到后面emby和jellyfin的检索,那么这个分类该怎么做呢?其实基本上因人而异的。因为分类基本上是按照个人的一个分类习惯而定,例如有些用语言分类,有些是名字开头首字母分类,有些是直接按照视频种类分类,五花八门。这里其实可以参考一下上面的研究学习的教程,里面有些命名方法,其实算是一个分类方法。这里要注意的是,分类最好和媒体库的划分一一对应,方便以后的维护。

其他设定

这部分只讲一些关键的点,其他简单的设置请直接去控制台看即可,这里不做详细说明

用户

Emby和Jellyfin支持多个用户同时访问,也支持多个用户账号密码登录,不过比较麻烦的一点是,用户的注册需要管理员账户完成,没有模板录入,其实就是批量创建(除了自己写代码),支持空密码,不过管理员账户最好使用密码,因为管理员账户有完全的权限,可以做家长设置等,管理员用户也可以设置多个。
用户的作用在于,和系统用户一样,它用于区分每个人的媒体播放进度,播放权限等,例如不同的用户有不同的播放进度记录,虽然用户可以多人同时登陆同一个(不会占线踢出),但是如果使用人数比较多,那么就会严重影响其他人的使用。播放权限的话,管理员可以对每个用户进行不同的设定,例如回放、直播、转码、下载、删除、远控、分享,还有可以让该用户只能播放指定的媒体库(所以这里媒体库和媒体分类的意义就凸显出来了),也能设置家长分级播放。基本来说用户就是一个管理权限上的区分。

网络

这部分设置的一些说明其实都很详细,我就不展开说了,像局域网基本上就是就是限定哪些设备能够作为本地网络,说白了就是自定义筛选,默认情况下是以路由器分配的所有本地IP做本地网络。
局域网对这里做了一个限定,只有设置了的网段或者单个IP视为本地局域网。
本地IP地址更好理解,其实就是自定义一个本地的IP地址,其他本地设备要连接Emby需要使用使用指定的IP地址,而不是直接用服务器本地。
这里需要说说HTTP和HTTPS端口号,上面也说了默认是8096,这个是HTTP的端口,还有个HTTPS的,因为emby/jellyfin服务器不可能默认使用80端口,可能会和webserver冲突,虽然本地一般用HTTP协议,但是也可以自签证书弄HTTPS的,这些就不多说了。
不过切记如果有远程访问(特别是上面指定了局域网的),一定要把允许远程访问服务器的勾勾打起来。
当然也可以通过设置远程IP地址过滤器过滤器模式选择一些远程IP限制访问,不过这个需要根据实际需要来设置。这里不展开说。
Emby下,还自带一个端口映射的功能,如果你有DDNS或者域名,可以直接输入到外部域,并且指定公网端口号,接着直接使用DDNS或者域名就可以不需要走webserver,就能直接通过浏览器用域名:端口的格式访问到emby服务器。
后面的SSL证书这块就不展开说了,有兴趣可以自己申请证书使用,至于安全连接模式基本上就是和SSL挂钩这里也不展开说。
最后说说串流比特率限制,这个东西就是用来限制全局串流播放的,解释也说得很清楚,可以有效降低CPU的负载,主要是因为解码的原因所以CPU会有负载。可以根据设定一个值去降低硬件的占用。

转码/转换

转码主要用于设定硬件对视频的解码,因为解码是要消耗硬件性能的,所以怎么设定可以让播放更加舒服是很关键的事情,但是这个仅限于使用web端直接播放,如果使用外部播放器,例如Jellyfin官方的播放器(目前测试jellyfin的官方工具同样适用emby),直接使用本地CPU解码,就好很多。毕竟媒体中心,肯定是同时多人使用的,如果都在利用CPU解码,CPU运行就会很吃力。至于怎么设置,需要按照实际来说,这里不展开说了,以为对于转码这块,我也不是特别懂,默认用的自动。
转换的话主要是emby提供的一个下载功能的延伸,这里也不展开说了。

插件

最后聊聊插件吧,Emby和Jellyfin都支持安装插件,不过目前安装插件也只能使用官方提供的插件,但是官方提供的插件也不少,虽然有些不一定能用到。。不过像tmdb刮削器等等这些功能很多都是来自于插件的。这里也没啥很多说的了,有需要可以直接在插件的目录里面寻找需要的插件。不过我个人也没有额外安装什么插件。

一些第三方工具

KODI

kodi+emby这个组合非常常见,kodi有第三方专门做的一个emby皮肤,还有emby的插件,连接emby服务器十分方便,jellyfin也有官方的插件,不过比较麻烦的,emby的皮肤不支持鼠标操作。
下载->KODI下载页
Jellyfin-Kodi插件->Kodi4Jellyfin下载
Emby-Kodi插件->Emby4Kodi下载

Jellyfin官方工具

Jellyfin官方的播放器,很轻量,能直接接入Jellyfin,还能做投放,测试过目前支持直接连接Emby。
支持多系统,不过相关安装方法需要查看下面的连接。包含两个,一个带媒体中心界面,一个shim只带一个播放器,前者和后者的区别是,后者需要在web页面上面通过使用播放到功能,前者是不需要web页面直接操作,这个工具都是使用本地硬件解码,不需要再服务器上解码,很方便。
Jellyfin-Desktop->Jellyfin-Desktop源码库(包含下载)

手机app

Emby和Jellyfin手机端都支持Android和iOS,但是Emby使用手机app是需要会员的,而Jellyfin不需要,目前还没测试Jellyfin的手机app是不是能连接emby,这个以后测试过再做补充吧。其实手机端也可以使用kodi的,这个实测过还不错。
Jellyfin客户端下载页

总结

媒体中心这个当时花了很多时间去建立搭建,配合上了我一直想做的ESXi打造,后来因为某些需求继续研究了一下Jellyfin,其实两个都很好用,毕竟Jellyfin是Emby免费版本的时候独立出来的分支,现在已经是独立版本了。当时两者也有很多问题,例如遇到的Jellyfin对于本地局域网的储存设备检查有问题,Emby的搜索功能对中文也不够友好,这些期待后期能够修复好吧。