前言
关于emby的文章我写得比较少,主要原因是实在不觉得有啥值得写的,没啥技术含量,并且网上的入门教程一大堆。
不过因为我昨天刚完成了这次购买硬盘之后的数据大迁移的收尾工作,已经有心情来优化演示站点媒体库中海报墙加载慢的问题了(以前一些资源因为空间不够还放在了不同的黑群晖上,平时都没开机,而现在,除了欧美电影之外的资源,都集中到我的QNAP NAS TS453Bmini上并且24小时开机了,也才有了优化的余地)。
只写优化的内容篇幅太少,还需要凑凑字数,所以就趁着这次机会把我使用emby过程中的觉得有用的所谓"进阶"功能小小总结一下,肯定不完全,以后想到新的功能再慢慢添加吧。
提高海报墙图片加载速度
我在搭建emby体验服务器的时候,为了方便,将我的emby server直接装在了win11的虚拟机上,然后将影视资源所在的NAS共享文件夹全映射成了win11虚拟机上的网络磁盘,并以这些网络磁盘为路径添加媒体库:
虽然emby体验服务器到是可以用,但是却经常遇到打开某个媒体库的时候要等上10多秒乃至更长的时间封面图才会出来。。。这是因为我NAS上的硬盘没人访问的时候会处于休眠状态,而平时每个影视资源的封面图都是直接放在每个影视资源的文件夹下:
所以打开媒体库需要读取影视资源的封面图时,需要先唤醒NAS上影视资源所在的、已经休眠的硬盘,这一下子10多秒就过去了~~~。
导致这个问题的原因在于我在emby的媒体库中勾选了以下这个选项:
所以如果emby server和媒体资源不在同一个设备上,而是通过网络挂载的方式访问时(包括把各种网盘直接挂载到emby),并且也有和我类似的海报封面图加载慢的情况,选项建议如下选择:
如果以前勾选了"将媒体图像保存到媒体文件夹中"这个选项然后又取消的,需要在"刷新媒体元数据"中勾选"替换现有图像"并刷新才能生效:
可以在Emby-Server\programdata\metadata\library
路径下去查看刷新效果,比如我的emby体验服务器是安装在win11的虚拟机上,则安装路径如下:
C:\Users\username\AppData\Roaming\Emby-Server\programdata\metadata\library
:
刷新的时候就可以看到这个目录下的被修改的文件夹,点进任何一个文件夹可以看到正在刷新的图片(演员头像、封面图等图片)
注:如果资源多,花费的时间会很长,请做好心理准备~。
解决emby中tmdb插件的刮削问题
tmdb插件不能正常刮削的原因
其实,emby上的tmdb插件刮削识别率是非常高的,不管是电影、卡通或者剧集,我的识别率都在99%以上,基本都不需要人工干预:
但是嘛,由于众所周知的原因,该插件在国内正常网络环境下无法正常使用,究其原因原因,就是:DNS污染,这是对威胁程度说大不大,说小也不小的国外网站的最常规的处置方式,具体方法就是在国内所有DNS上对该域名提供错误的解析结果,但是由于威胁程度不大,所以暂时并未进行其他更极端的处置方式(例如:目标IP阻断、SNI阻断等),也就是说,只要解决了DNS污染,获取了tmdb正确的IP地址,然后在emby服务器所在的主机上进行一些小操作,就能正常通信了。
其实使用TMM也还是需要解决这个问题,只不过TMM除了刮削还有其他的功能,例如改名、移动位置之类,所以如果不需要改名或者移动文件位置的朋友,只要解决了DNS污染的问题,就可以正常使用tmdb插件进行刮削了。
tmdb插件使用的域名
要tmdb插件能正常工作,有两个域名需要得到正确的解析结果:
1、api.themoviedb.org
该域名是使用tmdb插件刮削影视资源元数据的时候需要用到的,如果媒体库类型是"电影",则需要确认媒体库中"电影 元数据下载器"是选择的"TheMovieDb",如下图:
同理,媒体库类型是"电视节目",则需要确认"电视节目 元数据下载器"是选择的"TheMovieDb"。
2、image.tmdb.org
该域名是使用tmdb插件获取影视资源封面图、横幅等图片相关数据时需要用到的,如果媒体库类型是"电影",则需要确认媒体库中"电影的图像获取器"是选择的"TheMovieDb",如下图:
同理,媒体库类型是"电视节目",则需要确认"电视节目的图像获取器"是选择的"TheMovieDb",和"电影"不同的是,电视节目类型还有"季的图像获取器"和"集的图像获取器",选择方式都是一样的。
注1:其实"图像获取器"未必要选择"TheMovieDB","FanArt"也是可以的,并且"FanArt"对应的域名"fanart.tv"目前貌似没有被DNS污染,还可以直接访问,并且图片质量和干净程度要比tmdb好。
注2:如果使用其他类似插件,也是一样的原理,如果不能正常工作,就尝试从插件需要访问的域名是否能正常解析访问方面入手排查。
没有科学或者魔法环境
这个应该是绝大部分国内使用emby的朋友所处的场景了,这种情况下,需要通过下面2步操作来解决问题。
1、获取相关域名正确的解析结果
因为国内的DNS都不可信,所以想要获取上面2个域名的正确解析结果,需要"不依赖科学或者魔法"就能使用的方法,一般是通过目前能正常访问的、国外的查询域名的网站来解决,我下面就介绍2个当前能够正常使用的查询网址(能用多久不包,这个我也说了不算~)。
注:现在的站点基本都使用了CDN技术,只不过可能是采用的不同厂家的CDN(CloudFlare、Amazon等),使用CDN之后(采用了IP anycast),由于就近访问原则,所以从不同的地点解析出的IP很可能是不一样的,并且不同的DNS查询网址查询的结果也可能不一样,评价标准是能用就行。
https://dnschecker.org/
根据上图的方式,相关域名解析结果如下:
api.themoviedb.org. 60 IN A 13.226.225.44
api.themoviedb.org. 60 IN A 13.226.225.4
api.themoviedb.org. 60 IN A 13.226.225.73
api.themoviedb.org. 60 IN A 13.226.225.52
image.tmdb.org. 29 IN CNAME tmdb-image-prod.b-cdn.net.
tmdb-image-prod.b-cdn.net. 4 IN A 169.150.249.164
https://www.ipaddress.com/
根据上图的方式,相关域名解析结果如下:
api IN A 52.85.151.18
api IN A 52.85.151.24
api IN A 52.85.151.28
api IN A 52.85.151.48
image IN A 185.93.1.243
其他类似的DNS查询网址或者工具还有不少,大家可以自行研究下。
2、根据自己的环境进行相关域名的解析配置
在emby服务器所在的主机上修改hosts文件
这应该是大部分emby用户采用的方式,根据emby服务器所在主机安装的系统和部署方式的不同(windows、linux、macos、docker等),需要根据不同的安装系统,使用其对应方式修改安装系统的hosts文件,这个网上相关教程很多,我就不多说了。
注:某些设备对hosts文件有保护机制,比如QNAP(威联通),每次重启被修改的hosts文件就会恢复默认值,所以如果是在这种设备上修改hosts文件,每次重启之后要重新修改hosts文件或者使用开机脚本自动修改。
在路由器上进行设置
除了直接修改emby服务器主机的hosts文件,还可以在路由器进行相关设置,以爱快路由器为例,可以使用"DNS反向代理功能":
将需要解析的域名、解析出的IP地址按如下图所示填写,然后保存即可。
同理添加image.tmdb.org,最后添加完成后如下图所示:
注1:
使用此功建议打开爱快的DNS代理服务器和强制客户端DNS代理功能;
DNS缓存模式下,反向代理生效;强制代理模式也生效;
如果仅设置代理模式,没有勾选强制代理的话,要根据用户的DNS来分情况判断是否生效;客户机DNS设置为网关地址时,反向代理生效;客户机DNS设置为正确DNS时,不生效。
注2:
如果是华硕路由器或者openwrt路由器,可以通过修改dnsmasq文件的方式实现一样的功能。
注3:
不排除相关域名解析的IP变动的情况(毕竟这些地址本来就是CDN供应商的IP地址),如果发现tmdb插件刮削不正常,需要重新解析IP地址并重复前面的修改步骤。
注4:
如果某个时候国内对themoviedb的封锁升级(除了污染DNS,还阻断了IP或者SNI),上述方法就会失效,就只能依靠科学或者魔法了。
有科学或者魔法的环境
这种场景就非常灵活了:直接使用国外的DNS服务器、emby服务器所在主机使用代理或者直接使用科学或者魔法等,只要不使用国内被污染过的DNS服务器即可,这里就不多说了。
另外,如果采用了我另一篇文章中提到的部署方式(参见文章:软路由系列 爱快+openwrt最佳部署方案探讨(再见吧,旁路由)),将旁路由变成爱快的另一个wan口(比如wan2)的网关,就可以使用爱快的域名分流的方式更加简单的实现:
导出emby的影视资源数据
有时候,可能大家想要知道自己究竟有哪些电影(或者剧集),以及每部电影的关键信息(比如名字、添加日期、release日期、类型、分级、评分、时长、重编码类型、存放的具体路径等信息),如果能将这些信息导出到一个文件中,就可以在需要的时候不用登录emby,而是直接在本地文件中查询到这些信息了,这就要依靠"Reports"这个插件了。
先确保已安装了该插件,然后点击右下方选项:
也可以直接从控制台高级里进入:
进入后可以看到如下界面,我以选择Movies类型为例:
这里面看到的内容都是可以导出的,具体导出哪些列的内容可以在右边进行选择,默认勾选所有列,导出文件格式支持excel和csv,我以导出Excel(xls)文件为例:
得到一个xls文件,打开后可以看到如下内容:
除了电影的常用信息之外,最右边的Path还包含了电影对应的具体存放路径,可以在需要的时候帮助大家快速定位电影的位置。
海报墙封面图片增强
默认的emby媒体库海报墙的效果类似于这样:
这种最大的问题是不能一目了然的知道电影的分辨率,更麻烦的是,如果同一部电影有多个分辨率的版本(比如又有1080p,又有2160p)且没有正确处理(如何正确处理在下一节说),就会导致同一部电影、不同分辨率版本在海报墙上以相同的封面同时显示多个,你却无法直观的从海报墙一眼分辨出哪部是1080p,哪部是2160p,只能点进去通过查看媒体信息来区分,这样非常的不方便。
而插件CoverArt解决了这个问题:
安装该插件之后,海报墙变成了这样:
从上方红框中新增的标志(Blu-ray是1080p,4K是2160p)就能一目了然的知道电影的分辨率,非常的方便。
注:CoverArt不用特别设置,默认设置就够了,只要安装后就会自动生成标志,不过以前有些封面图的刮削插件拉取的图片会带"Blu-ray Disc",会导致如果安装了CoverArt,封面图就会有两层标志,如下:
这样就非常难看,所以要使用CoverArt需要封面图刮削器的图片非常干净,所以我前面才会推荐Fanart,遇到这种情况直接重新刮削一次就行了。
同一部电影如何同时保存多个版本
上一节提到,有时候我们可能需要同时保留一部电影的多个版本(这多个版本分辨率有可能相同,有可能不同),例如"我脑海中的橡皮擦"这部电影,有2160p的TC版(影院版,播放时长117分钟),也有1080p的DC版(导演剪辑版,播放时长145分钟),这种情形让我二选一的话,会非常难以抉择,所以作为成年人,才不像小朋友一样做选择题,我选择都要!
不过如果不做特殊处理,不管2部是放在同一个文件夹下,还是分别放在不同的文件夹下,最终在海报墙上肯定是体现为2部相同封面的电影(如果没装上一节介绍的CoverArt,都没法直接分辨出哪部是1080p,哪部是2160p)。
其实,emby对这种情况是有解决办法的,通过特定的命名方式,可以达到如下效果:
这样就能实现海报墙只出现一部电影,但是进去后却能选择不同的版本进行观看。
要实现这种显示效果,需要特定的命名方式,见下图:
注意事项如下:
1、两个视频需要在同一个文件夹下。
2、2个视频的名称都由2个部分组成(绿色框体和红色框体):前面的绿色框体内的部分需要和文件夹的名称保持完全一致;红色部分就是标识不同的版本,由" -version"构成(注意-前面要有个空格),在本例中就是" -1080P.DC"和" -2160P.TC"。
非正片内容
除了正片以外,有时候我们还会下载一些其他非正片的内容、比如:采访、花絮、预告片等,但是如果这些内容直接和正片放在一起,emby会直接识别为一部新的电影,很不好处理,这让我有段时期不得不忍痛放弃这些内容(比如一些写真集花絮,其实还是有意思的)。
不过,其实emby是有相应的解决方案的,只要在对应的电影文件夹下创建特定名字的的文件夹,然后将非正片内容直接放在新建的文件夹下即可(不支持嵌套,一种类型就需要新建一个文件夹)。
文件夹的命名规则如下:
extras
: 额外媒体内容文件specials
: 特别节目或特别版shorts
: 短片scenes
: 场景featurettes
: 特辑behind the scenes
: 幕后花絮deleted scenes
: 删除内容interviews
: 采访trailers
: 预告片
以芙蓉镇为例,包含了花絮,最后实现效果如下:
后话
其实emby的基本操作没啥难度,在我看来,难的反而是如何设计存放影视资源的分布式架构以及平时定期整理和迁移新下载的资源所花费的精力。
不过好在现在硬盘容量越来越大,我忍了3年,单个硬盘的容量从14T增加到了22T,这次一次性买4个22T,虽然让我心痛了好一阵,但是也算让我不用那么频繁的折腾了,这次争取又能忍3年,看看到时候单个硬盘容量能到多少。
现在4个22T硬盘已经使用超过了50%~~:
真是不经用啊。
以前也这么折腾过,后来发现对海报墙没有那么大的执念,现在下载的东西都直接挂在alist上哈哈
我其实对海报墙也没什么执念,主要还是专门搭建的一个emby体验服务器,进入一个媒体库会转圈转半天,这个让进来体验的人肯定感受不好嘛,所以想尽量改善下~~。