给硬盘里的小姐姐安一个家 | 如何打造一个属于自己的多媒体中心

如今,大家越来越习惯于观看在线视频,即便部分流媒体需要每月支付一定的费用才能享受到更加优质的服务,大家也越来越心甘情愿地支付这一部分费用,毕竟国内的大部分视频网站还是对想免费观看的这一部分用户太不友好了。

但是还有这么一群人,他们没办法忍受视频网站的垃圾画质,不愿意接受动辄阉割的剧情,不想在以后的某个时间想回味一部电影,却被视频网站下架了。于是他们买了硬盘,买了 NAS,把他们喜欢的视频都装进自己的硬盘。

但是把硬盘塞满后,如何方便快捷地从一堆文件中找到自己想要的呢,又如何为你的文件做一个美观的可视化界面呢?

文件名很重要

如果要生成上图中这样的海报,需要相应的软件对存储的电影文件进行识别(也叫做刮削,后续统称为刮削),获取到对应的电影或者电视节目的元数据,而刮削的关键就是文件的命名。

首先来看两个命名的对比,大家觉得哪个命名更友好一点呢?

绅士们.The.Gentlemen.2019.BD720P.中英双字.mp4
The Gentlemen 2019 2160p UHD BluRay TrueHD 7.1 HDR x265.mkv

对于大部分的人来说,肯定第一个更友好,因为一眼看过去就知道它是个什么电影,也知道这个文件里有什么字幕。

但是如果要是交给程序去识别呢?它大概率会困惑于这个 BD720P 到底是个什么鬼。

那么到底应该怎么去规范地命名一个电影文件呢?文件名里的内容都是些什么意思?

完整的英文名

一部电影或者电视节目,无论国内外都有属于自己的英文名,但是它的中文名可能千奇百怪。《WALL-E》在不同地区被翻译成了《机器人总动员》、《太空奇兵·威 E》和《瓦力》。刮削工具拿到电影的名字需要去对应的网站(比如豆瓣、IMDB、TMDB)搜索电影的元数据,如果是拿这几个中文名去检索,可能一无所获。

如果把命名成完整英文名,无论是从豆瓣还是其他国外网站都能快速准确地获取到对应的电影元数据。

如果是电视节目,则需要在文件名后加上对应的季数和集数,而一整季的所有文件需要放到同一个文件夹下,文件夹的命名中只需要有对应季数就可以。例如:

Rick.and.Morty.S03.1080p.BluRay.REMUX.AVC.TrueHD.5.1 (文件夹)
Rick.and.Morty.S03E01.1080p.BluRay.REMUX.AVC.TrueHD.5.1.mkv

电影发行时间

很多电影都会有重名的情况,所以仅有完整的英文名还不够,还需要有电影的发行时间。
这个时间一般指的是电影首次公开上映的当地时间,现在很多电影会选择在流媒体首播,所以这里的时间也可以是影视剧在流媒体的首播时间。在文件命名的时候只需要写上对应的年份就可以了。

其实到这里,对于电影或者电视节目的元数据获取来说已经足够了,但是之后的这几个参数还是有必要提及一下。

分辨率

现在常见的分辨率有 720P、1080P 和 4K(2160P),至于那个 BD720P ,大概只有国内会这么叫,所以不建议采用。因为大部分 4K 电影的分辨率只有 3840×2160,这个分辨率被叫做 Ultra High Definition,所以文件命名中会在分辨率 2160P 后面再跟一个 UHD

伴随着 4K 同时出现的又有 HDR 和 杜比世界,所以文件命名中还需要增加一个 HDR 或者 DolbyVision 的标识。有关分辨率以及 4K 的具体介绍,可以参考我的这一篇文章怎样的视频算得上「高清」?这 3 个「率」很重要

视频来源

The Gentlemen 2019 2160p UHD BluRay TrueHD 7.1 HDR x265.mkv

这个文件中的 BluRay 就代表着这个视频的来源,表示它是通过蓝光光碟压制而来。除了 BluRay,DVD 表示文件来自于电影发行的 DVD 光碟,HDTV 的是通过视频采集的方式获取高清频道播放的资源,WEB-DL 则表示文件是从流媒体平台抓取的。稍微注意就会发现很多 Netflix 的资源都会有 WEB-DL 的标识。

而这几种来源代表的是视频质量的高低,相同分辨率下 BluRay 的码率最高,视频清晰度也更好,而 DVD 支持的最高分辨率只有 480P。所以我们通过视频来源这一项就可以知道这个视频文件的质量的高低。

音频编码

常见的音频编码有 DTS-HDMA、Dolby TrueHD、LPCM、DTS、AC3,其中前三种无损音频编码最大可支持到 7.1 声道。无损的音频编码可以大大提高观影的听觉体验,声音更加立体和有层次,但是需要配合对应的功放才能解码。

视频编码

常见的视频编码有 H.264 和 H.265(HEVC),H.265 因为编码效率更高,也常被用在 4K 影片中。文章开头提到的文件名最后的 x265 代表的就是 H.265 编码。

综上,如果文件名中这些信息都具备,那么仅仅通过一个文件名就能获取到很多有用的信息,可以很容易地挑选到适合自己的影片。最重要的是这样规范的命名对刮削器来说也相当友好,可以大大提高刮削的效率和准确度。

选择一款适合自己的多媒体方案

电影都存好了,命名也规范了,但是如何打造属于自己的多媒体中心,这就不得不提到主流的几款媒体服务器。

常见的媒体服务器有 Emby、Plex、Jellyfin,这三家的共同点是他们都有一个服务端和客户端,当视频文件在各种终端设备上播放的时候,解码的工作的可以交给服务端来进行,这样就实现了在任何客户端上(比如手机和电视)都可以播放。

除此之外,他们会把局域网内的文件进行刮削,配上对应的海报、简介以及演职员表,从而可以更方便地浏览文件。

简单地说,通过这三款媒体服务器,你可以打造一个属于自己的 Netflix。

服务端

服务端可以负责视频的解码和影视剧的刮削,这几个媒体服务器的服务端都可以安装在 NAS、Linux、Docker、或者 Windows 上,Plex 支持的平台稍多一些,Jellyfin 对 Nas 的支持性一般,好在它可以通过 Docker 安装。

Emby server 支持平台Emby server 支持平台

客户端

客户端用来读取和播放服务端中的视频。这三大媒体媒体服务器的支持客户端基本上已经包含了几乎所有的电视和手机的设备,你可以随时随地在任何设备上进行观看。

Emby 支持的客户端Emby 支持的客户端

安装

安装的步骤都大同小异,基本上照着操作文档都能很方便地完成。具体的安装步骤和设置内容网上已有很多文章已经分享过了,这里不再赘述。

服务端安装完成后第一件事情是要添加电影和电视节目的目录。需要注意的是,电影和电视节目的文件目录要分开添加到对应的分类里。假如在电影的目录中添加了部分电视节目的文件,则很大可能会刮削失败。

相关配置

安装完成后,可以对媒体库进行一些设置。我比较喜欢将简介和电影名称设置为中文,海报设置为英文,因为英文海报都会比较清爽,中文则会堆砌着一堆毫无意义的文字,对于有强迫症的人来说,这种海报容易引起心理不适。

电影的元数据需要从第三方网站获取,元数据的来源可以选择豆瓣或者 TheMovieDB,因为国内 TMDB 的连接性比较差,所以可以作为豆瓣的备选。

更喜欢哪一版的海报?更喜欢哪一版的海报?

媒体库的设置媒体库的设置

会员需要购买么

Plex 和 Emby 都有对应的高级版,高级版可以开启更多的功能。高级版最主要的的两个用处是客户端的播放以及硬件解码,如果是软解的话,服务端的 CPU 会承受比较大的压力。

但是 Jellyfin 是完全免费的,这两个刚需也完全能够满足。

订阅期限 Plex Emby Jellyfin
每月 $4.99 $4.99 免费
每年 $39.99 $54 免费
终生 $119.99 $119 免费

其他

除了电影和电视节目,这三款媒体服务器还添加音乐、书籍、电视直播等各种类型的多媒体。感兴趣的可以自行探索一番。

我自己的多媒体播放方案

我自己的所有媒体文件都是存放在群晖 NAS 里,目前用的是 Emby,服务端使用的也是群晖提供的套件进行安装。没有开通高级版,因为基本不会使用手机 APP 去观看电影。Plex 也使用过,但是服务端的一些操作对我来说不够友好,页面也比较陈旧和老土。之所以没有使用 Jellyfin 的原因是 Jellyfin 在群晖里只能通过 Docker 安装,但只能添加一个群晖的目录,对于我这种没有组 raid 的用户来说,没有办法将多个目录下所有的的媒体文件都添加到 Jellyfin 的服务端,所以最后还是忍痛选择了 Emby。

《三块广告牌》《三块广告牌》

而在设备端,我一直在用 AppleTV 的 Infuse Pro 6。Infuse 在前段时间刚刚增加了对 Emby 和 Jellyfin 的支持,在此之前它只支持 Plex。通过 Infuse 播放 Emby 的媒体文件无需开通高级版,直接添加对应的 Emby 账户就可以了,视频会展示在 Infuse APP 中,通过 AppleTV 进行解码。

Infuse的电影展示页面Infuse的电影展示页面

设备端除了 AppleTV 外,对这三款媒体服务器支持最好的就是 Kodi 了,只需要安装对应的插件即可进行使用,很多安卓 TV 和电视盒子上都可以通过安装 Kodi 来进行视频播放。

PT 可能会遇到的问题

通过 PT 下载的文件命名足够规范,但是有些文件夹中会带一些海报和 NFO 文件。如果在设置中选择保存 NFO 和海报到本地,会导致原有的从 PT 下载的文件被覆盖导致没办法做种。

在 AppleTV 支持 Emby 之前,我不想让 AppleTV 自己去下载影片的元数据,于是就让 Emby 生成 NFO 文件,然后 AppleTV 就会读取目录中的 NFO 文件来获取对应的影片信息。但是这样就导致刚刚提到的文件覆盖问题。

好在硬链接可以解决这个问题。

硬链接意味着同一个文件的多个入口,在 Linux 系统中,如果 B 文件 是 A 的硬链接,则 B 文件的命名修改不会同步到 A 文件。利用这个原理,我们可以将 PT 下载的文件硬链接到其他目录,然后把硬链接目录添加到 Emby 或者 Jellyfin 的媒体文件中。

但是如果 A 所在的目录 C 有新增文件,C 目录的新增文件也需要同步更新到 B 文件所在目录 D。否则的话 Emby 在硬链接之后就无法拿到 C 目录中最近添加的文件了。

可以通过这个命令解决以上问题:

cp -r -l -u C/* D

然后可以将这个命令加入群晖的任务计划中,定时执行就可以了。

最后

搭建一个多媒体中心其实是一个相当费力的一件事情,你需要购买硬件设备、安装各种软件,还要学习 Linux 命令,但是为了能够尽情的享受一部电影带给我的乐趣,这些折腾也都值得。

也欢迎在留言区中分享你自己的折腾经历。