V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
doraemonext
V2EX  ›  分享创造

分享下元旦折腾的流程~ 群晖 + Emby 打造家庭影音中心

  •  
  •   doraemonext ·
    doraemonext · 2023-01-02 23:37:15 +08:00 · 3155 次点击
    这是一个创建于 693 天前的主题,其中的信息可能已经有所发展或是发生改变。

    元旦在家,看着吃灰的 ThinkPad P1 ,开始动了它的坏心思。虽然家里有一个群晖 DS216j ,但也是四五年前的老古董了,电影稍微大一点解码就卡,这台 ThinkPad 性能对于家庭影音来说绰绰有余,杀鸡用牛刀了。

    弄好之后的效果如下(手机、Pad 、电脑、电视风格及体验一致,内网和外网一致):

    然后就可以开始搞了,开搞之前,先把现状和目标捋清楚。

    现状:

    • 有一台白群晖 DS216j ,性能那是相当的低。里面有两块 WD 4T 红盘,没有做 RAID 。一块文件盘,一块视频盘。文件盘通过 Cloud Sync 实时同步着 Dropbox ,所以并不担心盘坏了会怎么样。视频盘没有做备份,但本身也没什么备份的必要,真的 boom 了就随缘~
    • 有一台 ThinkPad P1 Gen2 ,配置 i9-9750H,64GB,512SSD 。因为日常杂七杂八的需求,需要 Windows 系统。内存足够,VMWare 虚拟机随便开。可常年开着当 Server ,耗电几十 W ,很省电了
    • ASUS AC86U 路由器,刷了梅林,弄了科学上网,确保在整个安装过程中不需要操心代理的事情
    • 宽带有公网 IP (没有的话,得搞 ngrok 或者 frp 之类的来做内网穿透了,我之前装宽带的时候让师傅直接改成桥接了,这步就省下了)

    目标:

    • 我们的目标是将视频盘独立出来交给 ThinkPad 来处理。但因为 ThinkPad 偶尔也需要保持移动性,常年插着硬盘不太优雅,所以仍然通过网络挂载原来群晖下的视频盘目录。如果你有更高的性能要求,此处直接将硬盘阵列插到电脑上即可
    • 对于视频盘上的电影、电视剧:
      • 可以在任意的端打开进行观看,包括手机( Android/iOS ),电脑( Mac/Win ),iPad ,电视(小米盒子)
      • 在满足上面需求的同时,界面能好看一点,操作便捷
      • 不区分内网外网,在家里用 WiFi 和在外面用流量要求使用体验一致
      • 在家里可以原始码率观看各类视频,在外面用流量的时候能够自动转码到适当的大小,不能在外面一个电影这个月的流量就没了…… 而且转码过程需要无感快速(原来这个群晖小机器就歇菜了)
      • 能够自动搜索及装载字幕,能够自动搜索封面、剧情信息等
    • 能够同样在任意端可以观看直播节目,包括国内(央视、卫视)及港澳台的各个节目,且在观看的时候不需要在端侧进行翻墙

    其实这个过程中我即折腾了群晖下的 Plex ,也折腾了 Emby ,最后感觉还是 Emby 的体验对我而言更好一些,但整体流程大差不差,客官自行选择~

    接下来是我们会用到的一些工具准备:

    • VMWare Workstation (Win)
    • 花生壳客户端 (Win)
    • tinyMediaManager (Win)
    • ChineseSubFinder (Win/Docker)
    • Emby (群晖)

    安装黑群晖

    安装好 VMWare 之后,在 Github 处下载最新的 arpl 镜像:https://github.com/fbelavenuto/arpl/releases

    在我写这篇文章的时候,最新版是 v1.0-beta9 。下载 arpl-1.0-beta9.vmdk-flat.zip 后,解压,得到两个文件 arpl.vmdk 和 arpl-flat.vmdk 两个文件,这里我将这两个文件放入 D:\Synology 目录下备用。

    之后安装 VMWare 新建虚拟机,系统选 Linux 就行,反正后面只是黑屏使用,不需要 VMWare Tools 。注意这里需要创建一个虚拟磁盘,用于给群晖系统使用,我这里直接虚拟出来了 4T 空间(实际只有 100G 物理空间)给它,类型注意选择 SATA ,不然一会儿 DSM 的安装系统不认。

    创建好之后,没用的设备,如光驱、声卡都删了,然后添加一块硬盘,选择刚才解压出来的 arpl.vmdk 文件(注意 arpl-flat.vmdk 需要和 arpl.vmdk 文件放到同一个目录下)。最后分配一下 CPU 和内存,我这边最后的结果图如下:

    这里需要注意一点是关于网络的选择。一开始我使用桥接网络(期望在同一个路由网段下能够互连互通),但是网络性能较低,吞吐量在 20MB/s ~ 30MB/s ,而磁盘本身并没有性能瓶颈( SSD ),后来查阅资料后说调整到 NAT 模式下可以提升网络吞吐性能,然后我就改成了 NAT 模式。这也就意味着所有的群晖中运行的系统都需要向上穿两层才能到达公网。下文都以 NAT 模式进行安装设置(实测 SSD 下可以到达 150MB/s 的吞吐,如果是机械的话,这个上限已经没有任何瓶颈问题了)。

    设置好 VMWare 虚拟机之后打开,会直接蹦到无可引导的提示。这个时候需要重启虚拟机,然后按 F2 进入 BIOS 设置,调整启动顺序为新加的那个 arpl SATA 盘优先启动才行(这里等待按键时间比较短,考验手速)。

    之后启动等待一会儿之后便会进入到下面的界面:

    上面有一个 IP 地址,可以直接在当前机器打开,如上也就是 http://192.168.24.130:7681,接着按下面的步骤进行操作:

    选择 Choose a model ,出现下图:

    选择 DS918+,会自动退回到顶层菜单,如下:

    选择 Choose a Build Number ,如下:

    选择最新的一个编号即可,我这里是 42962 ,继续回车,又回到了顶层菜单:

    继续选择 Choose a serial number ,如下:

    选择 Generate a random serial number ,又回到了顶层菜单:

    最后选择 Build the loader 回车即可,然后开始了编译的过程(这个时候最好有科学上网,速度较快)。等待编译完成后会继续跳回到顶层菜单:

    这次选择 Boot the loader ,回车之后手工重启 VMWare 的这个虚拟机,GRUB 界面选择 Boot the DSM ,之后即可看到下面的图:

    等待大约 1min ,就可以登录 http://192.168.24.130:5000 进行安装步骤了,如果此时提示你磁盘找不到之类的,回去看看是不是自己的磁盘类型没有选择 SATA 导致的。

    安装好之后,各种套件该安装的安装,然后可以找淘宝买一个黑群晖洗白的 MAC 和 SN (卖家会提供教程,主要是改 arpl 中的 user-config.yml 的启动命令),再注册一个国际区的 Synology 的账号,用于各种需要账户登录的地方( QuickConnect 是不能用的,需要自己进行配置)。

    安装 Emby

    打开 DSM 的套件中心,右上角“设置”中新增,填入 http://packages.synocommunity.com,然后保存。

    刷新后可以搜索到 Emby Server ,进行安装。安装成功后打开,会自动跳转到 :8096 端口,开始 Emby Server 的一些设置项,设置一些用户信息,此处不赘述。

    映射远端磁盘

    上面提到我的这台 ThinkPad 只是准备用来安装黑群晖及全套功能,但并不准备直接插磁盘阵列。还是依赖于网络上的外部存储的,这里直接使用 FileStation 中的 “工具 -> 装载远程文件夹” 来挂载另外的数据盘,在我这里就是另外一台白群晖上面的 4T 的视频盘。效果如下:

    注意这里需要将磁盘设置一下属性,里面权限让 Emby 有权限读取及写入才行,如下:

    Emby 中创建媒体库

    接下来就是让 Emby 来扫描我们视频盘中的内容了,打开 IP:8096 ,右上角设置,左边选择“媒体库”,然后挨个添加,推荐电影和电视剧分开存储,且遵循 Emby 要求的目录格式(可参考 https://support.plex.tv/articles/naming-and-organizing-your-tv-show-files/https://support.plex.tv/articles/naming-and-organizing-your-movie-media-files/ ) 。我这里设置好了之后,效果如下:

    其实如果你的目录下有对应的电影和电视剧,现在已经凑活能看了,但其实现在还缺很多东西:

    • 只能当前电脑访问。还记得一开始我们网络模式设置为 NAT 了吗?我们的实际目标可是要穿透出公网来的,现在的 Emby 还在两层网络下面呢
    • 视频扫描的内容乱七八糟。如果你的视频只是简单命名了一下,那 Emby 自动扫描的结果可能给你乱写,比如 A 的电影安到 B 的头上
    • 字幕只有视频文件自带的内容
    • 电视直播还没搞呢
    • 其他手机端、电脑端、Pad 端、电视端小米盒子,它们还需要连过来

    下面我们一步一步来。

    NAT 端口映射

    因为我们一开始为了性能选择了 NAT ,那么现在就需要一层层向上暴露需要的端口。先梳理下我们需要暴露哪些端口到公网:

    • 8096: Emby Server 地址
    • 5000: 群晖 DSM Server 地址

    首先我们先在 DSM 中的控制面板 -> 网络 -> 网络界面 -> 局域网 1 下面固定一下当前的 IP ,因为这个 IP 是 DHCP 自动分配的,下次又换了,所以我们在这里采用手工编辑的方式固定一下,确保每次重启 VM 保持不变,这样才能做接下来的端口映射。如下,这里我固定了 192.168.24.128 ,后面以此进行示例说明:

    接下来打开 Windows 上的 VMWare 提供的“虚拟网络编辑器”,在开始菜单里面搜一下就行。打开后,有下角确认下“更改设置”以管理员身份启动,之后点击 VMNet8 网卡,再点击 “NAT 设置”,进入端口映射编辑界面,如下:

    点击“添加”,像下面这样填写即可:

    之后保存退出,我们就已经将 5000/8096 端口向上提到了 Windows 这台机器上面。但现在如果直接访问 Windows 这台机器的 IP 加对应端口,还是访问不通的,我们需要在防火墙中设置入站规则进行放行。

    开始菜单搜索“Windows Defender 防火墙”,进入后左侧点击“高级设置”,弹出的窗口再选择左侧的“入站规则”,右侧点击“新建规则”进行新增。

    选择“端口”,然后下一步,输入 5000,8096,下一步均采用默认设置,直到完成。此时再次访问 Windows 这台机器的 IP 加对应端口,已经可以成功访问。至此,我们已经将 Emby 和群晖向上提到了家庭里面路由器的这个网段下面了。

    设置 DDNS 及路由器层面端口转发

    如果你的路由器没有公网 IP ,那么此处你需要使用 ngrok 或 frp 配合一台公网 ECS 之类的进行内网穿透来暴露到公网上。此处不赘述,可以找相关教程解决。或者花钱买方案,直接使用花生壳的内网穿透,里面有 NAS 专属场景,但是流量只有 10Mbps 。

    我这边假设你的宽带已经改成了桥接模式,并已经获得了公网 IP 。下载并安装花生壳客户端,这里并不是为了使用它的内网穿透功能,而是用它的 DDNS 功能。因为宽带对应的公网 IP 是一直变化的,重启就更新一个新的,所以需要通过 DDNS 来将这个动态 IP 不停的更新到一个固定 DNS 地址上。

    完成花生壳的注册后,会生成一个对应的壳域名,然后当你登录花生壳本地客户端的时候,就会自动将你当前的公网 IP 更新到这个壳域名上,并保持动态更新,如下:

    现在,已经可以通过上面的壳域名直接请求到路由器这个公网 IP 了。那么接下来就是在路由器层面设置 DMZ 或者端口转发来将 5000/8096 的流量转发到当前这台 Windows 机器上即可。

    虽然 DMZ 很方便,但会让你当前 Windows Server 直接暴露到公网上,不安全。所以还是推荐直接在路由器内部配置指定端口转发,这样会更安全一些。

    这台 Windows 机器的 IP 地址也手动配置一下,这样确保重启不会被 DHCP 重新分配到其他 IP 。然后在路由器配置好对应的端口转发规则,如下:

    上图中的 192.168.50.185 就是我这台 ThinkPad 机器的固定 IP 。

    现在,通过花生壳的壳域名 + 端口 5000 或者 8096 ,你就可以直接在公网访问自己的群晖 DMZ 或者 Emby 了。而且因为 DDNS ,会直接和你自己宽带的公网 IP 直连,此处播放速度完全取决于你的上行带宽,我这里浙江电信,千兆宽带可以达到上行 5MB/s 左右。看视频够够的了。

    注意花生壳客户端配置一下自动启动,这样机器重启后也可以自动维护 DDNS 映射关系。

    电影 /电视剧元信息维护

    现在回到电影、电视剧内容本身。上面提到,Emby 自己扫描实际上很容易驴唇不对马嘴,这里需要使用一个工具 tinyMediaManager 进行自动维护及信息抓取。直接在官网下载最新版本并安装,打开后添加你的视频盘到数据源(本地 or 远端都行,和 Emby 用的是同一个就行)。

    抓取器设置的话,默认的 themoviedb 已经很全了,国内的各种电影电视剧也都有对应的中文描述。如下:

    对于信息错误的视频,右键选择“搜索并抓取所选电影-自动匹配”就可以了,会自动进行更正并回写到对应的目录下。此时只要等 Emby 那边自动刷新就可以了,或者手动去 Emby 设置中媒体库下刷新一下即可。

    对于电视剧之类的,如果名字没有包含 Exx 之类的数字,没有被识别的话,可以手工加上之后,再让 tinyMediaManager 扫描并补全信息。

    到这里,所有 Emby 媒体库中添加的电影的元信息和剧情剧照之类的就都是正确的了。

    中文字幕自动下载

    这里推荐一个工具 ChineseSubFinder (Github),可以直接在群晖中运行,也可以在本地运行。我这里示例直接在本地运行了,毕竟大部分还是一次性的工作。

    下载 Releases 下的 win exe ,然后本地运行,之后就可以打开 http://localhost:19035 了。如下:

    进入配置中心,设置好电影和电视剧目录,然后配置好 Emby Server ( API Token 去 Emby Server 的管理后台下的 API 密钥中生成)。

    在 ChineseSubFinder 的配置中心的“实验室”下,勾选“共享字幕”,如下,这样可以自动去下载字幕到目录下,而不需要我们手工搜索再上传了:

    之后去 “总览” 下面把进程启动,然后去“库”里面扫描并下载字幕就可以了,如下(点击下载选中):

    之后就可以去“下载队列”里面看字幕下载进度了,如果下载成功了,那么 Emby 那边看视频的时候,就已经可以直接选择对应的新的字幕了。

    VMWare 虚拟机自动启动

    毕竟笔记本没有服务器的稳定性,如果中途死机重启,或者安装系统更新重启了什么的,需要能够自动打开对应的 VM ,确保服务可用。

    首先在计算机 -> 属性 -> 高级系统设置 -> 环境变量 -> 系统环境变量 中,新增 VMWare 的安装路径,如下:

    然后随便在某个目录下保存一个 start.bat 脚本,内容如下:

    vmrun -T ws start "D:\Synology\Synology.vmx" nogui
    

    其中 vmx 文件是你的实际虚拟机文件。之后 Win+R ,输入 gpedit.msc 进入组策略编辑器,找到 用户配置 -> Windows 设置 -> 脚本(启动 /关机) -> 启动,然后添加一个脚本,把刚才的路径写上来,如下:

    可以重启一下电脑看看刚才的虚拟机有没有自动启动成功。

    电视直播

    Emby 中,可以使用 M3U 文件来导入直播。我自己 Github 找了很多文件,但苦于维护不佳,最后还是万能的淘宝,买了别人维护好的国内频道,一下子爽多了... 这里大家可以自行淘宝

    对于港澳台,可以使用 Github 上面的 m3u 文件,这块质量还都是不错的~ 我用的这个:https://github.com/imDazui/Tvlist-awesome-m3u-m3u8

    因为家里已经有科学上网环境了,所以在外面直接点开 Emby 客户端看直播,客户端本身就不再另外需要翻墙了,效果目前感觉还是很好的。

    客户端

    Android/iPhone/iPad/Mac/Win 都不用说了,直接下载 Emby 对应的客户端,然后不要用 Easy Connect ,直接跳过,然后填上自己上面的花生壳域名,直接登录即可。

    家里的电视是小米盒子,然后使用了一个 Emby 魔改后的版本: https://embywiki.feverss.cloud/use-on-various-devices/use-on-android-tv/android-tv-shang-shi-yong-guan-fang-ke-hu-duan ,里面的破解版 C ,效果还不错,推荐给大家。

    31 条回复    2023-01-06 22:12:39 +08:00
    FranzKafka95
        1
    FranzKafka95  
       2023-01-02 23:39:03 +08:00 via Android
    不错,先收藏啦
    tony666999
        2
    tony666999  
       2023-01-02 23:41:04 +08:00 via iPhone
    厉害,收藏了!新年快乐!
    bosonx
        3
    bosonx  
       2023-01-03 07:18:16 +08:00 via iPhone
    nastools 或者 movie-bot 很方便
    TabGre
        4
    TabGre  
       2023-01-03 07:24:50 +08:00 via iPhone
    现在都是阿里云盘 webdav 看了
    qa2080639
        5
    qa2080639  
       2023-01-03 07:43:31 +08:00 via Android
    收藏,以后有空折腾下
    molezznet
        6
    molezznet  
       2023-01-03 08:47:02 +08:00
    很详细啊, 我也碰到桥接模式网速不达千兆的问题。
    doraemonext
        7
    doraemonext  
    OP
       2023-01-03 08:47:31 +08:00
    @bosonx 我再折腾折腾这个~
    tysb777
        8
    tysb777  
       2023-01-03 08:58:12 +08:00
    目前黑裙搭建 jellyfin ddns 挺爽
    yyysuo
        9
    yyysuo  
       2023-01-03 09:16:24 +08:00
    emby 的电视直播有的需要转码,转码的缓存文件写入 ssd ,时间久了写入量估计会比较大。
    walkbox
        10
    walkbox  
       2023-01-03 09:22:09 +08:00
    动手能力强,之前我也试着搞过 云里雾里 也没搞会影音服务器
    samersions
        11
    samersions  
       2023-01-03 09:27:36 +08:00
    不错,先收藏一波,等到我的新硬盘到了再到 ESXI 上试试
    LoveMyself546
        12
    LoveMyself546  
       2023-01-03 09:47:58 +08:00   ❤️ 1
    “在 ChineseSubFinder 的配置中心的“实验室”下,勾选“共享字幕”,如下,这样可以自动去下载字幕到目录下,而不需要我们手工搜索再上传了”
    自动下载字幕是根据定时任务来执行的,这个共享字幕的功能是上传本地的字幕给其他用户,同时也可以从其他用户下载字幕,目的是减少对字幕网站的请求。目前最新的版本好像取消了这个共享功能
    CSF 关于共享字幕的说明: https://github.com/ChineseSubFinder/ChineseSubFinder/issues/406
    Tumblr
        13
    Tumblr  
       2023-01-03 09:58:54 +08:00
    不错的贴子,不过我进来是想看看音箱之类的。。。
    wangerka
        14
    wangerka  
       2023-01-03 10:02:30 +08:00   ❤️ 1
    emby 硬解需要会员的吧
    BetterTomorrow
        15
    BetterTomorrow  
       2023-01-03 10:34:27 +08:00
    跟楼主差不多 我寻思来抄个电视直播作业呢 原来是淘宝、、

    电影电视剧我是用各大网盘的 Webdav 做了本地同步 用群辉自带那个同步工具同步文件夹就 ok

    平时找片只需要保存到各大网盘的特定文件夹 同步工具会自动同步下来

    视频的刮削使用了 Emby 自带的刮削器 目前没啥问题

    电视端使用了破解版的 Emby 也没啥问题
    Junichi
        16
    Junichi  
       2023-01-03 11:09:27 +08:00
    我的流程:tg 搜索电影 -> 保存视频到 阿里云盘 -> 群晖 docker aliyundrive-web -> cloud sync 同步 -> video/downloads 文件夹 -> 群晖 docker nastool 识别刮削,硬连接转移 video/(movie 或 tv 文件夹) -> 通知 ChineseSubFinder 下载字幕 -> 通知 jellyfin 有新视频

    唯一手动的就是 第一步。
    zhl
        17
    zhl  
       2023-01-03 11:13:28 +08:00
    为社么必须桥接?
    keventseng
        18
    keventseng  
       2023-01-03 11:19:11 +08:00
    想要翡翠台
    yandong1228
        19
    yandong1228  
       2023-01-03 11:51:51 +08:00
    老哥 武林外传是从哪里下载。。。
    lixiang2017
        20
    lixiang2017  
       2023-01-03 12:10:33 +08:00 via Android
    不错,如果再有个网络拓扑就更好了。
    有个疑问,内外网访问一致,内网也是用域名访问吗?是在路由器上配置 dns 域名解析为内网 ip?
    goodryb
        21
    goodryb  
       2023-01-03 20:01:22 +08:00
    看你这个 win 直接安装 emby server 不就可以了吗,vm 里面再虚拟个群晖没看懂是为什么
    suyuyu
        22
    suyuyu  
       2023-01-03 21:18:00 +08:00
    Emby 多少钱入的
    Pogbag
        23
    Pogbag  
       2023-01-03 22:35:40 +08:00 via iPhone
    Emby 不开会员用不了 iptv 的
    CloundL
        24
    CloundL  
       2023-01-04 11:31:58 +08:00
    收藏学习了
    xuanyuanaosheng
        25
    xuanyuanaosheng  
       2023-01-04 18:04:26 +08:00
    @Junichi 出个教程?
    doraemonext
        26
    doraemonext  
    OP
       2023-01-06 22:07:39 +08:00
    @LoveMyself546 确实,我理解错误了,感谢
    doraemonext
        27
    doraemonext  
    OP
       2023-01-06 22:09:26 +08:00
    @yandong1228 就随便搜的,用的这个 magnet:?xt=urn:btih:A6B10BC3E9936847CD376227794456D06DED54A7
    doraemonext
        28
    doraemonext  
    OP
       2023-01-06 22:10:00 +08:00
    @lixiang2017 我偷懒了... 内网也用解析后的公网 IP 来连接的...
    doraemonext
        29
    doraemonext  
    OP
       2023-01-06 22:10:20 +08:00
    @suyuyu 就原价买的……
    doraemonext
        30
    doraemonext  
    OP
       2023-01-06 22:11:06 +08:00
    @yyysuo 谢谢,我关注下这个问题~
    doraemonext
        31
    doraemonext  
    OP
       2023-01-06 22:12:39 +08:00
    @goodryb 还是需要群晖 Photos 的,而且可玩性强一点,Emby 本身的话,两者一致没啥区别
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1059 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 60ms · UTC 19:17 · PVG 03:17 · LAX 11:17 · JFK 14:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.