收起左侧

飞牛 NAS 接入夸克网盘流畅播放部署手册(本人已实测成功)

0
回复
73
查看
[ 复制链接 ]

3

主题

1

回帖

0

牛值

江湖小虾

飞牛 NAS 接入夸克网盘流畅播放部署手册

本文介绍如何在飞牛 NAS 上,通过 OpenList + QuarkTV + SmartStrm + 飞牛影视,实现夸克网盘内容不下载到 NAS、本地只保存 STRM 文件、飞牛影视流畅播放电影和电视剧。


1. 方案目标

很多人把夸克网盘直接挂载到飞牛影视后,会遇到播放卡顿、加载慢、拖动进度条困难的问题。

本方案目标是:

不把几百 GB 视频下载到 NAS
不依赖飞牛原生网盘挂载播放
不通过 WebDAV / FUSE 直接读原文件
只在 NAS 本地保存 KB 级 STRM 文件
飞牛影视通过 STRM 播放夸克转码流

最终链路:

夸克网盘
→ OpenList QuarkTV streaming
→ SmartStrm 生成 STRM
→ 飞牛影视扫描 STRM
→ 大屏流畅播放

2. 方案原理

2.1 为什么飞牛原生挂载容易卡?

飞牛原生挂载、WebDAV、rclone FUSE 这类方式,本质上通常是在尝试读取网盘里的原始文件。

如果原文件是 4K REMUX 或高码率视频,可能几十 GB,一个视频码率动辄几十 Mbps。
这种情况下,网盘下载速度、FUSE 中间层、播放器读取方式都会影响播放体验。

2.2 STRM 是什么?

STRM 文件本质上就是一个普通文本文件,里面通常只有一行 URL,例如:

http://NAS_IP:5244/d/quark-tv/xxx/xxx.mp4?sign=xxxx

飞牛影视扫描到 STRM 文件后,会把它当成一个视频入口。播放时,播放器会去请求 STRM 里面的 URL。

所以 NAS 本地不需要保存真实视频文件,只保存很小的 .strm 文件。

2.3 为什么要用 QuarkTV streaming?

QuarkTV 的 streaming 模式可以调用夸克的转码播放流。
它不是直接拉原始几十 GB 文件,而是获取夸克服务端处理后的流式视频。

优点:

播放更流畅
拖动进度条更快
带宽压力小
NAS 不需要下载原视频

缺点:

不是原盘画质
通常是服务端转码后的 H.264 / AAC 视频流
码率低于原始文件

如果追求极致原盘画质,本方案不一定适合。
如果日常大屏观看,本方案体验很好。


3. 准备条件

需要准备:

一台飞牛 NAS
Docker 和 Docker Compose
一个可用的夸克网盘账号
飞牛影视
OpenList
SmartStrm

本文示例假设:

NAS 局域网 IP:192.168.x.x
Docker 项目目录:/path/to/docker/quark-fntv
STRM 本地目录:/path/to/docker/quark-fntv/strm/library
OpenList 端口:5244
SmartStrm 端口:8024

实际部署时,请替换成自己的路径和 IP。


4. 推荐目录结构

/path/to/docker/quark-fntv
**── docker-compose.yml
**── openlist
**── smartstrm
**   **── config
**   **── logs
**── strm
    **── library
        **── quark-movie
        **── quark-tv

说明:

openlist:OpenList 配置
smartstrm/config:SmartStrm 配置
smartstrm/logs:SmartStrm 日志
strm/library:最终给飞牛影视扫描的 STRM 文件目录

5. 先确认 NAS 环境

SSH 登录 NAS 后执行:

hostname -I
docker --version
docker compose version

确认能看到:

NAS 局域网 IP
Docker version
Docker Compose version

6. 创建目录

把下面的 /path/to/docker/quark-fntv 替换成你自己的 Docker 持久化目录。

mkdir -p /path/to/docker/quark-fntv/openlist
mkdir -p /path/to/docker/quark-fntv/smartstrm/config
mkdir -p /path/to/docker/quark-fntv/smartstrm/logs
mkdir -p /path/to/docker/quark-fntv/strm/library

7. 确认用户 UID / GID

执行:

id 当前用户名

例如可能得到:

uid=1000(nasuser) gid=1001(users)

记下:

UID=1000
GID=1001

后面 SmartStrm 建议用这个用户运行,避免生成的 STRM 文件变成 root:root 导致飞牛影视读不到。


8. docker-compose.yml 示例

进入项目目录:

cd /path/to/docker/quark-fntv

创建 docker-compose.yml

services:
  openlist:
    image: openlistteam/openlist:latest-lite
    container_name: openlist-quark
    restart: unless-stopped
    user: "0:0"
    ports:
      - "5244:5244"
    environment:
      - UMASK=022
      - TZ=Asia/Shanghai
    volumes:
      - /path/to/docker/quark-fntv/openlist:/opt/openlist/data
      - /path/to/docker/quark-fntv/strm:/opt/openlist/strm

  smartstrm:
    user: "1000:1001"
    image: cp0204/smartstrm:latest
    container_name: smartstrm-quark
    restart: unless-stopped
    ports:
      - "8024:8024"
    environment:
      - PORT=8024
      - ADMIN_USERNAME=admin
      - ADMIN_PASSWORD=请自行修改
      - TZ=Asia/Shanghai
    volumes:
      - /path/to/docker/quark-fntv/smartstrm/config:/app/config
      - /path/to/docker/quark-fntv/smartstrm/logs:/app/logs
      - /path/to/docker/quark-fntv/strm/library:/strm

注意把:

user: "1000:1001"

替换成你的 NAS 用户 UID/GID。

例如你的用户是:

uid=1000
gid=1001

那就写:

user: "1000:1001"

9. 启动容器

cd /path/to/docker/quark-fntv
docker compose up -d

查看状态:

docker compose ps

正常应该看到:

openlist-quark    Up
smartstrm-quark   Up

10. 登录 OpenList

查看 OpenList 初始密码:

docker logs --tail=100 openlist-quark

找到类似:

Successfully created the admin user and the initial password is:

登录:

http://NAS_IP:5244

用户名:

admin

密码:

日志中的初始密码

建议登录后修改管理员密码。


11. 添加 OpenList QuarkTV 存储

进入:

OpenList 后台 → 管理 → 存储 → 添加

填写:

驱动:Quark TV / QuarkTV / 夸克TV
挂载路径:/quark-tv
链接方法:流式 / streaming

关键配置:

link_method = streaming

不要选普通下载模式。
本方案的流畅播放依赖 QuarkTV 的 streaming 流式播放。


12. QuarkTV 扫码授权

添加 QuarkTV 时,可能会出现:

Failed init storage: 用户未确认授权

或者:

need verify: <body> <img src="data:image/jpeg;base64,..."/>

解决方法:

  1. 从报错中复制 data:image/jpeg;base64,...
  2. 粘贴到浏览器地址栏;
  3. 浏览器会显示二维码;
  4. 用手机夸克 App 扫码;
  5. 确认授权;
  6. 回到 OpenList 保存。

如果提示二维码过期,删除 /quark-tv 后重新添加,再快速扫码。


13. 确认 QuarkTV 可用

OpenList 前台进入:

/quark-tv

如果能看到夸克网盘文件,就说明 QuarkTV 挂载成功。


14. 关闭签名限制

在 OpenList 存储设置里,确认类似下面的选项是关闭状态:

启用签名
Sign

如果强制签名开启,飞牛影视播放 STRM 时可能 401,因为播放端不会带 OpenList 登录态。


15. 登录 SmartStrm

访问:

http://NAS_IP:8024

使用 docker-compose 中设置的用户名和密码登录。

如果使用上面的示例:

用户名:admin
密码:自行设置的密码

16. SmartStrm 添加 OpenList 存储

SmartStrm 中进入:

存储管理 → 添加存储

填写:

存储名称:quarktv
驱动:OpenList / AList
OpenList 地址:http://NAS_IP:5244
Token:OpenList 后台获取

OpenList Token 位置一般在:

OpenList → 管理 → 设置 → 其他 → 令牌 / Token

保存后,在 SmartStrm 文件浏览器中确认可以看到:

/quark-tv

17. 先生成一个测试 STRM

不要一开始扫整个网盘。
建议先选一个小目录测试。

例如:

/quark-tv/资源库/某个电影目录

创建测试任务:

任务名称:test
使用存储:quarktv
扫描路径:/quark-tv/资源库/某个电影目录
STRM 保存到:/strm/test
增量生成模式:开启
目录时间检查:开启
执行时间 Crontab:留空

运行任务后,NAS 本地应该生成:

/path/to/docker/quark-fntv/strm/library/test/xxx.strm

18. 检查 STRM 内容

执行:

FILE="$(find /path/to/docker/quark-fntv/strm/library/test -type f -name '*.strm' | head -n 1)"
head -c 300 "$FILE"
echo

正常应该看到:

http://NAS_IP:5244/d/quark-tv/...

不能出现:

127.0.0.1
localhost

如果出现 127.0.0.1localhost,播放端会请求自己而不是 NAS,导致播放失败。


19. 测试 STRM 链接是否可用

执行:

FILE="$(find /path/to/docker/quark-fntv/strm/library/test -type f -name '*.strm' | head -n 1)"
URL="$(cat "$FILE")"

curl -L \
  -H "Range: bytes=0-1048575" \
  --connect-timeout 10 \
  --max-time 30 \
  -o /tmp/quark-test.bin \
  -w "\nHTTP_CODE=%{http_code}\nSIZE=%{size_download}\nCONTENT_TYPE=%{content_type}\n" \
  "$URL"

正常结果类似:

HTTP_CODE=206
SIZE=1048576
CONTENT_TYPE=video/mp4

这说明视频流可以正常访问。


20. 检查 SmartStrm 权限

检查 SmartStrm 当前运行用户:

docker exec smartstrm-quark sh -lc 'id && umask'

建议结果类似:

uid=1000 gid=1001

如果是:

uid=0(root)

并且新生成的 STRM 文件是:

-rw-rw---- root:root

飞牛影视可能无法读取。

建议:

  1. 把 SmartStrm 的 user 改成 NAS 普通用户的 UID/GID;
  2. 修改目录归属;
  3. 重建容器。

示例:

sudo chown -R 1000:1001 /path/to/docker/quark-fntv/smartstrm
sudo chown -R 1000:1001 /path/to/docker/quark-fntv/strm

cd /path/to/docker/quark-fntv
docker compose up -d --force-recreate smartstrm

21. 创建正式电影任务

SmartStrm 创建任务:

任务名称:quark-movie
任务类型:生成 STRM
使用存储:quarktv
扫描路径:/quark-tv/资源库/电影
STRM 保存到:/strm/quark-movie
增量生成模式:开启
目录时间检查:开启
执行时间 Crontab:0 */6 * * *

说明:

0 */6 * * * = 每 6 小时自动扫描一次

NAS 本地电影 STRM 目录:

/path/to/docker/quark-fntv/strm/library/quark-movie

22. 创建正式电视剧任务

SmartStrm 创建任务:

任务名称:quark-tv
任务类型:生成 STRM
使用存储:quarktv
扫描路径:/quark-tv/资源库/电视剧
STRM 保存到:/strm/quark-tv
增量生成模式:开启
目录时间检查:开启
执行时间 Crontab:0 */6 * * *

NAS 本地电视剧 STRM 目录:

/path/to/docker/quark-fntv/strm/library/quark-tv

23. 飞牛影视添加媒体库

23.1 添加电影库

飞牛影视中添加:

类型:电影
目录:/path/to/docker/quark-fntv/strm/library/quark-movie

23.2 添加电视剧库

飞牛影视中添加:

类型:电视剧
目录:/path/to/docker/quark-fntv/strm/library/quark-tv

添加后扫描媒体库,测试播放。
如果可以播放,并且拖进度条响应快,说明部署成功。


24. 开启飞牛影视自动扫描

进入飞牛影视设置,找到类似:

定时任务
自动扫描
扫描媒体库文件

建议开启:

定时扫描媒体库

这样完整自动流程是:

夸克网盘新增资源
→ SmartStrm 每 6 小时自动生成 STRM
→ 飞牛影视定时扫描媒体库
→ 新内容自动出现在飞牛影视

如果想马上看到新内容:

1. SmartStrm 手动运行对应任务
2. 飞牛影视手动扫描对应媒体库

25. 日常维护

25.1 查看容器状态

cd /path/to/docker/quark-fntv
docker compose ps

正常:

openlist-quark    Up
smartstrm-quark   Up

25.2 重启服务

cd /path/to/docker/quark-fntv
docker compose restart

只重启 OpenList:

docker compose restart openlist

只重启 SmartStrm:

docker compose restart smartstrm

25.3 更新镜像

cd /path/to/docker/quark-fntv
docker compose pull
docker compose up -d

更新前建议备份配置目录。


26. 常见问题排查

26.1 飞牛影视扫不到文件

检查 STRM 是否生成:

find /path/to/docker/quark-fntv/strm/library/quark-movie -type f -name '*.strm' | wc -l
find /path/to/docker/quark-fntv/strm/library/quark-tv -type f -name '*.strm' | wc -l

如果数量没变化:

去 SmartStrm 手动运行任务

如果数量已经变化:

去飞牛影视手动扫描媒体库

26.2 能扫到,但播放失败

检查 STRM 内容:

FILE="$(find /path/to/docker/quark-fntv/strm/library/quark-movie -type f -name '*.strm' | head -n 1)"
cat "$FILE"

正常:

http://NAS_IP:5244/d/quark-tv/...

错误:

http://127.0.0.1:xxxx
http://localhost:xxxx

如果是 127.0.0.1 或 localhost,需要检查 SmartStrm / OpenList 地址配置。


26.3 播放报 401 / 403

可能原因:

OpenList 签名限制开启
guest / 匿名访问权限不足
QuarkTV 授权失效

处理方法:

检查 OpenList 存储是否关闭“启用签名”
检查 QuarkTV 是否还能浏览网盘文件
必要时重新扫码授权

26.4 STRM 权限不对

检查权限:

find /path/to/docker/quark-fntv/strm/library/quark-movie -type f -name '*.strm' -exec stat -c '%A %U:%G %n' {} \;

如果是:

root:root

建议让 SmartStrm 使用 NAS 普通用户 UID/GID 运行。

检查 SmartStrm 用户:

docker exec smartstrm-quark sh -lc 'id'

26.5 QuarkTV 二维码过期

重新添加或编辑 QuarkTV 存储,快速扫码。

如果页面没有显示二维码,而是显示:

data:image/jpeg;base64,...

可以复制这一整段到浏览器地址栏打开,浏览器会显示二维码。


26.6 画质不如原盘

这是正常现象。
QuarkTV streaming 走的是夸克转码流,不是原始文件。

优点是流畅,缺点是画质低于原盘。


27. 备份建议

建议备份整个项目目录:

/path/to/docker/quark-fntv

重点备份:

docker-compose.yml
openlist 配置
smartstrm 配置

STRM 文件本身可以重新生成,不是最关键。


28. 恢复方法

迁移或重装后,把项目目录放回原位置,执行:

cd /path/to/docker/quark-fntv
docker compose up -d

然后检查:

docker compose ps

如果容器正常运行,OpenList 和 SmartStrm 配置还在,一般就可以恢复。


29. 总结

这个方案适合:

夸克网盘里有很多影视资源
不想下载到 NAS
希望飞牛影视能展示和播放
希望大屏播放流畅
能接受转码流画质

不适合:

必须播放原盘画质
必须使用蓝光原始码率
不能接受服务端转码

最终推荐链路:

OpenList 只负责连接夸克 QuarkTV
SmartStrm 只负责生成 STRM
飞牛影视只扫描本地 STRM 目录
不要让飞牛影视直接扫网盘挂载目录

这样稳定性和播放流畅度会好很多。

收藏
送赞 1
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则