Jellyfin是一个自由软件媒体系统,可让你控制管理和流式传输媒体。它是专有的Emby和Plex的替代方案,通过多个应用程序将媒体从专用服务器提供给最终用户设备。Jellyfin是Emby的3.5.2版本的后代,并移植到.NET Core框架以实现完整的跨平台支持。没有附加条件,没有高级许可证或功能,也没有隐藏的议程:只是一个想要构建更好的东西并共同努力实现它的团队。我们欢迎任何有兴趣加入我们的追求!
有关更多详细信息,请参阅我们的文档页面。要接收最新更新、获取有关 Jellyfin 的帮助并加入社区,请访问我们的沟通渠道之一。有关该项目的更多信息,请参阅我们的关于页面。
想要开始吗?
查看我们的下载页面或安装指南,然后查看我们的快速入门指南。你也可以从源代码构建。
有什么不对劲的地方?
在 GitHub 上打开一个问题。
想贡献吗?
查看我们的贡献选择你自己的冒险,看看你可以在哪些方面提供帮助,然后查看我们的贡献指南和社区标准。
新想法或改进?
查看我们的功能请求中心。
没有看到你的语言中的Jellyfin?
查看我们的 Weblate 实例,以帮助翻译 Jellyfin 及其子项目。
此存储库包含 Jellyfin 后端服务器的代码。请注意,这只是 GitHub 上 Jellyfin GitHub 组织下的众多项目之一。如果你想做出贡献,可以先查看我们的文档,看看要做什么。
这些说明将帮助你设置本地开发环境,以便为此存储库做出贡献。在开始之前,请务必完整阅读我们关于开发贡献的指南。请注意, 除了 FreeBSD 之外的所有主要操作系统都支持这个项目, 它仍然不兼容。
在生成项目之前,必须先在系统上安装 .NET 6.0 SDK。
此处包含从命令行运行此项目的说明,但是如果要在服务器运行时对其进行调试,则还需要安装 IDE。任何支持 .NET 6 开发的 IDE 都可以工作,但有两个选项是最新版本的 Visual Studio(至少 2022 年)和 Visual Studio Code。
还需要安装ffmpeg。
安装依赖项后,你需要克隆此存储库的本地副本。如果你只想从源代码运行服务器,则可以直接克隆此存储库,但是如果你打算向项目贡献代码更改,则应设置自己的存储库分支。以下示例显示如何直接通过 HTTPS 克隆存储库。
git clone https://github.com/jellyfin/jellyfin.git
默认情况下,除了为后端提供服务外,服务器还配置为托管 Web 客户端所需的静态文件。在运行服务器之前,你需要获取 Web 客户端的副本,因为它们不直接包含在此存储库中。
请注意,也可以通过一些其他配置将 Web 客户端与 Web 服务器分开托管,在这种情况下,你可以跳过此步骤。
有三个选项可以获取 Web 客户端的文件。
C:\Program Files\Jellyfin\Server\jellyfin-web
以下说明将帮助你通过命令行或首选 IDE 启动并运行项目。
若要使用 Visual Studio 运行项目,可以打开解决方案 () 文件,然后按 运行服务器。
.sln
F5
要使用Visual Studio Code运行项目,你首先需要使用该选项使用Visual Studio Code打开存储库目录。
Open Folder...
其次,你需要为工作区安装推荐的扩展。请注意,扩展建议分为“工作区建议”或“其他建议”,但只需要“工作区建议”。
安装所需的扩展后,可以通过按 来运行服务器。
F5
要从命令行运行服务器,可以使用该命令。下面的示例显示了如果你已将存储库克隆到名为(默认目录名称)的目录中并且应该适用于所有操作系统,则如何执行此操作。
dotnet run
jellyfin
cd jellyfin # Move into the repository directory
dotnet run --project Jellyfin.Server --webdir /absolute/path/to/jellyfin-web/dist # Run the server startup project
第二个选项是生成项目,然后直接运行生成的可执行文件。直接运行可执行文件时,你可以轻松添加命令行选项。添加标志以列出所有支持的命令行选项的详细信息。
--help
dotnet build # Build the project
cd Jellyfin.Server/bin/Debug/net6.0 # Change into the build output directory
./jellyfin
jellyfin.exe
此存储库还包括单元测试,用于验证作为 Azure 上 CI 管道一部分的功能。有几种方法可以运行这些测试。
dotnet test
以下各节介绍一些基于上述标准说明构建的从源代码运行服务器的更高级方案。
不必将前端 Web 客户端作为后端服务器的一部分进行托管。分别托管这两个组件对于前端开发人员可能很有用,他们希望将客户端托管在单独的 webpack 开发服务器中以实现更紧密的开发循环。有关如何执行此操作的说明,请参阅 jellyfin-web 存储库。
若要指示服务器不托管 Web 内容,必须设置一个配置标志。这可以使用命令行开关或环境变量指定。
nowebclient
--nowebclient
JELLYFIN_NOWEBCONTENT=true
由于这是一种常见方案,因此还为Visual Studio定义了一个名为的单独启动配置文件,可以从主工具栏中的“启动调试”下拉列表中选择该配置文件。
Jellyfin.Server (nowebcontent)
注意:如果单独承载 Web 客户端,则无法运行安装向导。