开源的媒体服务器jellyfin

Jellyfin 是一个开源的媒体服务器,类似于 Plex 和 Emby,它允许你在本地或通过网络流式传输你的电影、音乐、电视剧等内容。与 Plex 和 Emby 不同的是,Jellyfin 完全免费且开源,没有付费墙或订阅服务。

接下来,我将详细介绍 Jellyfin,包括 Docker 安装、设置、功能和使用方法。

1. Jellyfin 主要功能

  • 本地媒体库管理:支持电影、电视剧、音乐、图片等媒体类型,自动扫描、整理并下载元数据(如封面、简介等)。
  • 多设备支持:支持通过浏览器、电视、手机、平板等设备访问和播放媒体内容。
  • 流媒体播放:支持网络流媒体传输,允许远程访问,类似于 Netflix 风格的用户体验。
  • 用户管理:支持多个用户,提供用户权限和访问控制。
  • 插件支持:提供丰富的插件扩展功能,如字幕下载、元数据获取、直播电视等。
  • 无广告、无订阅:Jellyfin 不会展示广告,也没有功能限制,所有功能都是免费使用的。

2. Jellyfin 安装方法(Docker 安装)

2.1 前提条件

安装 Docker Compose:

sudo apt install docker-compose

Docker 和 Docker Compose:确保你的系统上已经安装了 Docker 和 Docker Compose。
如果还没有安装,可以通过以下命令安装 Docker:

sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker

2.2 Docker 安装 Jellyfin

    • config:用于存储 Jellyfin 的配置文件。
    • cache:用于缓存数据。
    • media:用于存放你的媒体文件,如电影、电视剧等。

启动 Jellyfin
在包含 docker-compose.yml 的目录下,运行以下命令启动 Jellyfin:

docker-compose up -d

Jellyfin 启动后,可以通过浏览器访问 http://服务器IP:8096 进入 Jellyfin 的 Web 界面进行设置。

编写 Docker Compose 文件:创建 docker-compose.yml 文件,并添加以下内容:

version: "3"
services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    volumes:
      - /path/to/jellyfin/config:/config  # Jellyfin 配置文件路径
      - /path/to/jellyfin/cache:/cache    # 缓存路径
      - /path/to/jellyfin/media:/media    # 媒体文件路径
    ports:
      - 8096:8096  # Jellyfin 默认 Web 访问端口
      - 8920:8920  # HTTPS 端口
    restart: unless-stopped

注意:请根据实际情况调整 /path/to/jellyfin/ 为你的本地路径。

创建 Jellyfin 数据和配置目录:在服务器上创建 Jellyfin 用来存放数据和配置文件的文件夹。

mkdir -p /path/to/jellyfin/config /path/to/jellyfin/cache /path/to/jellyfin/media

2.3 Jellyfin Docker 运行参数

  • 端口映射:默认情况下,Jellyfin 使用 8096 端口(HTTP)和 8920 端口(HTTPS)。可以通过修改 docker-compose.yml 来调整这些端口。
  • 存储挂载:将 Jellyfin 的配置文件、缓存、媒体文件路径挂载到 Docker 容器内相应的路径上。
  • 自动重启:通过 restart: unless-stopped 确保 Jellyfin 容器在重启系统或发生错误时自动重启。

3. Jellyfin 设置

  1. 初次访问和基本配置
    • 通过 http://服务器IP:8096 打开 Jellyfin 的 Web 界面。
    • 按照引导设置:创建管理员账号、选择语言和时区等。
  2. 添加媒体库
    • 在 Jellyfin 主界面中,点击“管理面板” -> “媒体库” -> “添加媒体库”。
    • 选择媒体类型(如电影、电视剧、音乐),并选择刚才挂载的媒体文件夹路径 /path/to/jellyfin/media
  3. 设置远程访问
    • 如果你希望通过外网远程访问 Jellyfin,可以在路由器上设置端口转发,将 8096 或 8920 端口映射到外网 IP 上。
    • 另外,你也可以通过反向代理(如 Nginx 或 Traefik)为 Jellyfin 配置 HTTPS 安全访问。

4. Jellyfin 常见操作

4.1 手动扫描媒体库

  • 如果 Jellyfin 没有自动扫描到新添加的媒体文件,可以进入“管理面板” -> “媒体库” -> “手动扫描”来强制刷新媒体库。

4.2 设置用户权限

  • 通过“管理面板” -> “用户”,你可以添加多个用户并设置访问权限。每个用户可以有不同的媒体访问权限、播放限制等。

4.3 安装插件

  • Jellyfin 提供了很多有用的插件,可以在“管理面板” -> “插件”中安装,比如字幕下载插件、元数据获取插件等。

4.4 视频转码

  • Jellyfin 具有内置的转码功能,能根据客户端设备和网络情况,自动调整视频流的分辨率和质量。如果服务器支持硬件加速转码(如 NVIDIA GPU),可以在设置中启用硬件加速。

5. 使用 Jellyfin 客户端

Jellyfin 支持多种客户端,允许你在各种设备上访问和播放内容:

  • 浏览器:通过浏览器访问 http://服务器IP:8096
  • 移动端应用:Jellyfin 提供 Android 和 iOS 客户端,可以直接从应用商店下载。
  • 智能电视和盒子:Jellyfin 支持 Android TV 和 Fire TV,直接通过商店下载并安装客户端。
  • Kodi:可以在 Kodi 上安装 Jellyfin 插件,实现与 Jellyfin 服务器的集成。

6. 常见问题

6.1 媒体无法扫描

  • 检查 Jellyfin 是否有对媒体文件夹的读取权限,特别是在 Docker 中,确保媒体文件夹正确挂载,并且 Jellyfin 容器有权限访问这些文件。

6.2 播放卡顿

  • 如果 Jellyfin 服务器的硬件性能不足,可能会导致转码时卡顿。建议启用硬件加速,或者优化转码设置。

6.3 外网访问问题

  • 确保路由器的端口转发设置正确,将 Jellyfin 的端口(8096 或 8920)转发到外网 IP 上。你也可以使用动态域名(DDNS)服务配合 Jellyfin。

通过上述步骤,你可以在 Docker 上顺利安装并配置 Jellyfin,同时享受它强大的本地和远程媒体管理和播放功能。