# jellyfin **Repository Path**: Trick97/jellyfin ## Basic Information - **Project Name**: jellyfin - **Description**: Jellyfin 是一个免费软件媒体系统,让您可以控制媒体的管理和流媒体播放。它是专有 Emby 和 Plex 的替代品,可通过多个应用程序从专用服务器向最终用户设备提供媒体。使用GPL 2.0开源协议。 源地址:https://github.com/jellyfin/jellyfin - **Primary Language**: C# - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-07 - **Last Updated**: 2024-11-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: Jellyfin, 流媒体, 播放器 ## README

Jellyfin

自由软件媒体系统

---

Logo Banner

GPL 2.0 License Current Release Translation Status Docker Pull Count
Donate Submit Feature Requests Chat on Matrix Release RSS Feed Master Commits RSS Feed

--- Jellyfin 是一个自由软件媒体系统,让你能够掌控管理和流式传输你的媒体内容。它是一个替代专有的 Emby 和 Plex 的方案,通过多个应用程序从专用服务器向最终用户设备提供媒体内容。Jellyfin 源自 Emby 3.5.2 版本,并移植到 .NET Core 框架,从而实现了完整的跨平台支持。没有附加条款,没有高级许可或功能,也没有隐秘议程:只有一个致力于构建更好产品并一起努力实现这一目标的团队。我们欢迎任何有兴趣加入我们、共同努力的人! 如需更多详情,请查看 [我们的文档页面](https://jellyfin.org/docs/)。要接收最新更新、获取 Jellyfin 帮助或加入社区,请访问 [我们的通讯渠道之一](https://jellyfin.org/docs/general/getting-help)。欲了解更多项目相关信息,请访问我们的 [关于页面](https://jellyfin.org/docs/general/about)。 想要开始使用?
查看我们的 下载页面安装指南,然后查看我们的 快速入门指南。你也可以 从源代码构建
遇到问题?
在 GitHub 上打开一个 问题
想要贡献?
查看我们的 贡献指南,了解你可以在哪些方面提供帮助,然后查看我们的 贡献指南社区标准
有新想法或改进建议?
查看我们的 功能请求中心
没有看到 Jellyfin 的语言版本?
访问我们的 Weblate 实例,帮助翻译 Jellyfin 及其子项目。
详细翻译状态 # Jellyfin - 开源家庭媒体服务器 Jellyfin 是一个完全开源的媒体服务器平台,允许用户在不同设备之间共享、流式传输和管理个人媒体内容。它支持多种操作系统,拥有丰富的插件支持,提供完全的用户定制体验。 ## 特色功能 ### 完全开源 Jellyfin 是一个完全开源的项目,所有功能对用户完全开放,没有任何隐藏功能或付费墙。用户可以自由使用、修改和分发代码。 ### 插件支持 Jellyfin 提供了丰富的插件支持,用户可以通过插件扩展其功能。无论是添加新的媒体源,还是增强用户界面,插件都能为用户带来更多的灵活性。 ### 用户管理 Jellyfin 支持多用户管理,每个用户都可以有自己的配置文件和观看历史,确保每个人都可以获得个性化的体验。 ### 流媒体功能 Jellyfin 允许用户通过网络将媒体内容流式传输到不同的设备上,包括智能电视、手机、平板电脑和计算机,让用户随时随地享受他们的媒体内容。 ### 多媒体支持 支持多种媒体格式,包括视频、音频和图片。用户可以轻松组织和访问自己的媒体库,享受无缝的媒体体验。 ### 跨平台支持 Jellyfin 可以在多种操作系统上运行,包括 Windows、Linux、macOS 和 Docker 容器,用户可以根据自己的需求选择合适的环境来运行 Jellyfin。 ### 活跃的社区 Jellyfin 拥有一个活跃的开源社区,用户可以贡献代码、报告问题和分享使用经验。社区成员为项目的发展做出积极贡献,并提供了多种资源来帮助新手入门。 ## 应用场景 ### 家庭媒体中心 将 Jellyfin 设置为家庭媒体服务器,集中存储和管理家庭的所有电影、音乐和图片。通过家庭网络在不同设备上流式传输内容,如智能电视、平板电脑和智能手机。 ### 个人媒体库管理 对于拥有大量媒体文件的个人用户,Jellyfin 可以帮助组织和分类这些文件,提供易于访问的界面。支持多种格式和元数据管理,方便用户查找和播放内容。 ### 个性化媒体项目 技术爱好者可以利用 Jellyfin 的开源特性进行自定义和扩展,打造个性化的媒体管理解决方案。通过插件和 API,开发者可以添加新功能或与其他系统集成。 ### 远程访问流媒体 用户可以在外出时通过互联网访问家中的媒体库,随时随地观看或收听他们的内容。适合经常出差或旅行的用户,确保他们始终可以访问自己的媒体。 ### 多用户或共享环境 支持多个用户配置文件,每个家庭成员或共享用户可以拥有自己的播放列表和观看历史。提供家长控制功能,适合有儿童的家庭。 ### 小型组织媒体分享 小型组织或社区可以使用 Jellyfin 分享媒体资源,如教育视频、活动照片等。提供安全的访问控制,确保只有授权用户可以访问特定内容。 ## 安装与配置 ### 安装 Jellyfin #### 使用 Docker 安装 1. 拉取 Jellyfin Docker 镜像: ```bash docker pull jellyfin/jellyfin ``` 2. 启动 Jellyfin 容器: ```bash docker run -d \ --name jellyfin \ -v /path/to/config:/config \ -v /path/to/media:/media \ -p 8096:8096 \ jellyfin/jellyfin ``` 3. 访问 Jellyfin Web 客户端: 在浏览器中打开`http://localhost:8096` 进行访问。 ## Jellyfin 服务器 本仓库包含 Jellyfin 后端服务器的代码。请注意,这只是 Jellyfin GitHub [组织](https://github.com/jellyfin/) 下的多个项目之一。如果你想贡献代码,可以从查看我们的 [文档](https://jellyfin.org/docs/general/contributing/index.html) 开始,看看可以做哪些贡献。 ## 服务器开发 以下说明将帮助你设置本地开发环境,以便为本仓库做出贡献。在开始之前,请确保完全阅读我们的 [开发贡献指南](https://jellyfin.org/docs/general/contributing/development.html)。请注意,该项目支持所有主流操作系统,除了 FreeBSD,它目前不兼容。 ### 前提条件 在构建项目之前,你必须先在系统上安装 [.NET 8.0 SDK](https://dotnet.microsoft.com/download/dotnet)。 提供的命令行运行说明在此,但如果你希望在运行服务器时进行调试,还需要安装一个集成开发环境(IDE)。任何支持 .NET 6 开发的 IDE 都可以使用,但以下两个选项是常用的:[Visual Studio](https://visualstudio.microsoft.com/downloads/)(至少 2022 版)和 [Visual Studio Code](https://code.visualstudio.com/Download)。 还需要安装 [ffmpeg](https://github.com/jellyfin/jellyfin-ffmpeg)。 ### 克隆仓库 安装完依赖项后,你需要克隆该仓库的本地副本。如果你只是想从源代码运行服务器,可以直接克隆此仓库,但如果你打算为项目贡献代码更改,你应该 [设置自己的 fork](https://jellyfin.org/docs/general/contributing/development.html#set-up-your-copy-of-the-repo)。以下示例展示了如何通过 HTTPS 克隆仓库。 ```bash git clone https://github.com/jellyfin/jellyfin.git ``` ### 安装 Web 客户端 服务器默认配置为托管所需的静态文件,以便与后端一起提供 web 客户端。 在运行服务器之前,你需要获取 web 客户端的副本,因为这些文件并未直接包含在该仓库中。 注意,还可以通过一些附加配置 将 Web 客户端单独托管,在这种情况下你可以跳过此步骤。 1. 有三种方法可以获取 Web 客户端的文件: [Azure DevOps 管道 ](https://dev.azure.com/jellyfin-project/jellyfin/_build?definitionId=27). 下载已完成的构建版本。你可以通过查看管道页面的 [branches 标签](https://dev.azure.com/jellyfin-project/jellyfin/_build?definitionId=27&_a=summary&repositoryFilter=6&view=branches) 来下载特定版本的构建. 2. 根据 [jellyfin-web 仓库](https://github.com/jellyfin/jellyfin-web)上的说明从源代码构建它们。 3. 从现有的服务器安装中获取已构建的文件。例如,在 Windows 服务器安装中,客户端文件位于 `C:\Program Files\Jellyfin\Server\jellyfin-web` ### 运行服务器 以下说明将帮助你通过命令行或你首选的 IDE 启动项目。 #### 使用 Visual Studio 运行 要使用 Visual Studio 运行该项目,你可以打开解决方案 (`.sln`) 文件,然后按 `F5` 启动服务器。 #### 使用 Visual Studio Code 运行 要使用 Visual Studio Code 运行该项目,首先需要使用 `Open Folder...` 选项打开仓库目录。 然后,你需要 [安装推荐的扩展](https://code.visualstudio.com/docs/editor/extension-gallery#_recommended-extensions). 请注意,扩展推荐分为 "工作区推荐" or "其他推荐", 但只有 "工作区推荐" 是必需的. 安装完必要的扩展后,你可以按 `F5` 启动服务器。 #### 从命令行运行 要从命令行运行服务器,可以使用 `dotnet run` 命令。 以下示例展示了如何在将仓库克隆到名为`jellyfin` (默认目录名) 的文件夹中时使用此命令: ```bash cd jellyfin # 移动到存储库目录 dotnet run --project Jellyfin.Server --webdir /absolute/path/to/jellyfin-web/dist # 运行服务器启动项目 ``` 第二种选择是构建项目后直接运行生成的可执行文件。在直接运行可执行文件时,你可以轻松地添加命令行选项。添加 `--help` 标志可以列出所有支持的命令行选项的详细信息。 1. 构建项目 ```bash dotnet build # 构建项目 cd Jellyfin.Server/bin/Debug/net8.0 # 进入构建输出目录 ``` 2. 执行构建输出。在 Linux、Mac 等操作系统上使用 `./jellyfin` 在 Windows 上使用 `jellyfin.exe`. #### 访问托管的 Web 客户端 如果服务器配置为托管 Web 客户端,并且服务器正在运行,默认情况下可以通过 `http://localhost:8096` 访问 Web 客户端。 API 文档可以在 `http://localhost:8096/api-docs/swagger/index.html` 查看。 ### 从 GitHub Codespaces 运行 由于 Jellyfin 会在 GitHub 托管的容器上运行,因此 JF 需要以不同的方式处理一些事情。 **注意:** 根据所选择的配置(如果你只点击了“创建 Codespace”,它将创建一个默认配置),可能需要 20-30 秒的时间来加载所有扩展并准备环境,同时 VS Code 已经打开。 请耐心等待,直到在输出选项卡中看到 `Downloading .NET version(s) 7.0.15~x64 ...... Done!` 在输出选项卡中。 **注意:** 如果你希望从外部访问 JF 实例(例如,通过另一台 PC 上的 Web 客户端),记得在 VS Code 窗口的下部设置“端口(ports)”为公开。 **注意:** 第一次使用任何 WebUI 打开服务器实例时,你将被发送到登录页面,而不是设置页面。刷新登录页面一次,你应该会被重定向到设置页面。 有两种配置供你选择。 #### 默认 - 开发版 Jellyfin 服务器 此配置会创建一个容器,包含运行和调试 Jellyfin 媒体服务器所需的所有内容,但不会设置其他任何内容。每次创建新容器时,必须重新运行整个设置过程。 并且没有预加载 ffmpeg、Web 客户端或媒体。 使用 `.NET Launch (nowebclient)` 启动配置来启动服务器。 > 请记住,由于此配置没有 Web 客户端,你必须通过外部客户端连接到它。这可以是另一个正在运行 WebUI 的 Codespace 容器。Vuejs 不会立即工作,因为它不支持设置步骤。 #### 开发版 Jellyfin 服务器 ffmpeg 这个配置在默认服务器的基础上,扩展了通过以下链接默认安装的 ffmpeg6: https://jellyfin.org/docs/general/installation/linux#repository-manual 如果你想安装特定版本的 ffmpeg,请按照 `.devcontainer/Dev - Server Ffmpeg/install.ffmpeg.sh` 文件中的注释进行操作。 使用 `ghcs .NET Launch (nowebclient, ffmpeg)` 启动配置来运行启用了 jellyfin-ffmpeg 的服务器。 ### 运行测试 此仓库还包括用于验证功能的单元测试,这些测试是 Azure CI 流水线的一部分。有几种方法可以运行这些测试。 1. 使用 `dotnet test` 命令行运行测试 2. 使用 Visual Studio 中的 [运行测试](https://docs.microsoft.com/en-us/visualstudio/test/run-unit-tests-with-test-explorer) 3. 使用 Visual Studio Code 中的关联 [CodeLens 注释](https://github.com/OmniSharp/omnisharp-vscode/wiki/How-to-run-and-debug-unit-tests) 运行单个测试 ### 高级配置 以下部分描述了基于上述标准说明,运行源代码服务器的一些更高级的场景。 #### 单独托管 Web 客户端 不必将前端 Web 客户端作为后端服务器的一部分进行托管。将这两个组件分开托管可能对前端开发者有用,他们希望在一个单独的 webpack 开发服务器上托管客户端,以便实现更紧密的开发循环。有关如何进行设置,请参见 [jellyfin-web](https://github.com/jellyfin/jellyfin-web#getting-started) 仓库。 如果希望指示服务器不要托管 Web 内容,可以设置`nowebclient` 配置标志。 可以通过命令行开关 `--nowebclient` 或环境变量 `JELLYFIN_NOWEBCONTENT=true` 来指定。 由于这是一个常见的场景,Visual Studio 中还定义了一个单独的启动配置 `Jellyfin.Server (nowebcontent)` 可以从主工具栏的“Start Debugging(开始调试)”下拉菜单中选择。 **注意:** 如果 Web 客户端是单独托管的,则无法运行设置向导。 ---

此项目得到以下支持:

DigitalOcean   JetBrains logo