【开源分享】Emby Direct Web:独立网页播放器,支持 115 直链播放,无需 Emby 服务器转码
建议可以把 GitHub 链接直接提供给 AI,让 AI 帮忙部署、调试和配置适合自己环境的 Emby / 302 地址。
最近一直在折腾 Emby + STRM + 115 网盘直链 这一套。
之前主要关注的是服务端,例如 STRM、302 直链、MediaInfo 预热等。
后来发现,即使服务端已经解决了 302 直链,实际使用 Emby 网页端播放时,还是可能遇到一些问题:
- 部分视频、音频编码在浏览器中无法直接解码
- 某些文件播放时会触发 Emby 服务器转码
- NAS / 小主机性能有限,不希望服务器承担转码压力
- 想要一个独立、简单的网页界面来浏览和播放 Emby 媒体库
所以自己折腾了一个小项目:
Emby Direct Web
GitHub:
https://github.com/ado-uta/emby-direct-web
📌 这个工具是干什么的?
简单来说就是:
给已有的 Emby 媒体库提供一个独立的 Web 播放入口,主要针对 115 原文件直链播放场景。
它不负责生成 STRM,也不替代 Emby 服务端。
Emby 仍然负责媒体库管理,播放器则负责媒体浏览和播放。
大致使用流程:
115 网盘
↓
STRM 媒体库
↓
Emby
↓
302 / 直链服务
↓
Emby Direct Web
↓
本机浏览器播放
核心思路就是:
尽量让视频通过直链在本机播放,避免依赖 Emby 服务器转码。
比较适合:
Emby + STRM + 115 + 302 直链 这类媒体库环境。
✨ 主要特点
- ✅ 独立 Web 播放界面
- ✅ 接入已有 Emby 媒体库
- ✅ 支持配置 Emby / 302 服务地址
- ✅ 支持 Emby 账号登录
- ✅ 主要针对 115 原文件直链播放
- ✅ 不依赖 Emby 服务器转码
- ✅ 支持按照类型、演员、年份筛选
- ✅ 支持顶部播放控制工具栏
- ✅ 支持前后 5 秒跳转
- ✅ 支持默认字幕设置
- ✅ 浏览器本地缓存目录及历史记录
- ✅ 提供 Windows 便携版
- ✅ 普通用户无需安装 Python、Node.js、Docker
- ✅ 提供源码,方便自行修改和调试
目前主要还是根据自己的实际使用需求开发,部分功能还在持续完善。
🚀 快速使用
1、下载项目
GitHub:
https://github.com/ado-uta/emby-direct-web
Windows 便携版下载:
https://github.com/ado-uta/emby-direct-web/releases
例如:
EmbyDirectWeb-Windows-v0.17.zip
下载以后直接解压。
目录主要包含:
EmbyDirectWeb.exe
runtime/
注意:runtime 文件夹不要删除,也不要只复制 exe 文件。
然后直接运行:
EmbyDirectWeb.exe
即可启动本机服务。
普通用户不需要额外安装 Python、Node.js 或 Docker。
2、配置 Emby 服务
首次使用时,根据页面提示填写自己的 Emby 服务连接信息和账号。
例如 Emby 地址:
http://192.168.1.100:8096
如果使用了 302 反代服务,则根据自己实际部署的环境填写相关地址。
这里需要注意:
播放器本身不负责搭建 Emby 或 302 服务。
建议先确认已有的 Emby + STRM + 302 环境能够正常工作,再接入播放器。
🎬 播放方式
这个项目主要想解决的问题是:
让网页播放尽可能使用 115 原文件直链,减少 Emby 服务器转码。
大致流程:
Emby 媒体库
│
▼
Emby Direct Web
│
▼
请求影片播放地址
│
▼
302 / 115 直链服务
│
▼
115 原始视频文件
│
▼
本机浏览器播放
对于服务器性能一般的用户来说,尽可能避免转码还是比较有意义的。
尤其是 NAS、小主机等设备,如果只负责提供媒体信息和播放地址,不承担视频转码,服务器压力通常会小很多。
当然,这里不是说所有视频格式都能百分百直接播放。
最终能否播放,还取决于浏览器、设备解码能力、视频封装、编码格式及直链服务是否正常。
🔍 媒体库筛选
除了基本的媒体浏览和播放,也增加了一些筛选功能:
- 按类型筛选
- 按演员筛选
- 按年份筛选
- 支持组合筛选
例如媒体库里面有很多电影,可以先按照年份、类型筛选,再查找需要播放的影片。
对于媒体数量比较多的用户,不用每次都从全部影片里面慢慢找。
⏩ 播放控制和字幕
播放界面提供顶部工具栏。
目前包括:
- 前进 5 秒
- 后退 5 秒
- 默认字幕设置
- 常用播放操作
这部分主要是为了改善网页播放体验。
不过目前仍属于测试阶段,部分复杂视频文件可能存在兼容性问题。
例如:
- 特殊视频或音频编码无法正常解码
- 部分外挂字幕显示异常
- 特殊封装文件的播放兼容性问题
- 某些视频跳转定位不够精准
如果遇到这些情况,可以提供媒体编码信息和具体表现,方便排查和改进。
💻 Windows 便携版与源码版
项目提供两种使用方式。
Windows 便携版
适合只想直接使用播放器的用户。
下载:
EmbyDirectWeb-Windows-v0.17.zip
解压运行即可,不需要自行配置 Python 或 Node.js 开发环境。
源码版
适合希望修改功能、自行构建和调试的用户。
例如:
EmbyDirectWeb-Source-v0.17.zip
源码包含 Python 本机服务、网页前端、播放器资源、WASM 相关资源和构建脚本等。
如果有不同的 Emby / 302 环境,也可以根据自己的需求进行调整。
具体安装和构建步骤以 GitHub README 为准。
❓几个可能比较关心的问题
需要安装 Docker 吗?
Windows 便携版不需要。
直接下载、解压并运行程序即可。
需要重新搭建 Emby 吗?
不需要。
使用现有的 Emby 媒体库即可。
需要重新生成 STRM 吗?
不需要。
项目本身不生成 STRM,使用你已经配置好的媒体库。
可以代替 302 反代服务吗?
不能。
这个工具主要负责媒体展示和播放,不负责生成 115 直链或部署 302 服务。
需要先有可以正常工作的 Emby / 302 环境。
播放视频会经过 Emby 服务器转码吗?
项目的设计目标是不使用 Emby 服务端转码,而是尽可能通过原始直链进行本机播放。
不过具体播放情况还要看视频编码、浏览器兼容性和实际部署环境。
支持所有视频格式吗?
不能保证。
不同视频编码、音频格式、字幕格式以及设备性能都会影响实际播放效果。
尤其是一些特殊编码和外挂字幕,可能还存在兼容性问题。
会不会修改原来的 Emby 媒体库?
项目主要通过 Emby 接口读取媒体信息和获取播放地址,不以修改原始 STRM 或媒体文件为目的。
支持 Linux 吗?
项目提供源码,可以根据项目依赖和运行环境自行尝试部署。
目前普通用户更建议先使用 Windows 便携版。
🧩 为什么写这个东西?
主要还是因为自己一直在使用:
Emby + STRM + 115 + 302
这一套媒体环境。
服务端已经能够提供直链,但是网页播放器的解码兼容性和服务器转码问题,有时候还是比较影响体验。
尤其是服务器性能有限的情况下,如果可以直接使用原文件直链,把播放处理尽量放在本机,使用起来会更符合自己的需求。
所以就尝试做了这个独立的 Web 播放器。
它并不是用来替代 Emby 的完整客户端生态,也不保证兼容所有视频文件。
主要目的就是:
保留 Emby 的媒体库管理能力,同时提供一个针对 115 原文件直链的独立网页播放入口,尽可能减少服务器转码依赖。
🔗 项目地址
GitHub:
https://github.com/ado-uta/emby-direct-web
Releases 下载:
https://github.com/ado-uta/emby-direct-web/releases
目前主要是自己使用和测试,也在持续完善。
如果大家使用的是不同的 Emby / STRM / 115 / 302 环境,也欢迎反馈实际运行情况、Bug 或改进建议。
有部署问题的,也可以把 GitHub 地址和报错信息提供给 AI,协助分析配置和排查问题。
好贴当赏
Mark一下 日后研究
302中间件?
前排
谢谢分享,鸡腿和赞送上了!
@huohuoma #3因为是走302,就要关闭emby自带转码。 主要是原版emby网页,不支持一些特殊格式的视频。这个是仿emby做了一个网页播放器,登录到emby,取得信息是原来emby的。直接网页当前电脑现转码
好东西,感谢分享