Releases: yang1245789/fpk-converter
Releases · yang1245789/fpk-converter
v1.0.51
修复
- 串行队列等待语义修正:300 秒稳定等待从文件入队时间(
queued_at)开始计算,而不是从 worker 取出文件时重新计算。多个文件同时入队时,后续文件如果已经在队列中等满 300 秒,轮到它时会直接开始转码,不再额外等待。
改动文件
app/fpkconverter/fpk_converter.py:_serial_worker中wait_start = time.time()改为wait_until = queued_at + TRANSCODE_DELAYtests/test_fpkconverter_flow.py:新增test_queued_file_wait_time_counts_from_enqueue_not_worker_start(第 55 个测试)manifest/README.md:版本号升至 1.0.51
v40 - 直接打开授权目录
修复内容:
- 当飞牛只授权子目录(如 /vol3/1000/PORN)时,根目录也能看到这些已保存的监控目录入口,无需逐级浏览父级。
- 浏览弹窗新增手动输入栏,可直接打开输入的完整路径。/api/browse 即使父级 listdir 无权限,也可在叶子目录返回空列表允许选择。
- 保留系统目录屏蔽和资源限制策略。
- 全量 31 项测试通过;安装包继续使用官方 fnpack 构建。
v39 - 动态发现飞牛卷并提高扫描深度
修复内容:
- 撤销 v38 的固定 /vol1 到 /vol9 显示逻辑,改为动态发现实际存在的 /vol* 和 /volume* 卷目录。
- 如果系统只有 /vol1 到 /vol5,UI 只显示这 5 个,不再显示不存在的 /vol6-/vol9。
- 保留系统目录屏蔽策略,仍不显示 /proc、/sys、/dev、/etc、/usr、/var、/run。
- 转码扫描深度从 3 提高到 5,适配 /vol3/1000/PORN 这类更深路径。
- 新增回归测试:动态卷发现只显示存在卷,启动配置 max_depth 必须为 5。
- 全量 29 项测试通过;安装包继续使用官方 fnpack 构建。
v38 - 显示飞牛卷入口
修复内容:
- 根目录浏览固定显示 /vol1 到 /vol9 作为飞牛卷入口,解决有权限的 /vol3/1000/PORN 在 UI 中找不到的问题。
- 保留系统目录屏蔽策略,仍然不会显示 /proc、/sys、/dev、/etc、/usr、/var、/run。
- 允许手动保存 /vol3/1000/PORN 这类飞牛卷路径。
- 新增回归测试:根目录必须显示 /vol3,/vol3/1000/PORN 必须可保存。
- 全量 29 项测试通过;安装包继续使用官方 fnpack 构建。
v37 - 严格限制危险路径和资源占用
修复内容:
- 严格禁止浏览、保存、启动监控系统目录:/bin、/boot、/dev、/etc、/lib、/proc、/root、/run、/sys、/usr、/var 等。
- 根目录浏览只显示常见媒体/挂载入口,避免误点系统目录。
- 保存配置遇到危险路径会直接返回错误,不再静默忽略。
- 启动前再次验证监控目录,防止配置文件被手工篡改后启动。
- CRF 限制为 18-32,线程数限制为最多 4,并写入 ffmpeg -threads。
- 系统停止 Web 服务时也清理转码进程组,降低 ffmpeg 残留风险。
- 新增安全边界测试,全量 27 项测试通过;安装包继续使用官方 fnpack 构建。
v36 - 修复浏览保存按钮失效
修复内容:
- 修复页面 JavaScript 字符串转义错误,解决“点击浏览没反应”和保存按钮异常问题。
- 新增首页 JavaScript 语法回归测试,使用 node --check 检查实际渲染脚本。
- 保留 v35 官方 fnpack 打包流程和包有效性测试。
- 全量测试 20 项通过,安装包使用官方 fnpack 构建,包内无 pycache/.pyc。
v35 - 使用官方fnpack修复无效安装包
修复内容:
- 废弃手工 tar 打包路径,新增 scripts/build_fpk.sh,统一使用官方 fnpack build。
- 构建前自动清理 pycache 和 .pyc,避免测试缓存进入安装包。
- 新增 tests/test_package_validity.py,验证 fnpack 可用、源目录必需文件、外层 fpk 结构、内层 app.tgz 结构、无 Python 缓存。
- 修复测试隔离问题,避免 monkeypatch subprocess 污染后续测试。
- 保留 v34 的 UI 转码进程/错误日志展示。
v34 - UI显示转码进程和错误日志
修复内容:
- UI 新增转码进程面板,显示 PID、运行时长、当前文件、当前状态。
- UI 新增最近错误和最近转码输出,直接读取 converter.log。
- /api/status 返回 process 和 recent_log,方便前端实时刷新。
- 增加自动化测试覆盖 UI 按钮、状态接口、进程信息、错误日志展示。
- 保留前序鲁棒性修复:无缓冲日志、停止进程组、QSV失败降级、MKV不加faststart、安全临时文件名。
v1.0.50 旧转码进程清理版
v1.0.50 修复内容:
- 修复升级后旧 start_converter.py 转码子进程可能继续残留的问题。
- 新版启动前会扫描并终止本应用遗留的旧转码子进程,避免旧版本继续写日志、继续按旧权限/旧参数转码。
- 如果清理到旧进程,web 进程日志会输出“已清理遗留旧转码进程: [...]”。
- 启动日志会显示“视频转码核心版本: 1.0.50”,用于确认当前实际运行版本。
- 保留 v49 等待期间重复入队修复、v48 源片色彩参数保留、v47 启动前功能自检、v46 Root 硬件转码、飞牛 mediasrv QSV 环境。
- 测试:54/54 通过。
升级建议:安装 v1.0.50 后,先点击停止,再点击启动;如果日志第一屏没有“视频转码核心版本: 1.0.50”和“=== 启动前功能自检 ===”,说明仍在看旧日志或旧进程。
v1.0.49 等待期间重复入队修复版
v1.0.49 修复内容:
- 修复同一个文件在 300 秒稳定等待期间被定时扫描重复加入队列的问题。
- 新增等待/处理中集合:文件从队列取出后直到等待、转码、失败处理结束前,扫描器再次发现同一路径会输出“文件已在等待或处理中,跳过重复入队”。
- 避免等待时间看起来被重新计算,避免队列数量异常增长。
- 启动日志新增“视频转码核心版本: 1.0.49”,方便确认当前实际运行的是新版进程。
- 保留 v48 的源片色彩参数保留、v47 启动前功能自检、v46 Root 硬件转码、飞牛 mediasrv QSV 环境、强制 GPU 不 CPU 降级、日志轮转。
- 测试:53/53 通过。
注意:如果日志里没有“视频转码核心版本: 1.0.49”“启动前功能自检”“保留源片色彩参数”,说明仍有旧进程在运行或安装后未重启应用。请先停止应用,再升级并重新启动。