Jellyfin是一款开源免费的私人影院(影音媒体管理)系统,可以帮我们把硬盘里的影视资源管理起来,并添加精美的海报.
Jellyfin可以记录我们播放的进度,一部电影在A设备播放到10分20秒,到了B设备可以继续10分20秒播放。
Jellyfin有完整的用户管理系统,家庭成员可以拥有独立的账号,播放进度互不影响。
Jellyfin支持客户端播放,也支持网页播放,打开网页就能管理和播放我们收藏的电影和电视剧资源。
Jellyfin可以自由转换格式,自动将mkv等高码率格式资源转换为便于网络传输的格式,供浏览器播放。可以将我们高码率的4K电影转换为720p甚至360p的电影,通过内网穿透传输给身在家庭网络外的家庭成员播放。如果家中的电视盒子性能不足以播放4K原片,Jellyfin可以将资源实时转换为2K或1080P的流媒体,供电视盒子播放。
image.png
image.png
本文是《树莓派不吃灰》系列的第17期,树莓派4B的性能不足以支持Jellyfin对1080P的视频进行实时转码,所以我们会把树莓派作为一个网关使用,让家庭中老旧的电脑运行jellyfin核心服务,而树莓派则将jellyfin服务反向代理到家庭网络和公网。
我家里恰好有一台不常用的MacBook笔记本,本文则以macOS平台为例(Windows平台配置会更简单),将MacBook作为jellyfin运行服务的机器。
Jellyfin Server下载地址:https://jellyfin.org/downloads/server
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
然后我们可以在局域网任意一台设备,通过固定ip加端口访问jellyfin了, 比如刚刚与笔记本固定的IP为192.168.50.74, 那么在局域网任意一台设备通过浏览器访问 192.168.50.74:8096 即可
image.png
如果感觉192.168.50.74 不好记,我们可以用好记的树莓派局域网IP 192.169.50.10:8096代理192.168.50.74:8096 , 这样树莓派就成为了整个家庭网络的网关,树莓派的的frpc也可以将8096端口的jellyfin服务映射到公网
在树莓派(IP: 192.168.50.10)的Nginx内添加配置,将 192.169.50.10:8096 的请求转发到 192.168.50.74:8096
sudo bash -c 'cat > /etc/nginx/conf.d/192.168.50.74-8096.conf' <<-'EOF'
server {
listen 8096;
server_name 192.168.50.10;
location / {
proxy_pass http://192.168.50.74:8096;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
EOF
测试配置文件,重启Nginx
sudo nginx -t
sudo nginx -s reload
然后通过浏览器打开 192.168.50.10:8096
即可
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
这里按照jellyfin的官方文档,用imdb的id命名电影文件及其所在的文件夹
/Users/zhaoolee/jellfin/Movies/12 Angry Men (1957) [imdbid-tt0050083]/12 Angry Men (1957) [imdbid-tt0050083] - 1080p.mp4
从imdb网页网址中获取对应电影的id
jellyfin要依赖符合规范的文件命名,对电影海报进行抓取,形成令人舒适的海报墙,关于文件命名的官方文档:https://jellyfin.org/docs/general/server/media/movies
回到控制台
image.png
image.png
进入媒体库,添加Movies文件夹到媒体库
image.png
image.png
image.png
image.png
image.png
等待扫描
image.png
如果扫描期间,进度迟迟不动,可以刷新页面试试
image.png
如果刷新页面后,扫描进度圆环消失,则可以点击左上角Home图标,回到主页
image.png
海报墙出现
image.png
点击海报墙中的图片,可以看到电影演职人员等详情
image.png
image.png
image.png
image.png
我们在服务端存放的是1080p 或 4K视频,如果我们想要在外网访问,节省流量,就需要播放720p视频,jellyfin在服务端配置ffmpeg后,可以在服务器直接对视频进行转换,但实时视频码率转换对CPU负载很高,在jellyfin服务端配置硬件解码后,就可以降低CPU负载
ffmpeg除了转换码率还能转换格式,比如我们下载了mkv格式的电影,普通的浏览器无法直接播放mkv, ffmpeg就可以实时将其转换为mp4,并以低码率推送给浏览器,这样只需浏览器就能体验ffmpeg私人影视库的观影服务
brew install ffmpeg
which ffmpeg
image.png
image.png
image.png
image.png
image.png
image.png
image.png
这里硬件加速有个Apple VideoToolBox的选项,但转换到360p低码率时有导致无法播放的bug, 所以最后我选择了AMD AMF
配置硬件加速后记得保存
image.png
更多硬件解码配置可以参考官方文档 https://jellyfin.org/docs/general/administration/hardware-acceleration/
image.png
image.png
image.png
image.png
设置完成后,可以在需要节省流量(手机网络)或解码能力弱(老式电视盒子)的设备上播放低码率视频
image.png
以英剧Peaky Blinders 为例,我们需要将tmdb的id添加到电视剧的主文件夹中
image.png
image.png
展示效果
image.png
image.png
树莓派作为家庭网关,已经配置了frpc, 我们只需在frpc.ini添加以下配置,并在云服务器开放8096即可将jellyfin开放到公网
[jellyfin-frp-v2fy-com-8096]
type = tcp
local_ip = 127.0.0.1
local_port = 8096
remote_port = 8096
image.png
目前的中文互联网,我们花钱都看不到的无删减高质量影片,jellyfin可以给我们,而且不需要会员。Jellyfin是免费无广告的,在家中,可以走局域网观看高质量资源,离家,也能继续上次的进度,看到节省流量的影视版本。