【姿势】网盘挂载Emby媒体服务器直链播放

现在在配置一般的服务器端搭建Emby会面临两个很现实的问题,一个是服务器(VPS)线路问题,有可能速度会很慢,根本播放不了视频。另一个是硬解码的问题,绝大多数服务器并没有独立的显卡或者核显,Emby被迫使用CPU进行解码,占用大量资源且基本达不到流畅播放的要求。为了应对这两个问题,一个很显而易见的方法就是绕过服务器端,使用者本地直接访问媒体资源的直链(假设你的资源放在网盘上,比如谷歌盘),这样速度就不受你的服务器限制,而取决于本地访问网盘/CDN的速度,并且由于是网盘直出,硬解码在本地通过播放器就可以实现。服务器仅仅作为emby前端的硬件支撑,加载个海报墙和元数据啥的,压力大大减少。

写个文章简单记录一下复现bpking大佬的项目。

准备工作

  • 有一台linux服务器
  • 有使用alist/rclone挂载网盘的能力
  • 有使用cloudflare workers代理alist流量的能力
  • 优选cloudflare IP的能力(墙外用户可选)
  • 有docker的基本使用经验
  • 有emby的基本使用经验

工作原理

使用alist挂载谷歌网盘,并使用rclone挂载alist的webdav,并且在emby中使用挂载的谷歌盘webdav的媒体文件生成海报墙和管理元数据,并且使用cf workers代理alist流量(转换下载链接成直链且不走服务器)。在服务器中使用nginx及其njs模块将emby视频播放地址劫持到alist直链。

操作步骤

  1. 在服务器端配置好rlcone和emby
  2. bpking的配置文件克隆到本地
  3. 在emby2Alist 目录下执行 docker-compose up -d
    • 这将分别开启三个容器:Alist, nginx及其njs模块, ali-webdav
    • 因为我不准备挂载阿里云盘,所以可以停掉ali-webdav
    • 防火墙放行 5244, 8095 和 8096端口
    • 其中emby默认使用8096端口,nginx劫持后直链使用8095端口,5244是alist的端口
    • alist 的初始用户名和密码在docker log里面可以看到
  4. 在alist挂载谷歌网盘,挂载举例为”Data”,其中alist配置好cf worker代理流量,并为alist申请公网域名,这里举例为https://alist-proxy2.xxx.com.
  5. rclone用webdav的方式挂载alist代理的谷歌网盘,可以配置成service这样重启也没关系
    • 确认rclone 挂载正常可以使用这个命令:rclone lsf data
  6. 按需求编辑配置文件:emby2Alist/nginx/conf.d/constant.js
    • 其中emby/alist IP要填VPS公网IP
    • emby/alist 的token在后台都可以分别查到
  7. 重启emby/nginx容器
  8. 如果要反代emby要用8095端口,8096端口还是默认走服务器

emby 配置

  1. 播放-视频-互联网质量 设置为最高
  2. 用户-编辑-播放中以下选项取消
    • 如有必要,在媒体播放期间允许音频转码
    • 如有必要,在媒体播放期间允许视频转码
    • 如有必要,在媒体播放期间允许更改容器格式

测试

通过8095端口访问emby,播放视频,并查看emby-nginx的log:

docker logs -f -n 10 emby-nginx 2>&1  | grep js

看到播放链接被成功劫持到alist代理的链接即为成功!

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇