项目地址:https://github.com/wyfirstname/REA-Video-UI
引擎上游:JuneYaooo/rea-video
刷到一条爆款视频,想知道它到底怎么做的:哪些画面是 AI 生成的、哪些是实拍、贴纸花字加了多少、BGM 和音效怎么配的------更进一步,能不能照着它自己复刻一条?
开源项目 rea-video 能干这件事,但它是一个 Python CLI,要配环境、敲命令行。于是我做了一个 Windows 桌面客户端 REA Video Desktop:解压即用、点鼠标出报告、支持引擎在线升级。本文用一条真实视频演示完整流程。
一、客户端长什么样
第一步,把视频拖进来。 支持拖拽和文件浏览,自动读取分辨率、帧率、时长:
第二步,选拆解选项。 VLM 视觉理解开关、OCR 语言、包装层检测、人声/BGM 分离、并发数:
第三步,点"开始拆解"。 后台跑 Python 流水线,客户端把引擎日志实时翻译成阶段进度条------镜头探测 → 逐镜分类 → 包装取证 → 音频分析 → 生成报告,随时可以取消:
第四步,看结果。 结论卡 + 制作构成 + 逐镜判定表(带缩略图),可以一键打开完整 HTML 报告:
"运行环境"页负责所有脏活:自动探测本机 Python、一键建独立 venv 装依赖、检测 FFmpeg、下载 AI 模型(自动走国内加速镜像):
其他细节:历史记录页保存每次拆解结果;API Key 用 Windows 凭据(DPAPI)加密存储;引擎可一键从 GitHub 升级到上游最新版(带失败回滚);客户端本体支持 electron-updater 自动更新。
二、实战案例:一条"猫咪婚宴"AI 视频
测试素材是一条 1080p 的宠物剧情号视频(111.6 秒):猫咪婚礼酒席题材,画面细腻得像实拍。它能骗过肉眼吗?
2.1 一句话结论
拆解引擎给出的结论卡:
混合制作:AI 生成视频 99% + 3D 渲染 1%
叠加层:动态贴纸/GIF、花字、文字标注、图形贴片、字幕、标题(代码/剪辑软件合成)
声音:人声 + BGM 126.0BPM(现成曲库配乐)+ 音效 43 处
剪辑包装:花字 2 处、文字标注 63 处、贴纸/动图 14 处、34 个音效卡在文字/贴纸出现上
64 个镜头,平均每个 1.74 秒,转场以硬切为主(cut×61、dissolve×2)。判定置信度 69%(按时长加权),由确定性取证 + VLM 融合得出。
2.2 逐镜取证
引擎把 64 个镜头全部切块取证,每个镜头给出底层画面的制作方式与置信度,汇成一张故事板总览:
抽几个代表性镜头看首帧(标题格式:镜号 · 时间段 · 判定 · 置信度):
| 镜头 | 画面 | 判定 |
|---|---|---|
| #1 · 0.0--5.0s | 橘猫从门缝探头,"婚宴开场" | AI 生成视频(83%)+ 字幕叠加 |
| #20 · 37.3--39.7s | 酒席猫特写 | AI 生成视频(61%)+ 字幕/标注/花字/贴纸五层叠加 |
| #38 · 65.0--65.6s | 硬切短镜头 | AI 生成视频(63%)+ 文字标注 |
| #50 · 82.4--84.3s | 红衣人物与猫 | AI 生成视频(66%)+ 文字标注 |
第 #20、#38、#50 镜首帧(左→右):
有意思的是包装取证:引擎从画面里抠出了 14 处贴纸/动图(比如下面这个叠在猫头顶的表情贴纸),并记录它们出现的时间轴------复刻时可以直接照着对齐:
2.3 音频拆解
音频分析给出:人声占比 29.1%、BGM 126.0BPM、43 处音效,并且用开源模型把音轨物理分离成了三条 stem(原声 / 人声 / 伴奏),每条都是可直接下载的 WAV。下面是波形总览:
2.4 复刻方案(这才是重头戏)
报告不只是"鉴定",还会给出可执行的复刻工单 。本案 64 个 AI 镜头被规划成 18 个生成单元、18 次视频模型调用(按 Seedance 2.5 规划,单次 ≤30s、支持一次多镜头):
| 单元 | 镜头 | 时间 | 时长 | 策略 |
|---|---|---|---|---|
| G1 | #1--#2 | 0.0--6.9s | 6.9s | 一次多镜头,首帧参照原片第 1 镜 |
| G2 | #3--#5 | 6.9--14.5s | 7.7s | 一次多镜头,首帧参照原片第 3 镜 |
| G3 | #6--#8 | 14.5--18.7s | 4.1s | 首帧接 G2 尾帧 |
| G6 | #17--#23 | 33.1--43.0s | 10.0s | 首帧接 G5 尾帧 |
| G10 | #38--#44 | 65.0--73.6s | 8.6s | 一次多镜头,首帧参照原片第 38 镜 |
| G18 | #64 | 105.8--111.6s | 5.9s | 单镜收尾 |
分组规则:同场景、硬切相连的镜头合并为一次生成;单次 ≤30s;在叠化/换场景处切开。声音方面,模型可以同时生成动作音效和环境声,口播建议单独 TTS 再混进去。每个单元都附带首帧参考图路径和衔接策略,照着调 API 就能批量出片。
三、技术实现
- Electron 壳 + Python 引擎 :UI 与编排用 Electron(TypeScript/JS),拆解能力来自上游 rea-video(OpenCV 镜头切分 + 确定性取证 + 可选 VLM + ONNX 音轨分离),引擎代码随包分发在
resources/engine - 零污染运行 :Python venv、模型、输出全部落在程序目录
data/下(绿色版天然便携,不写系统盘、不写注册表) - 国内网络适配:pip 走清华镜像、Electron 走 npmmirror、模型下载自动尝试 gh-proxy 系加速前缀
- 两条独立升级线:引擎升级直接从上游 GitHub 拉最新 tarball 原子替换(实测 80MB 下载+校验+切换);客户端走 electron-updater + GitHub Releases
- 进度翻译:把引擎 stderr 日志解析成 7 阶段加权进度条,逐镜分类阶段还能显示"第 N/64 镜"
四、获取与使用
- 到 Releases 下载绿色包(zip,解压即用)或安装包(exe)
- 双击运行,首次进入"运行环境"页,缺什么点什么:建 venv、装依赖、下模型,全自动
- 回到首页拖入视频 → 开始拆解 → 看报告
系统要求:Windows 10/11 x64,Python 3.10+(没有会引导安装),FFmpeg(可手动指定目录)。
本文所有截图与案例数据均来自客户端真实运行结果;图片以 base64 内嵌,可离线阅读。