搭建一个家用的媒体服务器(支持电影、音乐和电子书)
搭建家用的媒体服务器,用来在不同的设备上面方便得看电影,听音乐,甚至阅读电子书。可以选择使用 Plex,Emby, 或者Jellyfin。 Plex 是商业软件,付费版本的功能更强大,免费版本也能用。 Emby 的早先版本是免费版本,后来商业化之后开源版本不再有更新。 Jellyfin 是基于 Emby 的后续社区开源版本,有持续的更新,且支持硬件解码。 对于我来说, Jellyfin 更重要的功
搭建家用的媒体服务器,用来在不同的设备上面方便得看电影,听音乐,甚至阅读电子书。
可以选择使用 Plex, Emby, 或者 Jellyfin。 Plex 是商业软件,付费版本的功能更强大,免费版本也能用。 Emby 的早先版本是免费版本,后来商业化之后开源版本不再有更新。 Jellyfin 是基于 Emby 的后续社区开源版本,有持续的更新,且支持硬件解码。 对于我来说, Jellyfin 更重要的功能是除了电影和音乐的支持,还支持电子书。 支持 PDF,EPUB 格式的电子书。
早先用的 Emby,在部署电子图书馆的时候,发现 Jellyfin 支持电子图书的。 媒体服务器用一个系统,电子图书馆再用一个系统维护起来比较麻烦。 这里有几个应用的功能对比:
Compare Media Servers · Protektor-Desura/Archon Wiki · GitHub
对比几个媒体服务器方案之后, 决定使用 Jellyfin 来搭建家用的媒体服务。 以下是使用 docker 来搭建 Jellyfin 的过程。
安装 jellyfin:
用的这个版本的 Docker 镜像. 你也可以使用 linuxserver/jellyfin,或者 jellyfin/jellyfin 的 docker镜像。
Docker Hub: https://hub.docker.com/r/nyanmisaka/jellyfin
我用的 docker-compose 的方式启动应用。 部署于在家里的 Linux 小主机上。
vim docker-compose.xml
version: "3.5"
services:
jellyfin:
image: nyanmisaka/jellyfin
container_name: jellyfin
user: nobody
network_mode: "host"
volumes:
- //data/docker-app/jellyfin/config:/config
- //data/docker-app/jellyfin/cache:/cache
- /data/baidu:/media
- /data/books:/books
- /data/movie:/movie
- /data/music:/music
restart: "unless-stopped"
# Optional - alternative address used for autodiscovery
environment:
- JELLYFIN_PublishedServerUrl=http://example.com
启动应用: docker-compose up -d
Linux 服务器的地址是 192.168.1.19
之后通过 http://192.168.1.19:8090 来访问 Jellyfin, 第一次访问的时候,设置一个用户名和密码即可。 导入电影,音乐之后界面如下:
如果你在运行 docker-compose 的时候下载不下来 docker 镜像,可以先 docker pull 下载下来镜像。 如果 pull 不下来, 多半是因为网络的缘由,需要设置代理服务器。 如何设置代理服务器,参考我另外的文章设置 Docker 服务器。
以下几个需要注意的地方
搭建之后,就可以在笔记本上,手机上,或者小米投影仪上看电影了。 也可以导入电子图书,通过浏览器阅读图书。
单个电影库处理:
在添加电影目录到 资料库的时候,可以选择不下载 Metadata, 不从 MovieDB 获取数据。
对于已经添加的资料库, 可以 Rescan 重新扫描生成 Metadata。 更新电影库的时候, 把 “TheMovieDB“, “The Open Movie Database” 禁掉,保留 “embedded Image Extractor”,“Screen Grabber” 的选项, 使得可以自动从电影的内容里面提取图片。
对所有电影库默认不从 MovieDB, Open Movie Database 下载 Metadata:
查遍了 Google ,没有发现可以禁用这两个库的方法。 试着改代码,因为网络的原因构建及其麻烦。 最终查代码和配置文件, 发现 config/system.xml 里面有配置 MetadataFetchers, ImageFetchers。
如果希望所有的电影库,默认都不选择 “TheMovieDB“, “The Open Movie Database” 的选项。 则可以更新 config/config/system.xml 的内容,在 Movie 的 MetadataOptions 里面禁用掉这两个数据库,把这两个库添加到 DisabledMetadataFetchers, DisabledImageFetchers 里面。 如下:
<MetadataOptions>
<ItemType>Movie</ItemType>
<DisabledMetadataSavers />
<LocalMetadataReaderOrder />
<DisabledMetadataFetchers>
<string>The Open Movie Database</string>
<string>TheMovieDb</string>
</DisabledMetadataFetchers>
<MetadataFetcherOrder />
<DisabledImageFetchers>
<string>The Open Movie Database</string>
<string>TheMovieDb</string>
</DisabledImageFetchers>
<ImageFetcherOrder />
</MetadataOptions>
<MetadataOptions>
设置之后, 添加新的电影库时,页面如下:
Jellyfin 比较傻的地方是没有全局的设置,可以在 UI 上禁用 TheMovieDb 和 The Open Movie Database,而且默认在匹配的时候还会匹配错内容。所以通过在添加库时,禁用掉这两个选项。或者更改 config/config/system.xml 来默认禁用掉这两个选项。
另外,我出门在外的时候,也可以访问家里的服务器。这个是通过把家里的机器,跟云端的一台Linux 服务器通过 Open VPN 连接起来实现的。 就是说在云端 Linux 服务器上安装 Open VPN 的 Server,然后家里的 媒体服务器(Linux)上安装 Open VPN,配置客户端。 然后在我的 Mac 笔记本上也安装 Open VPN,用的 Tunnelblick ,这样家用的 媒体服务器、云端 Linux 服务器、Mac 笔记本组成一个网络,实现了从公网到家里内网的互联互通。
更多推荐
所有评论(0)