Skip to content

视频管理插件 (Video)

🎬

视频与电视直播管理

全能视频管理中心,支持 STRM 播放、直播源管理与实时转码

功能概述

Video 插件是 NavLink 的核心媒体功能插件,旨在为用户提供从网络云盘(Alist/Openlist)、TV 直播源到本地视频流的统一管理和自适应播放体验。

核心功能

📺 网络资源站 (CMS)

  • 广泛支持:支持接入基于 苹果CMS (AppleCMS) 格式的资源站。
  • 采集管理:一键添加资源站接口,支持分类浏览与视频检索。
  • 即点即播:支持资源站提供的多种流媒体解析与播放。

📺 电视直播 (TV Live)

  • 源管理:支持批量导入 .m3u 直播源。
  • 自适应检测:自动检测直播源有效性及延迟。
  • 内置播放器:支持 HLS/Dash/CCTV 等流协议直接播放。

☁️ 云盘视频 (Alist/Openlist)

  • 无缝连接:支持通过对接 AlistOpenlist,实现影视文件直接在浏览器播放。
  • 自动封面:支持通过 TMDB 自动抓取视频封面及元数据信息。
  • 转码方案:解决不同网络环境下高清视频播放卡顿问题。

⚡ 实时转码 (Transcoding)

  • 一键安装 FFmpeg:Linux/Docker 环境下支持一键部署便携版 FFmpeg,零门槛开启转码。
  • 硬件加速:支持 NVENC (Nvidia), QSV (Intel), VA-API 等主流硬件加速。
  • 多码率适配:根据带宽自动调整清晰度。

配置说明

1. 硬件加速配置

要使用硬件加速,请确保您的容器已映射对应的设备驱动,例如:

yaml
# docker-compose.yml 示例 (Nvidia)
deploy:
  resources:
    reservations:
      devices:
        - driver: nvidia
          count: 1
          capabilities: [gpu]

2. FFmpeg 安装

Video 插件的 STRM 转码功能依赖 FFmpeg。根据您的环境选择合适的安装方式:

方式一:一键安装(x86_64 架构推荐)

  1. 进入 Video 插件设置。
  2. 在「STRM 转码」部分,系统会自动识别您的 Linux 系统。
  3. 点击「一键安装便携版」即可完成初始化。

方式二:容器启动时自动安装(ARM 设备必选)

对于 ARM 架构设备(如 RK3528、树莓派、玩客云等),便携版不兼容,请修改 docker-compose.yml

yaml
services:
  navlink:
    image: ghcr.io/txwebroot/navlink-releases:latest
    command: sh -c "apk add --no-cache ffmpeg && node server.js"
    # ... 其他配置保持不变

💡 说明

此方式每次容器重启都会重新安装 FFmpeg,但耗时很短(约 10-30 秒)。

使用场景

  • 精简版 NAS:无需搭建 Emby/Plex,轻量化播放网盘资源。
  • 全能播放器:统一管理全球电视直播频道。
  • 低带宽播放:在户外通过实时转码观看家中的 4K 蓝光资源。

媒体库

媒体库功能用于扫描和管理本地或网盘中的视频文件,自动识别电影和剧集。

三级视图结构

媒体库前台页面采用三级视图设计,层层递进,便于用户浏览和定位内容:

视图层级页面标题显示内容数量限制
一级:全部媒体全部媒体展示所有已启用的媒体库(网盘源),每个媒体库作为一个板块,预览部分媒体每个媒体库显示 6 个媒体,点击"更多"进入二级
二级:媒体库媒体库名称展示该媒体库下的所有扫描目录,每个目录作为一个板块每个目录显示 22 个媒体 + 1 个"加载更多"卡片,点击可原地扩展
三级:扫描目录目录名称展示该目录下的全部媒体,支持无限滚动每页 20 个,滚动到底部自动加载更多

💡 导航方式

  • 点击媒体库板块标题 → 进入二级视图
  • 点击扫描目录标题 → 进入三级视图
  • 点击媒体封面 → 直接播放
  • 顶部工具栏显示当前位置,支持筛选和视图切换

扫描配置

配置项默认值说明
扫描深度5 层最大递归扫描的文件夹层级
扫描并发数可配置同时处理的文件数量,可在后台设置中调整

标准文件结构

为获得最佳识别效果,建议按以下结构组织媒体文件:

/媒体库根目录/
├── 电影名称 (2024)/
│   ├── 电影名称.mkv          # 视频文件
│   ├── 电影名称.nfo          # 元数据文件(可选)
│   ├── poster.jpg            # 封面图片(优先读取)
│   └── fanart.jpg            # 背景图(可选)

└── 剧集名称 (2024)/
    ├── S01E01.mkv            # 多个视频文件 → 自动识别为剧集
    ├── S01E02.mkv
    ├── poster.jpg
    └── tvshow.nfo

识别规则

  • 单视频文件 → 识别为电影
  • 多视频文件 → 识别为剧集(按文件名排序)
  • 封面优先级poster.* > cover.* > folder.* > 视频同名图片
  • 元数据来源:优先读取 .nfo 文件,其次通过 TMDB 自动匹配

支持的格式

类型支持格式
视频.mkv, .mp4, .avi, .mov, .wmv, .flv, .ts, .strm
封面.jpg, .jpeg, .png, .webp
元数据.nfo (Kodi/Emby 格式)

扫描操作

媒体库提供以下扫描和维护操作:

操作说明
扫描新内容增量扫描,仅检测新增的媒体文件并添加到索引,不影响已有数据
刷新全部完整重新扫描所有已配置的目录,更新全部媒体索引和元数据
重试封面针对封面下载失败的媒体,重新尝试从 TMDB 获取封面图片
清理失效检测并移除数据库中已不存在于磁盘的失效媒体记录
清理索引清空当前扫描目录的全部索引数据,需重新扫描才能恢复

💡 建议

  • 日常使用推荐「扫描新内容」,速度快且不影响已有数据
  • 移动或重命名大量文件后建议执行「刷新全部」
  • 封面显示异常时可尝试「重试封面」

高级选项

挂载宿主机 FFmpeg(不推荐)

⚠️ 此方法复杂且容易出问题

仅适用于宿主机已安装 FFmpeg 且架构与容器一致的场景。大多数用户应使用上述"方式二"。

如果您希望复用宿主机已安装的 FFmpeg,可以通过卷挂载实现:

yaml
services:
  navlink:
    image: ghcr.io/txwebroot/navlink-releases:latest
    volumes:
      - /usr/bin/ffmpeg:/usr/bin/ffmpeg:ro
      - /usr/bin/ffprobe:/usr/bin/ffprobe:ro
      # 如依赖动态库,可能需要额外挂载
      # - /usr/lib:/usr/lib:ro

注意事项

  • 宿主机和容器架构必须一致(都是 ARM64 或都是 x86_64)
  • 若 FFmpeg 依赖动态库,需要挂载 /usr/lib/lib(可能导致冲突)
  • 宿主机更新 FFmpeg 后可能影响容器内行为

基于 Docker 一键部署