jellyfin
自由软件媒体系统
jellyfin是一种免费的软件媒体系统,可让您控制管理和流媒体。它是专有EMBY和PLEX的替代方法,可以通过多个应用程序向最终用户设备提供媒体。 jellyfin从Emby的3.5.2版本中降下,并移植到.NET核心框架以实现完整的跨平台支持。没有附带条件,没有高级许可证或功能,也没有隐藏的议程:只是一个想要更好的东西并共同努力实现它的团队。我们欢迎有兴趣加入我们的任何人的人!
有关更多详细信息,请参阅我们的文档页面。要获得最新的更新,请获得有关jellyfin的帮助,并加入社区,请访问我们的沟通渠道之一。有关该项目的更多信息,请参阅我们的有关页面。
想开始吗?
查看我们的下载页面或安装指南,然后查看我们的快速启动指南。您也可以从源头构建。
有效的事情不正确吗?
在Github上打开一个问题。
想贡献吗?
查看我们的贡献自己的选择冒险,以查看您可以在哪里提供帮助,然后查看我们的贡献指南和社区标准。
新想法还是改进?
查看我们的功能请求中心。
没有看到jellyfin的语言吗?
查看我们的魏布拉特实例,以帮助翻译jellyfin及其子项目。
jellyfin服务器
该存储库包含jellyfin的后端服务器的代码。请注意,这只是Github上jellyfin Github组织下的许多项目之一。如果您想做出贡献,则可以从检查我们的文档以查看该工作的工作。
服务器开发
这些说明将帮助您使用本地开发环境进行设置,以便为此存储库做出贡献。在开始之前,请确保完全阅读我们有关开发贡献的准则。请注意,除FreeBSD外,所有主要操作系统都支持该项目,这仍然是不兼容的。
先决条件
在构建项目之前,您必须在系统上首先安装.NET 9.0 SDK。
此处包括从命令行运行此项目的说明,但是如果要在服务器运行时调试服务器,则需要安装IDE。任何支持.NET 6开发的IDE都将起作用,但是两个选项是Visual Studio(至少2022年)和Visual Studio代码的最新版本。
还需要安装FFMPEG。
克隆存储库
安装依赖关系后,您需要克隆此存储库的本地副本。如果您只想从源运行服务器,则可以直接克隆此存储库,但是如果您打算为项目贡献代码更改,则应设置自己的存储库。以下示例显示了如何直接通过HTTPS克隆存储库。
git clone https://**github*.com/jellyfin/ jellyfin .git
安装Web客户端
该服务器已配置为托管Web客户端所需的静态文件,除了默认使用后端。在运行服务器之前,您将需要获取Web客户端的副本,因为它们未直接包含在此存储库中。
请注意,还可以通过一些其他配置与Web服务器分开托管Web客户端,在这种情况下,您可以跳过此步骤。
有三个选项可以获取Web客户端的文件。
- 从Azure Devops管道下载完成的构建之一。您可以通过查看管道页面的“分支”选项卡,下载特定版本的构建。
- 按照jellyfin -web存储库上的说明从源构建它们
- 从服务器的现有安装中获取预构建的文件。例如,使用Windows Server安装客户端文件位于
C:\\Program Files\\ jellyfin \\Server\\ jellyfin -web
运行服务器
以下说明将帮助您通过命令行或首选IDE启动和运行项目。
与Visual Studio一起运行
要使用Visual Studio运行项目,您可以打开解决方案( .sln )文件,然后按F5运行服务器。
使用Visual Studio代码运行
要使用Visual Studio代码运行该项目,您首先需要使用Open Folder...选项使用Visual Studio代码打开存储库目录。
其次,您需要为工作区安装推荐的扩展名。请注意,扩展建议被归类为“工作区建议”或“其他建议”,但仅需要“工作空间建议”。
安装所需的扩展程序后,您可以通过按F5来运行服务器。
从命令行运行
要从命令行运行服务器,您可以使用dotnet run命令。下面的示例显示了如何将存储库克隆到名为jellyfin (默认目录名称)的目录中,并且应在所有操作系统上使用。
jellyfin # Move into the repository directory
dotnet run –project jellyfin .Server –webdir /absolute/path/to/ jellyfin -web/dist # Run the server startup project\”>
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/net9.0 # Change into the build output directory
- 执行构建输出。在Linux,Mac等上使用
./ jellyfin和Windows上使用jellyfin .exe。
访问托管的Web客户端
如果将服务器配置为托管Web客户端并且服务器正在运行,则可以在http://*loc*a*lhost:8096默认情况下访问Web客户端。
可以在http://*loc*a*lhost:8096/api-docs/swagger/index.html上查看API文档
从github代码空间运行
由于jellyfin将在GitHub托管服务器上的容器上运行,因此JF需要以不同的方式处理某些东西。
注意:根据所选的配置(如果只单击“创建codespace”,它将创建一个默认配置),可能需要20-30秒即可加载所有扩展名并在VS代码已经打开时准备环境。只要给它一些时间,然后等到您看到Downloading .NET version(s) 7.0.15~x64 ...... Done!在“输出”选项卡中。
注意:如果要从外部访问JF实例,例如在另一台PC上使用WebClient访问JF实例,请记住将“ ports”设置为“较低VS代码”窗口中的“端口”。
注意:首先使用任何WebUI打开服务器实例时,您将被发送到登录而不是设置页面。刷新登录页面一次,您应该将其重定向到设置。
您有两种配置供您选择。
默认 – 开发jellyfin服务器
这会创建一个容器,可以运行和调试jellyfin Media Server,但没有设置其他任何内容。每次创建一个新容器时,都必须再次通过整个设置运行。也没有预先加载的FFMPEG,WebClient或媒体。使用.NET Launch (nowebclient)启动配置来启动服务器。
请记住,由于没有Web客户端,因此必须通过外部客户端连接到它。这可能只是运行WebUI的另一个CodeSpace容器。 VUEJS不支持该设置步骤,因为它不起作用。
开发jellyfin服务器ffmpeg
this extends the default server with a default installation of ffmpeg6 though the means described here: https://jellyfin*.**org/docs/general/installation/linux#repository-manual If you want to install a specific ffmpeg version, follow the comments embedded in the .devcontainer/Dev - Server Ffmpeg/install.ffmpeg.sh file.
使用ghcs .NET Launch (nowebclient, ffmpeg)启动配置,以启用jellyfin -FFMPEG运行。
运行测试
该存储库还包括用于验证功能作为Azure的CI管道的一部分的单元测试。有几种运行这些测试的方法。
- 使用
dotnet test从命令行运行测试 - 使用测试资源管理器在Visual Studio中运行测试
- 使用关联的Codelens注释在Visual Studio代码中运行单个测试
高级配置
以下各节描述了一些更高级的方案,用于从上面的标准指令构建的源运行服务器。
单独托管Web客户端
作为后端服务器的一部分,不必托管前端Web客户端。单独托管这两个组件可能对希望将客户端托管在单独的WebPack开发服务器中以进行更严格的开发环路的前端开发人员很有用。有关如何执行此操作的说明,请参见jellyfin -Web回购。
要指示服务器不要托管Web内容,必须设置一个nowebclient配置标志。可以使用命令行开关--nowebclient或环境变量jellyfin _NOWEBCONTENT=true来指定这一点。
由于这是一个常见的情况,因此还为Visual Studio定义了一个单独的启动配置文件,称为jellyfin .Server (nowebcontent) ,可以从主工具栏的“开始调试”下拉列表中选择。
注意:如果网络客户端分别托管,则无法运行设置向导。
该项目得到了支持:
