Duke Yin
Duke Yin
2022年4月21日

共性

本文的Emby, Plex 和 Jellyfin 都是特指在服务端运行的媒体管理和推流软件,而不是其客户端。

Emby,Plex 和 Jellyfin的功能非常相似,它们都可以管理你的电影、剧集、音乐等媒体文件,然后通过局域网甚至互联网给外部的用户推流,让用户访问、观看、欣赏。

假如你的电脑或NAS里保存了很多很多电影、剧集,你希望通过网络在你的手机、平板或是其他电脑随时随地观看,那不论你使用Emby,Plex或是Jellyfin,都可以基本满足这一需求。

简单来说,这三个软件都能让你在你的服务器或NAS上搭建一个私人的Bilibili出来(或者说YouTube),还是不受任何限制那种。

价格和付费点

价格方面,Jellyfin是完全免费的,而Emby和Plex有免费版也有收费的高级版,要想体验Emby或Plex的全功能,就要付费。

虽然Emby和Plex都有按月或按年付费的选项,但是实际上最划算的还是终身付费,也就是一次购买后再无后续费用。

费用和付费后才解锁功能如下:

EmbyPlexJellyfin
终身费用$119$119.99免费
付费功能硬件转码
下载、离线播放
计划转码
客户端全功能
提供额外的预告片
硬件转码
下载、离线播放
剧集跳过片头
HDR色调映射
下载离线播放

这其中,对于普通用户来说,最为重要的就是“硬件转码”。

什么是硬件转码

媒体推流过程避不开的过程是“转码”。

我们在观看Bilibili或者其他视频网站的时候,可以根据自身的网速选择“1080p高清” “720p标清”或是“480p糊”这样的不同清晰度。

如果1080p清晰度的视频播放一秒钟需要8Mb的网络流量,那720p可能只需要4Mb,480p只需要2Mb……给网速慢的用户提供较低的分辨率可以有效缓解视频不流畅的问题。

如果原视频是1080p清晰度,那服务器就要通过计算,把视频每一帧的画面都缩小,生成720p、480p的清晰度视频推流给用户,这个计算过程就叫转码。

另外还有一种情况是,原视频的编码不适合流媒体播放。比如你上传的媒体是很老的.vob文件,或者其他无法推流的视频编码文件,服务器就需要先对视频进行转码,把视频转换成适合推流的h264或h265之后再推给各个客户端,又或者客户端不支持高级字幕,比如带颜色或者其他样式的字幕,需要把字幕合成在视频上,然后推流,这些也是转码。

转码工作实际上是大量的图像处理,GPU更适合来做这项工作,有的CPU上有核心显卡芯片(也能算作GPU),也适合来处理转码工作。但是如果Emby、Plex、Jellyfin本身拒绝了使用GPU来处理转码,所有计算工作就会落在CPU的头上,这就是我们通常说的“软解”或“软件转码”。

软解就好比你雇了两个员工,一个艺术专业(GPU)和一个数学专业(CPU),但是你把所有算术的活和画画的活,全都交给数学专业的员工,数学专业的CPU忙得只剩半条命快嗝屁了,艺术专业的GPU却没活干在一边闲得发霉。

单纯依靠CPU,不借助核显进行转码计算,不仅效率低,而且即便是目前较为高级的家用CPU在转码过程中很大可能也会耗尽CPU资源,造成系统卡顿甚至失去响应,更不用说如果多个请求同时发起,多项转码同时进行。而且通常NAS为了节省电能,CPU性能都很弱。

好在如今大部分CPU都带核显 ,即便是NAS(群晖中带+号的都有核显)。一旦开了硬件转码,使用Emby、Plex或Jellyfin推流观影就会更加流畅,服务端的CPU占用也会明显降低,并且可以更好的支持4K视频、HDR视频转码。反之,如果不开启硬件转码,用设备观看影片就会让CPU过载,卡顿,甚至死机。

所以开启硬件转码非常重要。

Emby和Plex看中了硬件转码的重要性,只有付费才能开启。Jellyfin则免费可用,在恰当的设置之后就可以使用硬件转码。

硬件转码的资源占用

虽然开启硬件转码之后可以降低CPU的资源占用,但是实际上Emby Plex 和 Jellyfin在都开启硬件转码后,播放同一部4K HEVC影片所占用的资源也各不相同。

经过试验,CPU方面Jellyfin占用最少,在0.3%左右晃动,Emby占用最多,但也仅仅是1%左右,Plex居中,0.7%左右。

内存方面则反过来,Emby占用内存最少,Plex居中,Jellyfin占用内存最多,约在500MB上下。

综合下来,开启硬解之后,事实上三个程序的硬件资源占用都比较小。

服务端安装复杂程度

Emby、Plex和Jellyfin都提供了多种平台的服务器程序,包括Windows、Linux、MacOS、Docker和NAS的各种架构,由于我个人在群晖NAS上尝试的比较多,故以群晖上的安装为例。

Emby和Plex在群晖系统中都有套件,而且在官方的套件库中就有,直接点击安装即可,非常容易安装。

Plex目前对新版群晖系统DSM7.X系列支持还只是Beta,算是比较落后。并且,经过试验在Windows Server下如果安装Plex,默认是会缺dll文件,需要一堆查阅才能安装成功。

而Jellyfin就比较麻烦,在群晖中并无官方套件,只能借助Docker进行安装,实际上Docker对于一般用户来说,是非常繁琐的,你要踩各种各样的坑,解决各种各样的奇葩问题,才能勉强将Jellyfin安装好。

在安装的复杂程度上,Jellyfin最复杂,Plex和Emby比较简单。

刮削

刮削就是根据你传上去的媒体文件名,自动填补媒体的海报、导演、演员、演唱者、简介、年份等等元信息,自动刮削越准确、越快,则判断刮削效果越好。

Plex采用了自己的刮削源,叫“Plex movie&plex TV”,经过试验连接刮削源速度非常快,准确度也很好,只是有一些比较冷门的电影或剧集会出现不认识的情况。

而Emby和Jellyfin则都采用 TheMovieDB和Open Movei Database作为默认的刮削源,准确度是非常好,但是因为源服务器在国外,国内访问非常吃力,所以刮削速度非常慢,如果不手动进行host指定,基本无刮削体验可言。

但是一旦动手设定好了IP,Emby和Jellyfin的刮削速度也很快,与Plex不相上下。

客户端

Emby的手机客户端需要$5解锁内购,否则电影只能看前一分钟……即便服务器是你自己的。当然如果你的服务端购买了高级版,则不需要出这5刀。

Plex手机客户端也是$5解锁,同样购买高级版服务端可以免费。

电视客户端也同理,看服务端是否已经付费,如果不付费的话就要按客户端来出钱。

Jellyfin则各种客户端都免费,但是比起Emby和Plex的客户端稍微差一些,整体界面似乎只是一个WebView,也就是在框架里嵌入了你的Jellyfin网页界面,用是能用,体验比较一般。

字幕及附加功能

Emby、Plex和Jellyfin都提供了自动下载字幕的功能,但是准确度和下载速度都很一般,Emby和Plex的客户端字幕显示比较正常,Jellyfin字幕功能是个大坑。

Jellyfin至今未内置中文编码字体,所以如果你的媒体文件夹或者字幕带中文,是不能正常显示的,要么会显示成方框,要么会显示成乱码。需要在安装后进行一堆骚操作,才能相对正常地使用中文。

隐私

如果不计较费用的话,从各种分析下来,收费的Plex应该是体验最好的,但是有一点让我很错愕,那就是:

你在Plex搭建的媒体库是暴露在Plex网站的,虽然你需要登录你的账号才能看到,但是我们之所以自建服务器,很多时候为的就是“离线”,脱离第三方的监、控。

试想有一天Plex突然声称改政策了,不交钱不让你登你的账号,不让你看你的媒体库,那你存在自己硬盘里的电影,还是不是你的电影?

所以我是比较排斥本地搭建的服务还经常跟娘家藕断丝连来来往往的,这跟 你媳妇结婚了还老把你赚的钱往丈母娘家送 有什么区别?

Emby和Jellyfin就比较好,Emby绑不绑账号由你,Jellyfin里就根本没有网络账号一说,你创建的都是本地账号,只在你服务器里用,除了检查更新之外,根本不会去勾搭Jellyfin娘家。

总结

Emby和Plex的终身费用差不多,都是120刀,交钱之后的大部分体验自然是要优于免费的Jellyfin的。

Jellyfin虽然安装比较麻烦,过程中坑也比较多,但是关键的硬件转码、刮削、播放都没有拉下,如果你稍有动手能力,实际体验依然OK。

Plex原本应该是最优解,但是过程中过分依赖于官网的账号,什么都跟账号绑定,反而给我一种买来也不是自己的“错觉“,所以个人建议如果尝试了Emby还不错的话,可以考虑给Emby充值。

我自己选择的是Jellyfin。

@科技

本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可.