默认端口 8080,首次注册的用户自动成为管理员;硬件加速需额外加 --device /dev/dri:/dev/dri,没有该设备要删掉映射;局域网自动发现依赖 UDP 7359 和可达广播网络,Docker bridge 或反代环境需手动填服务器地址;源码构建需 Go 1.25、Node.js 20+ 和 FFmpeg,只下载 compose 文件不含 Dockerfile 与源码。
nowen-video
cropflreGPL-3.0活跃维护用 Go + React + SQLite 搭的轻量家庭媒体服务器,自动刮削 TMDb/豆瓣元数据,支持 HLS 转码与硬件加速,可当 Emby/Jellyfin 的轻量替代。
🎬 轻量级家庭媒体服务器 | Go + React + SQLite | 自动刮削 TMDb/豆瓣 | HLS 转码 + 硬件加速 | 剧集识别 | Docker 一键部署 | 类 Emby/Jellyfin 替代方案
docker run -d --name nowen-video -p 8080:8080 -e PUID=1000 -e PGID=1000 -e TZ=Asia/Shanghai -v $(pwd)/data:/data -v $(pwd)/cache:/cache -v /path/to/media:/media:ro --restart unless-stopped cropflre/nowen-video:latestDocker 镜像内置 FFmpeg 8.1.2;Intel/AMD 硬件加速需在 Linux/NAS 上透传 /dev/dri,无此设备时用软件转码兜底。README 未给出具体显存或内存要求。
Go+React 写的轻量家庭媒体服务器,自动刮削元数据并按需转码,可替代 Emby/Jellyfin
用 Go + React + SQLite 搭的轻量家庭媒体服务器,自动刮削 TMDb/豆瓣元数据,支持 HLS 转码与硬件加速,可当 Emby/Jellyfin 的轻量替代。
核心能力
- 自动扫描常见视频格式并用 FFprobe 读取轨道信息
- 从 TMDb、豆瓣、TheTVDB、Bangumi 等源刮削元数据
- 按客户端能力选择直接播放、Remux 或按需 HLS 转码
- 支持 Intel/AMD /dev/dri 硬件加速并保留软件转码兜底
- 内置 Emby/Jellyfin 兼容接口,可接 Hills、Yamby 等客户端
容易踩的坑
- v1.3.4Nowen Video 1.3.4最新正式版2026-08-24 · 2026-08-24 02:45 UTC
🎬 Nowen Video v1.3.4 发布公告
发布日期:2026-08-24 源码:
c47593619fc7· 变更范围v1.3.3..HEAD本版本继续围绕媒体管理、播放体验、详情页信息架构、移动端与发布稳定性进行完善。以下内容由本次版本的真实提交自动汇总。
♻️ 重构与能力升级
- web:退役旧视觉层并统一详情搜索
b7249cf
🔧 其他
- web:清理未引用历史样式文件
3e65c25
📌 其他变更
- 统一影视详情页 Hero 文案展示
c475936 - 修复Remux拖动后字幕时间轴同步
bece153 - 修复详情页演职人员图标与片段悬停布局
74f0991 - 清理影视详情封面边界并增加演职人员间距
5aa96c3 - 移除影视详情封面固定高度约束
80fcf3c - 移除详情封面首帧淡入缩放
5ef5e91 - 修复影视详情封面首帧闪边
10944a1 - 将影视详情收藏图标调整为红色爱心
ed76a56 - 修正影视详情返回按钮为纯图标
92e98a3 - 放大影视详情封面并对齐 Hills Lite 比例
1bb0448 - 收口详情页单图轮播素材避免拼图背景混入
7d6cccd - 删除详情页旧轮播增强器避免双重渲染
8dd429f - 退役详情页旧轮播增强器避免背景重叠
984c020 - 压缩详情页封面高度并收口单图轮播
0182ee9 - 重构详情页封面为单图自动轮播
ca76b6d - 重构影视详情页为 Hills Lite 连续信息流
6e2486d - 支持点击首页幻灯片进入影视详情
936084f - 修正展开侧栏文字布局并统一左对齐
6652841 - 保持中宽屏侧栏自动收起布局稳定
256806f - 优化展开侧栏文字对齐与可用宽度
ce2bd7b - 保持侧栏宽度契约由导航样式统一控制
b025df2 - 修复展开侧栏导航项宽度与文字展示
6fda7fa - 收紧桌面侧栏展开宽度与导航密度
504cfb9 - 收敛侧栏选中态为 Hills Lite 中性样式
ee9083f - 其余 12 项工程变更已省略,可在 GitHub 提交记录中查看。
📦 本次发布渠道
- Docker:
cropflre/nowen-video:v1.3.4 - Docker stable:
cropflre/nowen-video:latest - Android APK:
nowen-video-android-1.3.4.apk - Android AAB:
nowen-video-android-1.3.4.aab - 飞牛 fnOS:
nowen-video-1.3.4.fpk
⬆️ 升级说明
- Docker 用户建议固定版本标签升级,确认运行正常后再跟随
latest。 - 飞牛 fnOS 用户可在应用中心使用本版本
.fpk覆盖安装,持久化数据目录不会随应用包替换。 - Android 用户直接安装本版本 APK;AAB 用于应用商店或后续渠道分发。
- 升级前建议备份
/data,尤其是跨多个版本升级时。
✅ 发布完整性
本 Release 只有在 Server CI、Release Contract、客户端正式候选构建、Docker 远端 manifest、Git tag、GitHub Release 资产以及各渠道校验全部通过后才会被发布脚本判定为成功。
Full Changelog: https://github.com/cropflre/nowen-video/compare/v1.3.3...v1.3.4
- web:退役旧视觉层并统一详情搜索
- v1.3.3Nowen Video 1.3.32026-08-21 · 2026-08-21 08:12 UTC
查看更新说明
🎬 Nowen Video v1.3.3 发布公告
发布日期:2026-08-21 源码:
43c911837f93· 变更范围v1.3.2..HEAD本版本继续围绕媒体管理、播放体验、详情页信息架构、移动端与发布稳定性进行完善。以下内容由本次版本的真实提交自动汇总。
🐛 问题修复
- 修复安卓播放进度条拖动
21a54e4 - 适配 Windows Player Surface API
9246a2f
📝 文档
- 统一项目品牌名称
048d018 - 删除 README 旧版截图资源
fd12c5d - 更新 README 截图与公众号资源
d4f5c21
📌 其他变更
- 清理剧集菜单旧遮罩样式
43c9118 - 修复影视库切换误报与剧集菜单交互
9945c8f
📦 本次发布渠道
- Docker:
cropflre/nowen-video:v1.3.3 - Docker stable:
cropflre/nowen-video:latest - Android APK:
nowen-video-android-1.3.3.apk - Android AAB:
nowen-video-android-1.3.3.aab - 飞牛 fnOS:
nowen-video-1.3.3.fpk
⬆️ 升级说明
- Docker 用户建议固定版本标签升级,确认运行正常后再跟随
latest。 - 飞牛 fnOS 用户可在应用中心使用本版本
.fpk覆盖安装,持久化数据目录不会随应用包替换。 - Android 用户直接安装本版本 APK;AAB 用于应用商店或后续渠道分发。
- 升级前建议备份
/data,尤其是跨多个版本升级时。
✅ 发布完整性
本 Release 只有在 Server CI、Release Contract、客户端正式候选构建、Docker 远端 manifest、Git tag、GitHub Release 资产以及各渠道校验全部通过后才会被发布脚本判定为成功。
Full Changelog: https://github.com/cropflre/nowen-video/compare/v1.3.2...v1.3.3
- 修复安卓播放进度条拖动
- v1.3.2Nowen Video 1.3.22026-08-20 · 2026-08-20 10:25 UTC
查看更新说明
🎬 Nowen Video v1.3.2 发布公告
发布日期:2026-08-20 源码:
c059faa55ddf· 变更范围v1.3.1..HEAD本版本继续围绕媒体管理、播放体验、详情页信息架构、移动端与发布稳定性进行完善。以下内容由本次版本的真实提交自动汇总。
✨ 新增功能
- ui:load Nowen UI 2.0 theme contract
e715a5c - ui:introduce Nowen UI 2.0 semantic theme layer
889d080 - ui:add Nowen UI exports
c15691d - ui:add shared media artwork primitive
7a6a68f - ui:add shared media rail primitive
6a75624
♻️ 重构与能力升级
- ui:build MediaCard on shared artwork primitive
4e84a84 - ui:migrate home rows to shared MediaRail
e3a5717 - ui:align Fluent brand with Nowen violet system
1433579 - ui:extend shared primitives for UI 2.0
d97aa64
📌 其他变更
- 修复首页幻灯片未使用状态导致构建失败
c059faa - 修复文件监视器测试语法错误
82be881 - 统一安卓设计系统与 Web 移动端视觉令牌
64763ef - 修正安卓 Web 移动端首页 Compose 内容作用域
cce076f - 统一安卓主导航与 Web 移动端底栏
3defd35 - 统一安卓首页与 Web 移动端视觉结构
039c587 - 修复收藏检查竞态导致状态回退
1a8bab7 - 修复收藏状态缓存未及时失效
d40953f - 补齐原生与WebCodecs观看进度持续上报
36feb31 - 接入全播放内核观看历史同步桥接
61b3a6a - 统一播放器观看历史上报与离场进度保存
cf88793 - 修正首页幻灯片左右切换按钮对称布局
c6a9159 - 接入首页切换按钮统一视觉规范
9f2da0c - 统一首页幻灯片与分类切换按钮样式
70fd85c - 收紧无搜索框顶部栏布局
c3932f9 - 移除重复的全局顶部搜索框
907377b - 统一页面切换时顶部标题字号与排版
8f657f4 - 移除无实际功能的顶部消息铃铛
f0acddc - 修复桌面侧边栏导航文字裁切
6f2d4ae - 接入侧边栏导航图标最终展示规范
028a99a - 恢复桌面侧边栏导航图标完整展示
f18d4a6 - 接入移动端首页沉浸式顶部栏优化
4847827 - 优化移动端首页沉浸式顶部操作
bbe6a72 - 接入播放器单清晰度画质菜单修复
c3d821f - 其余 280 项工程变更已省略,可在 GitHub 提交记录中查看。
📦 本次发布渠道
- Docker:
cropflre/nowen-video:v1.3.2 - Docker stable:
cropflre/nowen-video:latest - Android APK:
nowen-video-android-1.3.2.apk - Android AAB:
nowen-video-android-1.3.2.aab - 飞牛 fnOS:
nowen-video-1.3.2.fpk
⬆️ 升级说明
- Docker 用户建议固定版本标签升级,确认运行正常后再跟随
latest。 - 飞牛 fnOS 用户可在应用中心使用本版本
.fpk覆盖安装,持久化数据目录不会随应用包替换。 - Android 用户直接安装本版本 APK;AAB 用于应用商店或后续渠道分发。
- 升级前建议备份
/data,尤其是跨多个版本升级时。
✅ 发布完整性
本 Release 只有在 Server CI、Release Contract、客户端正式候选构建、Docker 远端 manifest、Git tag、GitHub Release 资产以及各渠道校验全部通过后才会被发布脚本判定为成功。
- ui:load Nowen UI 2.0 theme contract
- v1.3.1Nowen Video 1.3.12026-08-18 · 2026-08-18 10:00 UTC
查看更新说明
🎬 Nowen Video v1.3.1 发布公告
发布日期:2026-08-18 源码:
8ade62a0317e· 变更范围v1.3.0..HEAD本版本继续围绕媒体管理、播放体验、详情页信息架构、移动端与发布稳定性进行完善。以下内容由本次版本的真实提交自动汇总。
📌 其他变更
- 增加桌面播放窗口特效回归门禁
8ade62a - 修复桌面原生播放白屏
531c3f5 - 清理误触的临时空文件
c7a5bb6 - 中止错误调用
c482983 - 清理误创建的临时空文件
4106bbf - should not happen
d49f045 - 清理误创建的分支标记文件
cd36c21 - 建立桌面播放白屏修复分支
2a4792d - 清理误创建的临时文件
5e8d424 - noop
9bfcaba - 同步 Desktop Windows 依赖锁文件
3c3df78 - 修复 Desktop 2.0 Windows 编译与安卓网络权限
de63022 - 补齐 Desktop 2.0 Tauri 构建资源
028b62d - 补齐 Desktop CI Tauri 运行时资源
1e681ea - 补齐 Desktop CI Sidecar 构建前置
88b02bf - 补齐 Android 媒体计算单测依赖
d7c4f4c - 修复 Desktop 2.0 wid 架构门禁误报
0178b1d - 触发 Desktop 2.0 合并前完整验证
9f45e5c - 同步 Desktop 2.0 Cargo 锁文件
14f3f0c - 临时生成 Desktop 2.0 Cargo 锁文件
b2a112a - 收口 Desktop 2.0 主分支构建门禁
6b6878a - 接入分布式章节检测任务
4680af5 - 修正 Desktop 2.0 架构门禁稳定性
b41b4a2 - 修正 Desktop 2.0 架构门禁字符串匹配
c6cad0c - 其余 140 项工程变更已省略,可在 GitHub 提交记录中查看。
📦 本次发布渠道
- Docker:
cropflre/nowen-video:v1.3.1 - Docker stable:
cropflre/nowen-video:latest - Android APK:
nowen-video-android-1.3.1.apk - Android AAB:
nowen-video-android-1.3.1.aab - 飞牛 fnOS:
nowen-video-1.3.1.fpk
⬆️ 升级说明
- Docker 用户建议固定版本标签升级,确认运行正常后再跟随
latest。 - 飞牛 fnOS 用户可在应用中心使用本版本
.fpk覆盖安装,持久化数据目录不会随应用包替换。 - Android 用户直接安装本版本 APK;AAB 用于应用商店或后续渠道分发。
- 升级前建议备份
/data,尤其是跨多个版本升级时。
✅ 发布完整性
本 Release 只有在 Server CI、Release Contract、客户端正式候选构建、Docker 远端 manifest、Git tag、GitHub Release 资产以及各渠道校验全部通过后才会被发布脚本判定为成功。
- 增加桌面播放窗口特效回归门禁
- v1.3.0Nowen Video 1.3.02026-08-17 · 2026-08-17 09:46 UTC
查看更新说明
🎬 Nowen Video v1.3.0 发布公告
发布日期:2026-08-17 源码:
66ff66dac4d0· 变更范围v1.2.9..HEAD本版本继续围绕媒体管理、播放体验、详情页信息架构、移动端与发布稳定性进行完善。以下内容由本次版本的真实提交自动汇总。
🤖 CI / 发布工程
- docker:report production image footprint
335ca3b
🔧 其他
- docker:slim production runtime image
35586f9
📌 其他变更
- 修复 Docker 运行身份回归测试的 awk 转义
66ff66d - 增加 Docker PUID PGID 冲突回归验证
ff62801 - 兼容镜像改用统一 Docker 入口
811b32e - 正式镜像改用统一 Docker 入口
9bb36d1 - 统一 Docker 运行时用户入口
4c01a7b - 修复兼容镜像 PUID PGID 与系统账号冲突
94aa31f - 修复 Docker PUID PGID 与系统账号冲突
9f93b6e - 文档:同步更新英文 README 当前功能
60e464d - 文档:按当前正式功能更新中文 README
41bfdb3 - 安卓:修复剧集详情观看进度区参数调用
55e2124 - 安卓:修复电影详情媒体信息区参数调用
626fc7d - 安卓:修复个人媒体工作区分页项编译
7c6a04a - 安卓:明确收藏网格与历史列表的分页项作用域
856bb72 - 安卓测试:覆盖剧集续播与下一集选择规则
a2ddc0a - 安卓:让观看历史直接进入续播链路
4ceb344 - 安卓:重构收藏与观看历史个人媒体工作区
b212865 - 安卓:重构剧集详情并接入真实续播进度
96ecc35 - 安卓:扩展观看历史查询以支持剧集续播
dc724bd - 安卓:重构电影详情为原生详情工作区
176a5f1 - 安卓:新增原生影视详情工作区组件
5dcfdad
📦 本次发布渠道
- Docker:
cropflre/nowen-video:v1.3.0 - Docker stable:
cropflre/nowen-video:latest - Android APK:
nowen-video-android-1.3.0.apk - Android AAB:
nowen-video-android-1.3.0.aab - 飞牛 fnOS:
nowen-video-1.3.0.fpk
⬆️ 升级说明
- Docker 用户建议固定版本标签升级,确认运行正常后再跟随
latest。 - 飞牛 fnOS 用户可在应用中心使用本版本
.fpk覆盖安装,持久化数据目录不会随应用包替换。 - Android 用户直接安装本版本 APK;AAB 用于应用商店或后续渠道分发。
- 升级前建议备份
/data,尤其是跨多个版本升级时。
✅ 发布完整性
本 Release 只有在 Server CI、Release Contract、客户端正式候选构建、Docker 远端 manifest、Git tag、GitHub Release 资产以及各渠道校验全部通过后才会被发布脚本判定为成功。
- docker:report production image footprint
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Nowen Video(弄文影视)是基于 Go + React + SQLite + FFmpeg 构建的家庭媒体平台,面向 NAS、家庭服务器和自托管用户。
它提供从 媒体扫描、元数据刮削、影视库管理、详情浏览、搜索、收藏与历史,到直接播放、Remux、按需 HLS 转码、字幕和多端访问 的完整链路,并持续围绕长期稳定运行、低维护成本和跨端体验进行优化。
产品说明:Nowen Video(弄文影视)当前只有一个对外正式服务端。历史上的 Lite / Full 产品区分已经退出正式产品体系;旧兼容运行时只保留用于迁移、回滚和历史验证。详见 服务端架构说明。
📸 功能截图
当前界面覆盖桌面端与移动端,并提供日间与夜间模式。首页聚合 Hero 推荐、继续观看、为你推荐、最近添加和类型分区;影视库支持分类切换、筛选、排序、网格 / 列表视图与分页;详情页提供播放、收藏、加入片单、字幕、精彩片段、演职员、相似推荐、技术规格和评分等完整信息。
✨ 核心特性
🎬 媒体库与刮削
- 自动扫描 MKV / MP4 / AVI / MOV / WebM / TS / RMVB 等常见媒体文件
- 基于 FFprobe 获取媒体轨道、编码、时长等基础信息
- 支持 NFO、外挂字幕、文件监听和媒体资源刷新
- 支持 TMDb、豆瓣、TheTVDB、Bangumi、Fanart.tv 等元数据来源
- 自动识别常见电影、剧集与季集命名结构
- 支持电影合集、剧集导航和媒体详情工作区
▶️ 播放、Remux 与转码
- 服务端统一播放规划器,根据客户端和媒体能力选择 直接播放 / Remux / 按需 HLS 转码
- 播放失败时提供自动降级路径,减少手工切换
- Docker 正式镜像内置 FFmpeg 8.1.2
- 支持 Intel / AMD
/dev/dri硬件加速环境,并保留软件转码兜底 - 转码任务具备持久执行状态、缓存产物、校验、恢复与清理机制
- 播放器支持字幕、倍速、剧集切换等常用播放控制
✨ 本地媒体分析与精彩片段
- 支持本地媒体分析任务与实时进度事件
- 支持稀疏两阶段精彩片段分析,降低无意义的全量处理
- 支持精彩片段独立 Tab 与精彩片段播放模式
- 动态预览按需生成并可持久化,避免一次性生成大量无用资源
- 分析完成后可刷新详情页相关媒体素材
本地媒体分析属于持续演进中的能力,不要求所有媒体都预先完成分析后才能正常浏览或播放。
🎨 Aurora / Neo Glass 影视界面
- 首页、影视库、搜索、收藏、播放历史、详情页与播放器逐步统一到 Aurora 视觉体系
- 桌面端提供可折叠侧边栏,移动端提供底部主导航,并适配日间 / 夜间主题
- 首页提供 Hero 推荐轮播、继续观看、为你推荐、最近添加和按类型浏览等内容分区
- 影视库支持分类切换、筛选、排序、网格 / 列表视图与分页浏览
- 媒体详情页支持独立背景图、Hero 轮播、状态侧栏与真实 Tab 导航
- 详情页整合精彩片段、演职员、相似推荐、技术规格和评分区域
- 收藏、历史和继续观看使用统一媒体工作区
- 侧边栏支持折叠,播放器控制层采用统一玻璃拟态视觉
- 针对长标题、空状态、窄屏和高密度媒体库持续优化布局
🔤 字幕
- 外挂字幕扫描与播放选择
- 内嵌字幕轨道处理
- 在线字幕搜索
- Web / 桌面 / Android 播放端共享字幕相关接口能力
👨👩👧👦 用户与个人空间
- JWT 登录认证与 bcrypt 密码存储
- 首个注册用户自动成为管理员
- 独立收藏、观看历史、继续观看与播放进度
- 媒体库权限与内容分级能力
- 统一任务中心展示扫描、刮削和转码维护任务的状态、进度与生命周期
🌐 远程存储与可选能力
- WebDAV / Alist / S3 等远程存储能力按配置启用
- AI 相关能力按配置和实际运行状态启用,不作为默认常驻组件强制启动
- WebSocket 用于任务和媒体分析等实时进度事件
🛡️ NAS 与长期运行
- SQLite WAL 持久化
- Alpine Docker 正式镜像
/data与/cache独立持久化- 支持 PUID / PGID 运行身份
- 容器健康检查
- 针对转码缓存、任务恢复、资源边界和长期运行场景进行专门治理
🚀 快速开始
一、Docker 部署(推荐)
直接使用 Docker Hub 正式镜像:
docker run -d \
--name nowen-video \
-p 8080:8080 \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-v $(pwd)/data:/data \
-v $(pwd)/cache:/cache \
-v /path/to/media:/media:ro \
--restart unless-stopped \
cropflre/nowen-video:latest
如果需要 Intel / AMD 硬件加速,在 Linux / NAS 环境中额外透传 /dev/dri:
--device /dev/dri:/dev/dri
启动后访问:
http://你的主机IP:8080
首次注册的用户会自动成为管理员。
二、Docker Compose
services:
nowen-video:
image: cropflre/nowen-video:latest
container_name: nowen-video
ports:
- "8080:8080"
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
- ./data:/data
- ./cache:/cache
- /volume1/Media:/media:ro
devices:
- /dev/dri:/dev/dri
restart: unless-stopped
没有硬件加速需求时可删除
devices段。
JWT Secret 未显式配置时,服务端会在首次启动时自动生成随机密钥并持久化到数据目录;如有统一密钥管理需求,也可以通过 NOWEN_SECRETS_JWT_SECRET 显式指定。
三、NAS / 生产环境部署
仓库根目录的 docker-compose.deploy.yml 是面向 NAS 与长期运行场景的完整配置,
包含转码设备透传、挂载目录权限和远程存储(FUSE)的配置示例。
使用前请修改媒体路径,并按宿主机实际情况调整 devices:没有 /dev/dri 或
/dev/fuse 时删除对应映射;不使用硬件加速或 FUSE 时无需映射相应设备。然后:
docker compose -f docker-compose.deploy.yml up -d
飞牛 OS 图形界面用户:Docker → Compose → 上传该文件即可;也可以在「镜像」里直接拉
cropflre/nowen-video:latest,再用 GUI 创建容器。 推荐直接使用预构建镜像。也可以在资源足够的 NAS 上从完整仓库构建; 只下载 compose 文件不包含构建所需的 Dockerfile 和源码。
Emby / Jellyfin 兼容接口默认开启,Hills、Yamby 等客户端可手动填写服务器地址连接。
如需关闭,设置 NOWEN_EMBY_ENABLE_COMPAT=false。局域网自动发现还需要 UDP 7359
端口和可达的广播网络;Docker bridge、跨网段或反向代理环境中建议手动填写地址。
四、源码构建
环境要求:Go 1.25、Node.js 20+、FFmpeg
git clone https://github.com/cropflre/nowen-video.git
cd nowen-video
go mod download
cd web && npm ci && cd ..
# 正式服务端开发模式
make dev
# 前端开发服务器(另开终端)
make dev-web
# 生产构建
make build
./bin/nowen-video
make build、make dev 与默认 Dockerfile 都对应同一个 Nowen Video(弄文影视)正式服务端。
📱 客户端与平台
Web
Web 是 Nowen Video(弄文影视)的主要管理与观影入口,提供媒体库、搜索、详情页、播放、收藏、历史、继续观看、任务状态与管理功能。
🖥️ Desktop
桌面客户端基于 Tauri 2.0 + libmpv,面向 Windows / macOS / Linux,并支持 Web <video> 与原生 mpv 双播放内核。
在本地播放环境下可覆盖 MKV、HEVC、AV1、HDR、杜比视界、DTS、TrueHD、Atmos 等 Web 浏览器不擅长的媒体场景。
📱 Android
仓库根目录 android/ 是唯一正式 Android 客户端:
- Kotlin + Jetpack Compose
- Media3
- Hilt
- Retrofit / OkHttp
- Paging 3
- WorkManager
- Android Keystore
- 最低 Android 8.0 / API 26
- targetSdk API 35
- applicationId:
com.nowen.video
项目不再维护 V1 / V2 两套 Android 产品。
旧 V1 与当前正式版可能使用不同签名。已安装旧版且签名不一致的设备可能需要先卸载再安装;后续正式版本将持续使用当前生产签名进行覆盖升级。
🐮 飞牛 fnOS
Nowen Video(弄文影视)已具备正式 fnOS .fpk 构建与发布链路,包括应用资源、Docker Project、桌面入口、安装 / 升级 / 卸载生命周期、权限声明与 fnpack 校验。
正式发布版本可从 GitHub Release 获取对应 .fpk 安装包。
📦 发布渠道
正式版本统一覆盖:
- Docker Hub:
cropflre/nowen-video:<version>/cropflre/nowen-video:latest - Android:APK / AAB
- 飞牛 fnOS:
.fpk - GitHub Release:源码、版本说明及对应发布资产
发布流程会校验 Server CI、Release Contract、客户端正式候选构建、Docker 远端 manifest、Git Tag、GitHub Release 资产和渠道产物完整性。
⚙️ 配置说明
配置加载顺序(后者覆盖前者):
1. 内置默认值
2. config.yaml
3. 数据目录中的 config.yaml(保存设置时的回退副本)
4. config/*.yaml 等部署分片
5. 数据目录中的 config/*.yaml(通过管理界面保存的分片)
6. NOWEN_* 环境变量
常用配置:
| 配置 | 默认值 | 说明 |
|---|---|---|
PUID / PGID | 镜像内默认用户 | 容器运行 UID / GID |
TZ | Asia/Shanghai(正式镜像) | 时区 |
NOWEN_APP_PORT | 8080 | HTTP 服务端口 |
NOWEN_APP_DATA_DIR | /data | 数据目录 |
NOWEN_DATABASE_DB_PATH | /data/nowen.db | SQLite 数据库路径 |
NOWEN_CACHE_CACHE_DIR | /cache | 转码与任务缓存目录 |
NOWEN_LOGGING_LEVEL | info | debug / info / warn / error |
NOWEN_SECRETS_JWT_SECRET | 自动生成 | 可选,自定义 JWT 签名密钥 |
config/ 目录下常用分片:
| 文件 | 用途 |
|---|---|
app.yaml | 端口、调试、路径、FFmpeg 位置 |
database.yaml | SQLite 路径、WAL、连接池 |
secrets.yaml | JWT 密钥、第三方 API Key |
logging.yaml | 日志级别、格式、轮转 |
cache.yaml | 转码缓存与清理策略 |
ai.yaml | AI 提供商与模型配置 |
不要把真实 Token、API Key、JWT Secret 或私人服务器地址提交到 Git。
🏗️ 技术栈
后端:Go 1.25 · Gin · GORM · SQLite (WAL) · Zap · Viper · gorilla/websocket · fsnotify · FFmpeg 8.1.2
Web:React 18 · TypeScript · Vite · Tailwind CSS · Fluent UI · Framer Motion · Zustand · HLS.js · React Router
Desktop:Tauri 2.0 · Rust · WebView · mpv / libmpv
Android:Kotlin · Jetpack Compose · Media3 · Paging 3 · WorkManager · Hilt · Retrofit · Android Keystore
部署:Docker (Alpine) · Docker Compose · 飞牛 fnOS
🗺️ 当前演进方向
- ✅ 单一正式服务端产品身份
- ✅ 直接播放 / Remux / HLS 转码与自动回退
- ✅ 持久转码执行状态、Lease、恢复与产物治理
- ✅ Aurora / Neo Glass Web 视觉体系
- ✅ 本地媒体分析与精彩片段能力
- ✅ Android 模块化正式客户端
- ✅ Docker / Android / fnOS / GitHub Release 统一发布流程
- 🚀 持续优化播放稳定性、字幕体验、跨端一致性、媒体分析和 NAS 资源效率
💬 交流与反馈
- QQ 群:
1093473044 - GitHub Issues:欢迎提交 Bug、功能建议与兼容性反馈
- 提交问题时请勿公开 Token、密钥或私人服务器地址
☕ 赞赏支持
如果这个项目对你有帮助,欢迎请作者喝杯咖啡 / 买个键盘 / 修个 Bug 🙏
也欢迎关注微信公众号「Nowen 开源实验室」,获取项目动态与开源实践分享。
📜 开源协议
本项目采用 GNU General Public License v3.0(GPL-3.0)开源协议发布。
你可以自由运行、研究、修改和分发本软件。基于本项目的派生作品在对外分发时必须遵守 GPL-3.0,并保留相应版权与许可证声明。本软件按“原样”提供,不附带任何明示或默示担保。