Jellyfin Media Player:一款强大的跨平台媒体播放器
项目介绍
Jellyfin Media Player 是一款基于 Jellyfin-web 和嵌入式 MPV 播放器 的桌面客户端,支持 Windows、Mac OS 和 Linux 系统。与传统的 Jellyfin Desktop 不同,Jellyfin Media Player 将媒体播放集成在同一窗口中,使用户体验更加流畅。此外,它还支持音频直通功能,为用户提供更高质量的音频播放体验。
项目技术分析
Jellyfin Media Player 的核心技术包括:
- Jellyfin-web:作为前端界面,提供用户友好的媒体管理界面。
- MPV 播放器:作为嵌入式播放器,支持高质量的视频和音频播放。
- 跨平台支持:通过 CMake 和 Ninja 等构建工具,确保在不同操作系统上的兼容性和一致性。
- 音频直通:支持音频直通技术,提供更高质量的音频输出。
项目及技术应用场景
Jellyfin Media Player 适用于以下场景:
- 家庭媒体中心:用户可以在家庭网络中搭建自己的媒体服务器,并通过 Jellyfin Media Player 在不同设备上流畅播放媒体内容。
- 跨平台媒体播放:无论是在 Windows、Mac 还是 Linux 系统上,用户都可以使用 Jellyfin Media Player 播放本地或远程的媒体文件。
- 开发者测试:对于 Web 开发者,Jellyfin Media Player 提供了详细的 Web 客户端集成文档和 API 文档,方便开发者进行定制和测试。
项目特点
- 跨平台支持:支持 Windows、Mac OS 和 Linux 系统,满足不同用户的需求。
- 集成播放器:使用嵌入式 MPV 播放器,提供高质量的视频和音频播放体验。
- 音频直通:支持音频直通技术,确保音频输出的高质量。
- 开发者友好:提供详细的文档和 API,方便开发者进行定制和扩展。
- 易于构建:通过简单的命令行操作,用户可以轻松构建和安装 Jellyfin Media Player。
下载与安装
- Windows、Mac 和 Linux 版本:GitHub Releases
- Linux Flatpak 版本:Flathub
构建指南
Linux 系统
Ubuntu 系统
-
安装依赖:
sudo apt install build-essential autoconf automake libtool libharfbuzz-dev libfreetype6-dev libfontconfig1-dev libx11-dev libxrandr-dev libvdpau-dev libva-dev mesa-common-dev libegl1-mesa-dev yasm libasound2-dev libpulse-dev libuchardet-dev zlib1g-dev libfribidi-dev git libgnutls28-dev libgl1-mesa-dev libsdl2-dev cmake wget meson nasm ninja-build python3 g++ qtwebengine5-dev qtquickcontrols2-5-dev libqt5x11extras5-dev libcec-dev qml-module-qtquick-controls qml-module-qtwebengine qml-module-qtwebchannel qtbase5-private-dev curl unzip
-
构建命令:
mkdir ~/jmp; cd ~/jmp git clone https://github.com/mpv-player/mpv-build.git cd mpv-build ./use-mpv-release ./update echo -Dlibmpv=true > mpv_options ./rebuild -j`nproc` sudo ./install sudo ln -s /usr/local/lib/x86_64-linux-gnu/libmpv.so /usr/local/lib/x86_64-linux-gnu/libmpv.so.1 sudo ln -sf /usr/local/lib/x86_64-linux-gnu/libmpv.so /usr/local/lib/libmpv.so.2 sudo ldconfig cd ~/jmp/ git clone https://github.com/jellyfin/jellyfin-media-player.git cd jellyfin-media-player mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local/ -G Ninja .. ninja sudo ninja install rm -rf ~/jmp/
Fedora 系统
-
安装依赖:
sudo dnf install autoconf automake libtool freetype-devel libXrandr-devel libvdpau-devel libva-devel mesa-libGL-devel libdrm-devel libX11-devel mesa-libEGL-devel yasm alsa-lib pulseaudio-libs-devel zlib-devel fribidi-devel git gnutls-devel mesa-libGLU-devel SDL2-devel cmake wget python g++ qt-devel libcec-devel qt5-qtbase-devel curl unzip qt5-qtwebchannel-devel qt5-qtwebengine-devel qt5-qtx11extras-devel mpv.x86_64 qwt-qt5-devel.x86_64 qt5-qtbase.x86_64 meson.noarch ninja-build.x86_64 qt5-qtbase-private-devel mpv-libs.x86_64
-
构建命令:
mkdir ~/jmp; cd ~/jmp git clone https://github.com/mpv-player/mpv-build.git cd mpv-build/ echo -Dlibmpv=true > mpv_options echo -Dpipewire=disabled >> mpv_options # hopefully temporary ./rebuild -j`nproc` sudo ./install sudo mkdir /usr/local/lib/x86_64-linux-gnu sudo ln -s /usr/local/lib64/libmpv.so /usr/local/lib/x86_64-linux-gnu/libmpv.so.1 sudo ln -s /usr/local/lib64/libmpv.so /usr/local/lib/x86_64-linux-gnu/libmpv.so sudo ldconfig cd ~/jmp/ git clone https://github.com/jellyfin/jellyfin-media-player.git cd jellyfin-media-player/ mkdir build cd build/ cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local/ .. make -j`nproc` sudo make install
Windows 系统
-
安装依赖:
-
构建命令:
git clone https://github.com/jellyfin/jellyfin-media-player cd jellyfin-media-player mkdir build cd build
在 "x86_x64 Cross Tools Command Prompt for VS 2019" 中运行:
set PATH=%PATH%;C:\Program Files (x86)\WiX Toolset v3.11\bin cmake -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=output -DCMAKE_MAKE_PROGRAM=ninja.exe -DQTROOT=C:/Qt/5.15.2/msvc2019_64 -DMPV_INCLUDE_DIR=mpv/include -DMPV_LIBRARY=mpv/libmpv-2.dll -DCMAKE_INSTALL_PREFIX=output .. lib /def:mpv\mpv.def /out:mpv\mpv.dll.lib /MACHINE:X64 ninja ninja windows_package
MacOS 系统
-
安装依赖:
-
构建命令:
brew install mpv ninja mkdir build cd build cmake -GNinja -DQTROOT=<QT_DIR> -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=output .. ninja install
创建可分发的包:
python3 ./scripts/fix-install-names.py ./build/output/Jellyfin\ Media\ Player.app
结语
Jellyfin Media Player 是一款功能强大且易于使用的跨平台媒体播放器,无论是家庭用户还是开发者,都能从中受益。通过其高质量的音频和视频播放能力,以及详细的文档支持,Jellyfin Media Player 无疑是您媒体播放的最佳选择。立即下载并体验吧!