Communitygithub.com

eksinge/video-workbench

使用 Remotion 和 HyperFrames 创建或编辑本地视频。将音频与未定时 MD/TXT 歌词或带时间戳字幕转换为带验证歌词 MV,采用用户连续滚动、字形遮罩进度样式。同时保留集成的通用视频工作流程。

video-workbench 是什么?

该技能(Skill)是一个统一的视频工作台,集成了 Remotion 和 HyperFrames 引擎。它允许用户通过 AI 助手直接在本地创建或编辑视频,特别是从音频和歌词(MD/TXT/SRT/LRC/VTT 格式)生成带验证的歌词 MV。其核心特色是一种连续滚动的“传送带”式字幕样式,歌词行在橙色进度条区域以字形遮罩方式逐渐显示和隐藏,而非传统的淡出效果。该技能支持 Remotion(基于 React 的确定性渲染)和 HyperFrames(基于时间线的可查找运行时)两种引擎,并通过共享媒体文件(如 MP4、WAV、字幕 JSON)实现互操作,但源代码迁移需用户明确要求。此外,它还包含一套完整的工作流程管理功能,如歌词时间轴对齐、字幕编译和视频渲染,并严格限制每个项目仅保留最新三个版本。此技能适用于 Cursor、Claude Code 等支持 AI 代理的 IDE 或聊天界面,但不包含云端生成额度或 AI 模型。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/eksinge/video-workbench/tree/HEAD/skills/video-workbench

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

视频工作台

这是 Remotion + HyperFrames 的统一入口 Skill。保留官方引擎和官方 Skills,整合本地工作台、素材、预览和渲染。网页按钮直接运行本地程序;是聊天里的 AI 读取本 Skill 后操作工具,网页不会自动读取或执行 Skill。

输入音频和字幕后直接制作

用户提供歌曲及 MD/TXT/SRT/LRC/VTT 时,先读 歌词 MV 流程 和 当前字幕样式规范。仅有音频而缺歌词时,不自行补写歌曲歌词;继续做画面/音频分析,再索取缺少的歌词。

  • MD/TXT 每一个非空物理换行就是一句,逐行保留文字和顺序,不能按逗号合并或自行拆句。音符 ♪ 也属于文字。
  • MD 无时间戳时,AI 根据实际音频对齐并审核;同时提供的带时间戳文件和音频内嵌歌词只作校时参考,以用户指定的分句文件为文字依据。不能按字数平均分配演唱时间。
  • 新 MV 画面仍按下方 Remotion / HyperFrames 路由制作;字幕默认严格使用当前最终样式。早期的单句消失、两行合并、0.42 秒阶梯滚动和可见橙色大矩形均已被替代。
  • 默认字幕:1920×1080 坐标系,Barlow Black 42,米白 #F0ECE5,右对齐 x=1830,行距 40px,透明底、无阴影无描边。通用时间偏移默认为 0 秒,按实际音频和用户反馈调整,只应用一次。此前提前 0.6 秒仅属于参考歌曲项目,不能套给其他歌曲或用户。
  • 整段歌词作为一条刚性传送带持续上移;速度按每句实际演唱时长调整,短换气连续,明显无词间隔暂停。旧句保留,橙线高度处逐渐露出,白线高度处逐渐裁掉,使用空间裁切而非淡出。
  • 原橙色进度区域只在歌词及音符的字形内部显示;字孔、行间和字外透明。保留 #E85D26、50% 叠色、由下向上增长的进度逻辑。六组参考图案及未来新增的所有画面均在歌词层下方。
  • 新歌曲的内容、总长度、节奏与画面由实际素材决定,不把上一首歌的 62 行、130 秒切点或六组图案硬编码成所有项目的要求。参考曲进度恰为 240 秒;新曲默认随实际总长填满,可显式固定 240 秒。

可复用工具(路径相对本 Skill):

  1. scripts/align_lyrics.py:本地音频 + 无时间戳歌词 + 可选时间戳参考 → 原始校时提案和审核标记;不会自动把提案冒充已审核结果。
  2. scripts/compile_lyrics.py:已审核的逐行时间 JSON → 当前样式 ASS、SRT、传送带状态与字形测量记录。
  3. scripts/render_video.py:本地引擎画面 + 音轨 + 编译结果 → 验证后的成片,可登记并只保留该项目最近三个版本。

参数及文件格式见 脚本接口。依赖本机 FFmpeg;本地对齐另需 Faster Whisper 和已有模型。Skill 不包含模型、FFmpeg 或 Node 引擎运行时,不代表已经获得云端生成额度。

修改现有项目与保留三个版本

先确认用户实际播放的文件和最新版本。只改明确要求的项目与参数;保留原画面、音轨、镜头节奏和既有样式,除非这次明确要求改变它们。字幕编辑优先重新合成独立字幕层,复用已验证的底层画面,不重绘全部动画。

用户要求“再提前 0.2 秒”时,在当前累计偏移上相加,不回到原始版本或重复应用默认偏移。左右边界使用 x,上下高度使用 y;用户称错轴但几何意图明确时,说明解释并按实际方向执行。文字 y 随滚动改变,不声称它有唯一固定 y。

每个项目只保留最新版、上一版、上上一版共三个成片导出。 新版生成、解码及内容检查通过后,再清理更旧的该项目导出和对应过时预览;保留原始素材、字幕源、工程和对齐证据。若待删导出还是工程依赖,先归入素材并修正引用。按导出登记顺序保留,禁止按整个文件夹的修改时间随意删其他项目。细则见 歌词 MV 流程。

本对话相关要求及被替代版本见 用户要求记录,用于理解继承关系,不能把被替代参数重新启用。

确认现有项目

阅读 local-workspace.md 了解已安装的工作区和命令。在编辑前打开用户的当前源文件,因为 Studio 和其他会话可能会独立保存更改。

  • 现有 Remotion/React 源:保留 Remotion,阅读 ../remotion-best-practices/SKILL.md 及匹配的领域技能。
  • 现有 HyperFrames HTML 源:保留 HyperFrames,阅读 ../hyperframes/SKILL.md 及匹配的领域技能。
  • 全新的音乐/歌词/节拍同步视频:优先使用 HyperFrames,搭配 ../music-to-video/SKILL.md,除非用户选择了 Remotion。
  • 全新的 React 驱动数据动画、可复用 React 视频组件或 Remotion 应用:使用 Remotion。
  • 对于其他全新工作,根据请求的输出使用 capabilities.md 选择。遵循明确的引擎选择。
  • 源码迁移与媒体复用是分开的。仅在收到明确的源码移植请求时使用 remotion-to-hyperframes。不要承诺源码格式之间的自动往返转换。

通过媒体连接引擎

使用共享的脚本、故事板、节拍/乐句时间、字幕时间戳和本地媒体。保持源文件在其原生框架中可编辑。根据需要交换 MP4/WebM/MOV、图像序列、WAV、图像和字幕 JSON/SRT。复制或暂存源媒体;不要替换用户的原始文件。

本地验证演示将 Remotion 项目渲染为 MP4,将该文件及其 SHA-256 值放入 bridge-manifest.json,并将其放置在 HyperFrames 时间线中。这是一个媒体互操作性的示例,而非源代码转换器。

保持时钟独立:Remotion 使用 useCurrentFrame() 及其确定性 React API;HyperFrames 使用 hyperframes-core 描述的可查找运行时和时间线。在创作前阅读活动引擎的规则;不要盲目移植引擎特定的限制或语法。

逐步使用完整的技能库

仓库安装会安装所有 33 个固定的官方技能及其支持文件;在声称它们已准备好之前,请验证它们的存在。查阅能力映射,然后完整阅读选定的技能及其相关参考资料。索引不能替代工作流程的详细说明。避免将不相关的工作流程加载到狭窄的编辑中。

对于 MV 工作,确定音乐来源和期望的视觉风格。在选择剪辑之前分析实际音轨。在平静的音乐上优先使用乐句和能量,在真正有节奏的音乐上优先使用节拍锚点。在将歌词呈现为同步之前验证发声时间。当风格未确定时,提供简短的代表性片段。

验证实际交付物

运行所选引擎的检查;检查包含导入视频的帧,并确认导出文件中的音频。一个正常工作的技能安装、通过的医生报告、成功的渲染和用户对视觉效果的批准是不同的声明。仅报告实际已验证的状态。

已安装的技能不提供凭证、云额度、视频生成模型或源素材。需要时使用用户授权的服务。安装这些技能不授权发布、云上传、外部反馈、消息或付费生成;遵循用户的指示和主机的授权规则。使用其包装器时,保持本地集成的遥测禁用环境。

相关技能