Jellyfin Desktop:免费的 Jellyfin 桌面播放器,本地硬解与音频直通,4 步跑通
【免费下载链接】jellyfin-desktopJellyfin Desktop Client项目地址: https://gitcode.com/GitHub_Trending/je/jellyfin-desktop
Jellyfin Desktop(jellyfin-desktop)是一款免费的 Jellyfin 桌面媒体播放器,基于 Qt WebEngine 与 libmpv 构建:界面复用 Jellyfin 网页端的媒体库,播放层交给独立的 libmpv 渲染,支持音频直通与硬件解码,多数格式可不经服务器转码直接播放,覆盖 Windows、macOS 与 Linux。
谁需要它:浏览器不够用的时候
先说两个场景。一是你自建了 Jellyfin 服务器,浏览器里点开一部高码率影片,环绕声音轨卡住、画面掉帧,浏览器自身解码能力有限,只能退回到转码流。二是你的主观影屏在电视或 NAS 配套主机上,浏览器标签页看片时,切个标签、弹个通知就打断观影,电视遥控器更是基本没用。
命中其中一条,就值得试试独立桌面播放器:媒体库浏览仍是熟悉的网页界面,但点击播放后,流被交给本地 libmpv 接管,进度、字幕、音轨切换都在本地窗口里完成。
从零到可用:Windows 最短安装路径
🎬 以 Windows x64 为例,最短路径就四步:
- 获取 Windows x64 安装包(项目 README 列有 x64 安装版,另有便携版),运行向导完成安装,向导图片与图标都内置在 bundle/win/。
- 首次启动进入服务器连接界面,填入 Jellyfin 服务器地址(局域网一般是
http://IP:8096形式)并登录。 - 登录成功直接进入媒体库,随便放一部影片,验证音频与字幕是否正常。
- 有问题就看日志:
%LOCALAPPDATA%\Jellyfin Desktop\profiles\<profile-id>\logs\,配置文件jellyfin-desktop.conf也在同一目录树内。
其他平台只是分发形式不同,配置路径各有差异:
- macOS:提供 Apple Silicon 与 Intel 两种构建(Intel 需 macOS 12+,Apple Silicon 需 14+);配置在
~/Library/Application Support/Jellyfin Desktop/profiles/<profile-id>/。 - Linux:Flatpak(Flathub 的
org.jellyfin.JellyfinDesktop)、AppImage(x86_64)或 DEB 包;配置在~/.local/share/jellyfin-desktop/profiles/<profile-id>/,缓存在~/.cache/jellyfin-desktop/profiles/<profile-id>/,Flatpak 路径前缀改为~/.var/app/org.jellyfin.JellyfinDesktop/。 - 数据按 profile 隔离,每个账号一个
profiles/<profile-id>/子目录,多账号切换互不影响。
想跟进最新代码或定制构建:克隆仓库后初始化子模块,再按 构建脚本目录 走:Windows 先跑setup.bat(下载 Qt、libmpv 等依赖)再build.bat;macOS 对应setup.sh+build.sh;Linux 按 debian/control 的 Build-Depends 装好系统依赖后用 CMake 构建,BUILD_TARGET=RPI这类构建选项定义在 CMakeLists.txt 顶部。
git clone https://gitcode.com/GitHub_Trending/je/jellyfin-desktop git submodule update --init --recursive核心能力拆解
硬件解码与音频直通:高码率内容不转码怎么放
播放完全由 播放器模块 接管:本地渲染、独立音频输出。libmpv 侧把hwdec-codecs设为all,尽量走硬件解码,渲染路径按 GPU 能力自动检测。音频方面,你在音频设置里选择设备类型(basic / SPDIF / HDMI),直通按编码逐个开启(设置键形如passthrough.<codec>),最终经audio-spdif传给 mpv。两个细节要注意:SPDIF 设备声道固定为 2.0;SPDIF 下开启 AC3 直通时,5.1 还可以转码成 AC3 输出。客户端确实解不了的格式,仍会回落到服务器转码。
电视遥控器与手柄:硬件输入支持到哪些设备
Web 界面之外,客户端单独接了一层硬件输入,代码在 输入模块:
- 电视 CEC 遥控器:走 CEC 协议收键,电视与播放器可联动开关机(InputCEC)。
- 红外接收器:Linux 下经 LIRC 接入(InputLIRC)。
- 手柄与键盘:基于 SDL 的通用输入(InputSDL),配 InputMapping 做自定义按键映射,把游戏手柄当遥控器用。
- macOS:经 external 目录下的 HIDRemote 与 letsmove 两个模块接入 Apple Remote 和媒体按键。
MPRIS:在 Linux 桌面上直接控制播放
Linux 上 MPRIS 模块 通过 D-Bus 向桌面注册:桌面环境能显示正在播放的内容与进度,反过来也能控制播放器——播放/暂停、上/下一首、定位、音量、播放速率(0.25×–2.0×)都走同一接口,Plasma 这类桌面体验最完整,看片时不必把窗口切到前台。
mpv.conf:在 profile 目录里直接微调播放参数
不想在界面上逐项找开关时,直接在 profile 目录放一份mpv.conf,mpv 参数即刻生效。主配置文件jellyfin-desktop.conf也在这里,logs/子目录放日志,排障时按图索骥。
排障手册
🔧 每条按「症状 → 可能原因 → 解决办法」三行式给出:
- 症状:首次播放黑屏或画面异常。原因:显卡驱动过旧、硬件加速不兼容、缺 DirectX 组件。解决办法:加
--software-rendering参数启动,绕开显卡渲染;恢复后先更新显卡驱动,仍不行就看 profile 下logs/里的日志。 - 症状:开启音频直通后无声。原因:接收端(功放/电视)不支持对应编码,或声道不匹配(SPDIF 固定 2.0)。解决办法:先确认接收端支持该编码,否则在音频设置里关闭对应
passthrough项,回落到解码输出。 - 症状:多显示器全屏时投错屏幕。原因:显示管理按平台分别实现(
src/display/下 X11、Windows、macOS 各一套),全屏跟随当前会话的主显示器设置。解决办法:检查系统主显示器与分辨率设置后重新进全屏。 - 症状:想调试应用内网页或看 QML 日志。原因:WebEngine 默认不开 devtools,QML 的
console.log()默认不打印。解决办法:加--remote-debugging-port=9222启动后用 chrome://inspect 接入;加--log-level debug可看到 QML 控制台输出(见 dev/README)。
FAQ
和浏览器里看有什么区别?界面同源,Web 客户端由 WebEngine 渲染;差别在播放层——网页版依赖浏览器解码,这款由 libmpv 本地播放,支持的格式更多,还能做音频直通与硬件解码,并接入电视遥控器等硬件输入。
播放一定要服务器转码吗?不一定。能直接解码的格式就地播放,只有客户端解不了的内容才回落到转码;硬解能力好时,带宽消耗也小。
配置、缓存和日志都在哪?按 profile 隔离:Windows 在%LOCALAPPDATA%\Jellyfin Desktop\profiles\<profile-id>\(日志在logs\),Linux 在~/.local/share/jellyfin-desktop/与~/.cache/jellyfin-desktop/,macOS 在~/Library/Application Support/Jellyfin Desktop/与~/Library/Caches/。主配置文件统一叫jellyfin-desktop.conf。
Windows 有免安装版本吗?有。除了 x64 安装版,项目还提供 x64 Portable 便携版,解压即用。
能编译到树莓派吗?可以。CMakeLists.txt 提供BUILD_TARGET=RPI选项,RPI 构建会链接bcm_host,显示管理器也有单独的 rpi 实现(src/display/rpi/)。
如果你家里已有 Jellyfin 服务器,想在客厅或桌面用独立窗口看片,它就是现成的本地播放方案;如果你主要在手机上用,或只是偶尔打开网页翻翻媒体库,那官方网页版就够了。
【免费下载链接】jellyfin-desktopJellyfin Desktop Client项目地址: https://gitcode.com/GitHub_Trending/je/jellyfin-desktop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考