← 返回信息流
GitHub 热榜GitHub Trending · 日·13 小时前

Jellium Desktop:非官方 Jellyfin 桌面客户端

原标题:andrewrabert/jellium-desktop
Rust1,208 stars+55 今日

速览

Jellium Desktop 基于 Rust 编写,采用原生跨平台框架,提供流畅的媒体浏览和播放体验。支持 Windows、macOS 和 Linux,集成 Jellyfin 的媒体库、播放器及用户管理功能。适用于希望在本地获得更稳定、响应更快的 Jellyfin 访问体验的用户。

AI 深度解读

这是什么

jellium-desktop 是一个非官方的 Jellyfin 桌面客户端,由 Rust 语言编写,当前在 GitHub 上拥有 1208 颗星。它底层依赖 CEF(Chromium Embedded Framework)渲染 UI,用 mpv 处理媒体播放,因此兼具 Web 前端的灵活性与 mpv 的高性能解码能力。项目提供 AppImage、Flatpak(非 Flathub 包)、Arch Linux AUR 以及 macOS DMG 等多种分发格式,支持 Linux 和 macOS 平台。

解决的问题

Jellyfin 官方提供的桌面客户端方案(如 Jellyfin Media Player 或 Web 浏览器)在部分场景下存在痛点:

  • 官方 Jellyfin Media Player 基于 Qt 和 mpv,但 UI 更新滞后,缺少现代 Web 界面(如 Vue/React)的交互体验,定制化能力有限。
  • 浏览器播放 虽然方便,但受限于浏览器沙箱,无法充分利用本地硬件解码、字幕渲染、音频直通等高级 mpv 特性,且多标签页会消耗额外内存。
  • 跨平台一致性 不足:官方客户端在 Linux 和 macOS 上的打包方式(如 Snap、Flatpak 官方包)可能不够灵活,或缺少对 AUR 等社区渠道的支持。

jellium-desktop 将 CEF 的 Web 渲染能力与 mpv 的本地播放引擎解耦,既保留了 Jellyfin Web 界面的完整功能与更新速度,又能通过 mpv 获得更优的播放控制、视频滤镜、色域映射等专业级特性,同时用 Rust 保证了内存安全和启动性能。

核心功能

  • 完整 Jellyfin 界面:基于 CEF 加载 Jellyfin Web 前端,支持所有媒体库浏览、搜索、用户管理、播放列表等 Web 端功能。
  • mpv 内核播放:视频、音频、字幕播放均由 mpv 处理,支持硬件解码(VAAPI、VDPAU、DXVA2 等)、HDR 动态元数据映射、音频直通(DTS-HD、TrueHD)、ass/ssa 字幕样式等。
  • 跨平台打包
    • Linux:AppImage(便携)、Flatpak(非 Flathub 自建包)、AUR(jellium-desktop-git
    • macOS:DMG 镜像,安装后需执行 sudo xattr -cr 解除隔离
  • 命令行工具链:使用 just 作为命令运行器,提供 buildruntestlintappimageflatpakdmg 等 Recipe,便于开发者快速编译、测试和打包。
  • 依赖管理:内置 outdated 命令列出过期依赖,clean 清理构建产物,保持项目整洁。

亮点 / 与同类相比

| 对比维度 | jellium-desktop | 官方 Jellyfin Media Player | 浏览器方案 | |---------|-------------------|---------------------------|-----------| | UI 渲染 | CEF(Chromium)——支持最新 Web 技术 | Qt(Widgets)——界面更新慢,样式受限 | 原生浏览器——完全依赖 Web | | 播放能力 | mpv 独立进程——完整解码/滤镜链 | 内置 mpv——但受 Qt 集成限制 | 浏览器 MSE/EME——特性有限 | | 语言/构建 | Rust——内存安全、启动快、编译产物小 | C++/Qt——构建复杂,依赖重 | 无 | | 打包灵活性 | AppImage、AUR、Flatpak、DMG | 官方 Snap、Flatpak(Flathub)、Windows 安装包 | 无特殊打包 | | 社区活跃度 | 1208★,持续更新 | 官方维护,但新功能滞后 | 依赖于 Jellyfin Web 更新 |

核心优势:将最先进的 Web 界面(Jellyfin Web 本身迭代极快)与 mpv 的本地播放能力无缝结合,避免了 Electron 的高内存占用(CEF 相较 Electron 更轻量),同时利用 Rust 保证了低资源消耗和高安全性。

适合谁用 / 上手

适合用户

  • 已经使用 Jellyfin 搭建家庭媒体服务器,希望获得比浏览器更好的播放体验(硬件解码、字幕、音频直通)的用户。
  • 对官方 Jellyfin Media Player 的 UI 或打包方式不满意,追求更现代、更灵活的客户端。
  • Linux 爱好者,偏爱 AUR 或 AppImage 等原生分发方式,希望避免 Snap 或 Flathub 的沙箱限制。
  • 开发者:想基于 Rust + CEF + mpv 构建自己的媒体客户端,或为 Jellyfin 生态贡献非官方客户端。

快速上手

  1. 安装(以 macOS 为例):
    • 下载 DMG,拖入 Applications,运行 sudo xattr -cr /Applications/Jellium\ Desktop.app
    • Linux 用户:通过 AUR 安装 jellium-desktop-git,或下载 AppImage 并赋予执行权限
  2. 配置:首次启动输入 Jellyfin 服务器地址、用户名和密码,或通过 Quick Connect 扫码登录。
  3. 使用:界面与 Jellyfin Web 完全一致,但播放器由 mpv 接管,可右键视频区域查看 mpv 控制菜单(如音轨、字幕、缩放、滤镜等)。
  4. 构建/开发(可选):
    • 安装 Rust 和 just
    • 克隆仓库,执行 just build 编译,just run 启动
    • 打包:just appimage(Linux)或 just dmg(macOS)
查看原文 →github.com