视频管理插件 (Video)
视频与电视直播管理
全能视频管理中心,支持 STRM 播放、直播源管理与实时转码
功能概述
Video 插件是 NavLink 的核心媒体功能插件,旨在为用户提供从网络云盘(Alist/Openlist)、TV 直播源到本地视频流的统一管理和自适应播放体验。
核心功能
📺 网络资源站 (CMS)
- 广泛支持:支持接入基于 苹果CMS (AppleCMS) 格式的资源站。
- 采集管理:一键添加资源站接口,支持分类浏览与视频检索。
- 即点即播:支持资源站提供的多种流媒体解析与播放。
📺 电视直播 (TV Live)
- 源管理:支持批量导入
.m3u直播源。 - 自适应检测:自动检测直播源有效性及延迟。
- 内置播放器:支持 HLS/Dash/CCTV 等流协议直接播放。
☁️ 云盘视频 (Alist/Openlist)
- 无缝连接:支持通过对接 Alist 或 Openlist,实现影视文件直接在浏览器播放。
- 自动封面:支持通过 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 架构推荐)
- 进入 Video 插件设置。
- 在「STRM 转码」部分,系统会自动识别您的 Linux 系统。
- 点击「一键安装便携版」即可完成初始化。
方式二:容器启动时自动安装(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 后可能影响容器内行为
