github JuneYaooo/rea-video v0.1.0

one hour ago

视频拆解标准包 Reel,报告重写,音效单独分离

这一版定下了视频拆解的标准包格式:拆片包(Reel)。拆一条视频现在得到两样东西:给人看的报告(HTML / PDF),和给模型、下游项目读的拆片包。格式介绍和规范见 docs/reel.md。

拆片包 Reel

  • 四层逐级展开:卡片 → 概览和地图 → 时间线(一行一镜)→ 单镜文件,最后才是完整数据。一条 3 分钟口播读到概览约 2k token,完整数据约 19 万 token。
  • 每个文件开头写着自己的 token 数;看到的和推断的分开写,时间线里推断的键名带 ~。
  • 字段有 JSON Schema(rea_video/reel.schema.json)。rea-video reel out/ref --check 检查一个目录是否合格,reel.read() 读出结构化数据。
  • 拆解时自动生成;旧的输出目录用 rea-video reel out/ref 补出来。

给人看的报告

  • 从上往下:一句话结论 → 核心看点(开头怎么抓人、能火的几处做法,写明第几秒)→ 画面 / 包装 / 声音三层 → 叙事线 → 分镜表 → 照着复刻的步骤和每步细节 → 参考细节。每样信息只出现一次。
  • 分镜表每镜分「画面里看得到的」和「工具推断的制作方式」。
  • 判断依据写明是谁看的:工具测量、看图模型、AI 助手看图复核、用户纠正。
  • rea-video pdf out/ref 用本机 Chrome 打印成 PDF;正文折叠内容展开,时间轴、逐镜取证这类查阅数据保持折叠。

复刻方案

  • 每个 AI 生成单元写明要喂什么:首帧、尾帧、参考图、参考视频,各自从哪来、为什么要。首尾帧和参考素材不能放进同一个请求的模型(如 Seedance 2.x),每个单元只选一种:要保住商品和人物长相时用参考图,只锁构图时用首尾帧。
  • Seedance 2.0 的能力补全:一次能出多个镜头,参考图 9 张、参考视频和音频各 3 段,时长 4–15 秒。默认按它规划,不再换成 2.5。能力地图新增 exclusive_inputs 字段。
  • 同一段成片在片中用了两次(开头先放预告、结尾完整放)时,只生成一次,剪辑时放到两处。
  • 拍摄场次和生成单元优先按看图认出的场景分组,特写和中景不会因为颜色不同被拆开。

声音

  • 音效单独分离:新增对白 / 音乐 / 音效三轨分离(BandIt v2),音效从音效轨上找,不再在混音里找突然变响的点,人声的爆破音和配乐的鼓点不会再算成音效。在混了 12 个已知音效的 60 秒口播上,找到的从 1 个变成 8 个。
  • 听起来一样的音效合并成一种,写明用了几次、在哪几秒;每种能直接试听,试听片段听不到人声和配乐。
  • 只列卡在字幕、贴纸、切镜上的后期音效;画面自带的环境声、动作声不算。

判断

  • 只有 AI 助手看图复核、没有看图模型时,复核的判断可以跳出工具的前两名(融合结果要正是复核选的类别,且这一镜没有 24→30 这类帧率证据)。相机拍真实手机屏幕的画面不会再停在「3D / 代码渲染」。
  • 30fps 文件里每隔一帧重复,不再当成 24fps 素材的证据(那是画面几乎不动)。
  • 复核时列出每镜后期加的字幕,画面里拍到的手机界面、包装上的字不再算成字幕和标注。
  • 看图复核新增三项:核心看点(story)、每镜后期文字(overlay_text)、重复使用的成片(same_clip_as)。

评测

  • 评测摘要新增 by_resolution / by_camera,按分辨率和运镜拆开准确率和误判方向。
  • eval/RESULTS.md 新增「只用 agent 复核」一栏、误判分布,以及全部评测集从头解码重测的结果。只用工具时,文章视频 88.6% → 96.5%,带货 46.4% → 63.2%,口播 75.5% → 93.3%,没有一组下降。

剪辑包装跟着台词走

口播、带货这类片子,画面里的字幕、花字、贴纸大多跟着说的话出现。这一版把包装层和台词对上,复刻时生成模型只出干净的画面,包装层后叠。

拆解

  • 按台词定位:花字、标题、贴纸落在哪句字幕上,句中第几秒,有没有重复句里的词(「五折」花字落在「全场五折」这句上)。换文案时按句子放,不按原秒数。只认说话那一条字幕;画面里的字、OCR 杂讯不参与。
  • 常驻图层:跨切镜不变的免责声明、标题栏、角标单独列出,同一段文字多次出现合成一个,复刻时整段叠一次。
  • 竖排小字导出 ASS 时按竖排输出,字号不超过测得的文字框。

复刻

  • remake-plan:首尾帧上带着原片字幕、花字或贴纸的镜头,任务里标出 overlays_in_frames 并提醒先擦掉再生成,--dry-run 会打印出来。
  • 复刻方案里,生成单元镜头上有包装层时多一条说明:包装层不写进提示词,生成后叠回。
  • assemble --overlays:把测得的字幕、花字、标题按原样式叠到换掉的镜头上,原片占位的镜头不重复叠;贴纸列在 assemble_log.json 里。

切点检测

剪辑节奏复刻靠切点。切点漏了,镜头时长、卡点、复刻时间轴都会跟着偏。这一版重写了切点判断,复刻时生成片段按整段变速对齐原镜头。

切点

  • 跳剪 / 推近切:同机位、同背景,人物位置或景别在一帧内跳变,变化面积小,以前抓不到。现在看这一帧的变化是否远高于前后几帧,并确认前后都平稳、画面没有回到切之前。口播和手持开箱里大量这种切点。
  • 闪光、枪口火光、频闪:一两帧内变亮又恢复原样,不算切点。闪白转场褪去后露出新画面,仍算切点。
  • 挨得很近的几处边界(闪光紧挨着真切点、一帧残影、甩镜)只保留最强的一处,不再只认第一处。
  • 两刀干净硬切之间画面稳定的短镜头,最短保留 0.12 秒(快剪里的插入镜头、开头封面帧),以前不到 0.35 秒都会被并掉。
  • 短镜头里只出现一帧重复,不再当作 24fps 转制的证据,短实拍镜头不会因此被判成 AI。

复刻

  • assemble 把生成片段整段变速塞进原镜头时长(最多快 3 倍、慢 1.25 倍,超出部分再裁)。生成模型有最短时长,以前只截前几秒,动作做一半就切走,节奏偏慢。

评测

  • eval/koubo.yaml、daihuo.yaml、film.yaml、articles.yaml 给 9 条片子加了逐帧人工标注的切点真值(cuts),看不准的位置放在 cuts_uncertain,检测到也不算错。评测输出新增切点汇总(找到 / 漏掉 / 误报)。
评测集 切点召回 切点精确率
口播(2 条) 71% → 91% 89% → 90%
带货(2 条) 44% → 94% 79% → 87%
影视混剪(4 条) 93% → 98% 93% → 98%
手机实拍带货(1 条) 83% → 92% 100% → 100%
合计 79% → 95% 91% → 94%

制作方式准确率在本地还找得到的部分样本上(不是全集):labels / holdout / holdout2 为 100% → 99.2% / 99.5% → 99.7% / 100% → 100%。全集的数字见 eval/RESULTS.md。

速度和消耗

切得更细以后镜头变多(评测集整体 +14%),这一版同时把逐镜的开销压下来,拆解时间和 VLM 调用次数都没有因此上涨:

  • 镜头上的文字直接取剪辑包装层整片 OCR 那一遍的结果,不再每个镜头另读 4 帧;整片 OCR 太稀(长视频)或关掉包装层时,按镜头时长读 1–4 帧。
  • 全分辨率首尾帧(复刻的首帧参考)在后台抽取,和下一个镜头的计算并行。
  • 跳剪连起来的几段是同一条素材剪开的,报告里标为「跳剪」。开 VLM 时合成一个片段问一次(最长 12 秒、最多 8 段):制作方式和拍法整段给一次,每段的内容描述和复刻提示词分开给。复刻计划里这几段照常合成同一个生成单元。
  • VLM 调用次数到上限(60 次)时,优先给工具最拿不准、时长最长的镜头,不再只取前 60 个。
片子(不开 VLM) 切点优化前 切点优化后 提速后
72 秒开箱 29 镜 100 秒 68 镜 173 秒 68 镜 104 秒
166 秒口播 62 镜 224 秒 69 镜 229 秒 69 镜 206 秒

镜头的制作方式判断、真实素材判断和字幕时间轴与提速前一致(全部评测集逐条对比)。开 VLM 时:开箱片 68 个镜头只需 24 次调用(按镜头调要到 60 次上限,最后 8 个镜头拿不到 VLM);夜景口播 69 个镜头 57 次,全部镜头都有 VLM 结果。

已知局限

  • 手机录屏里的界面滑动、翻页动画仍会被当成切点。
  • 切得更细后,暗光口播叠截图、3D 毛绒角色的短镜头有时会判错制作方式。

Don't miss a new rea-video release

NewReleases is sending notifications on new releases.