HyperFrames Video Entry Point
heygen-com/hyperframes
Entry point for making, editing and rendering videos from HTML compositions with HyperFrames, routing each request to the right workflow.
把一条视频重建成「只有画面和声音」的干净文件——源片的元数据一概不搬: GPS、设备型号、账号 ID、创建时间、章节、GoPro 的遥测轨,全部留在原地。
$ npx skills add eternityspring/reelbench-skills --skill video-scrub -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install eternityspring/reelbench-skills video-scrub --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/eternityspring/reelbench-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/video-scrub .claude/skills/video-scrub && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "video-scrub" agent skill from https://github.com/eternityspring/reelbench-skills/tree/main/skills/video-scrub into .claude/skills/video-scrub/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-scrub", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/eternityspring/reelbench-skills/tree/main/skills/video-scrubType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add eternityspring/reelbench-skills --skill video-scrub -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install eternityspring/reelbench-skills video-scrub --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/eternityspring/reelbench-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/video-scrub .agents/skills/video-scrub && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "video-scrub" agent skill from https://github.com/eternityspring/reelbench-skills/tree/main/skills/video-scrub into .agents/skills/video-scrub/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-scrub", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add eternityspring/reelbench-skills --skill video-scrub -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install eternityspring/reelbench-skills video-scrub --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/eternityspring/reelbench-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/video-scrub .cursor/skills/video-scrub && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "video-scrub" agent skill from https://github.com/eternityspring/reelbench-skills/tree/main/skills/video-scrub into .cursor/skills/video-scrub/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-scrub", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/eternityspring/reelbench-skills.git --path skills/video-scrub--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add eternityspring/reelbench-skills --skill video-scrub -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install eternityspring/reelbench-skills video-scrub --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/eternityspring/reelbench-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/video-scrub .gemini/skills/video-scrub && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "video-scrub" agent skill from https://github.com/eternityspring/reelbench-skills/tree/main/skills/video-scrub into .gemini/skills/video-scrub/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-scrub", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install eternityspring/reelbench-skills video-scrubInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add eternityspring/reelbench-skills --skill video-scrub -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/eternityspring/reelbench-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/video-scrub .github/skills/video-scrub && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "video-scrub" agent skill from https://github.com/eternityspring/reelbench-skills/tree/main/skills/video-scrub into .github/skills/video-scrub/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-scrub", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add eternityspring/reelbench-skills --skill video-scrub -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install eternityspring/reelbench-skills video-scrub --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/eternityspring/reelbench-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/video-scrub .opencode/skills/video-scrub && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "video-scrub" agent skill from https://github.com/eternityspring/reelbench-skills/tree/main/skills/video-scrub into .opencode/skills/video-scrub/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-scrub", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
video-scrub把一条视频重建成「只有画面和声音」的干净文件——源片的元数据一概不搬: GPS、设备型号、账号 ID、创建时间、章节、GoPro 的遥测轨,全部留在原地。
Video Scrub is an agent skill from eternityspring/reelbench-skills. 把一条视频重建成「只有画面和声音」的干净文件——源片的元数据一概不搬: GPS、设备型号、账号 ID、创建时间、章节、GoPro 的遥测轨,全部留在原地。 走的是白名单而不是黑名单:不列要删什么,只说带什么过去(画面一条流、声音一条流), 隐私保证来自结构,不来自枚举。 难点不在容器 tag,在看不见的那几层:x264 把完整编码参数写成 SEI 塞在码流里、 AAC 把版本号写进 DSE、avc1 的 compressorname 里还有一份——ffprobe 一个都看不见。 五个藏身处逐一堵死,每一处都有实测。 默认 --mode copy:画面逐字节照搬(cmp 验证过),只重编音频,53 秒的片子 1.3 秒跑完; --mode encode 完整重编码,多杀掉码流域的东西。 验收不靠声称:把源片所有元数据字符串当「针」,在输出文件里做字节级扫描, 扎到一根就红。12 道门全部由脚本确定性检查。 零依赖、零 API key,只要 node 和 ffmpeg。 Use when asked to 清元数据、去元数据、抹掉视频信息、视频隐私、去水印信息、 strip video metadata、remove…
Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `README.en.md`, `README.md` and `references/profiles.md`).
It sits in Media & Creative, covering Video production and AI video generation. It works with FFmpeg. The repository describes itself as: Learning notes and tooling skills for AI video - AI 视频相关的学习与工具 skill. The licence is Apache-2.0.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 1b51af8. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditBashGlobFrom allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
nodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Video Scrub loads about 1.3k tokens when it runs, and up to ~3.9k if it reads all its reference files. Until then it costs about 144 tokens; SKILL.md has 319 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Write, Edit, Bash, GlobAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from eternityspring/reelbench-skills at commit 1b51af8, republished under its Apache-2.0 licence (© eternityspring). 319 words, ~1,292 tokens.
.claude/skills/video-scrub/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.把一条视频重建成干净文件:画面和声音带过去,元数据一个字节都不带。
{baseDir} = 本文件所在目录。脚本 {baseDir}/scripts/video-scrub.mjs,零依赖,node 直接跑。
清元数据有两种思路,差别是死活:
| 怎么做 | 问题 | |
|---|---|---|
| 黑名单 | 列出要删的字段逐个删(exiftool 那种) | 删不完你不知道的东西——厂商私有的 udta、GoPro 的遥测轨、码流里的 SEI,漏一个就漏了 |
| 白名单 | 不说删什么,只说带什么过去:画面一条流、声音一条流,别的一律不要 | —— |
走白名单,源片的元数据没有任何通道能进来。它不是「被删掉了」,是从来没被搬运。
但 ffmpeg 默认会背叛这个结构两次,必须摁住:
-map_metadata -1gpmd 遥测轨一起带走 → -map 0:v:0 -map 0:a:0?第 2 条是 GoPro / DJI 这类源片的唯一防线:它们的 GPS 不在 tag 里,在一条独立的定时元数据轨上。 清 tag 清不掉,只有「只挑两条流」挡得住。
摁住上面两条,tag 层就干净了,ffprobe 一片安静。但文件里还躺着三处身份串:
| 藏在哪 | 内容 | ffprobe 看得见 |
|---|---|---|
| H.264 的 SEI | x264 完整参数串 cabac=1 ref=3 … crf=23.0 | ✗ |
| AAC 码流的 DSE | Lavc62.28.102 | ✗ |
| avc1 的 compressorname | Lavc libx264 | ✗ |
五个藏身处和各自的堵法见 {baseDir}/references/residue-map.md——每一条都有实测记录,
包括几个「看着该管用其实没用」的坑(-flags:v +bitexact 和 -x264-params info=0 都拦不住 SEI)。
| 模式 | 画面 | 音频 | 速度 | 多杀掉什么 |
|---|---|---|---|---|
copy(默认) | 逐字节照搬 | 重编 | 53 秒的片子 1.3 秒 | —— |
encode | 重编码 | 重编 | 慢得多 | 码流域水印、脆弱隐写 |
音频两种模式都重编——AAC 的版本号写在 DSE 里,那是码流内部,-c:a copy 抹不掉它。
重编一遍很便宜,换来音轨干净。画面则在 copy 模式下真的一个比特都没动(cmp 验证过,
除了被摘掉的 SEI)。
关于水印:encode 比 copy 多杀的是码流域水印和脆弱隐写,这两类在实际素材里少见。
真正要命的鲁棒像素水印(SynthID、影视取证水印)设计目标就是扛住重编码,两种模式都杀不掉。
所以选模式按画质和速度选,别指望重编码能洗掉水印。
擦白之后往回写的那一层:
| profile | 写什么 |
|---|---|
obs(默认) | OBS Studio 的长相。OBS 本来就是用 ffmpeg 封装的,所以这档不是伪造,是保持同类工具的正常外观 |
quicktime | macOS QuickTime 录屏:Core Media Video / Core Media Audio |
screencapture | ScreenCaptureKit 录屏 |
bare | 什么都不写。隐私强度最高——不留任何可被证伪的声明 |
有一件事做不到,写在这里省得再试:容器的 encoder 字段由 muxer 自己占着,
-metadata encoder=Lavf60.16.100 盖不过去,置空也清不掉(实测)。只有
-fflags +bitexact 能让它整个消失。所以 obs 档不伪造版本号,它就让 ffmpeg 写自己的真版本号。
node {baseDir}/scripts/video-scrub.mjs inspect <video>一屏列全:容器 tag、每条流的 tag 与 side data、章节,以及码流里那几处 ffprobe 看不见的身份串。
末尾会告诉你验收时要拿几根针去扫,以及 SEI 这刀动不动。
先看这一屏再动手。 尤其注意两件事:
data / timecode 流——有就说明源片可能带遥测轨(GoPro、DJI)node {baseDir}/scripts/video-scrub.mjs scrub <video> -o out.mp4默认 --mode copy --profile obs。常用参数:
--mode encode # 完整重编码
--profile bare # 什么都不写,隐私强度最高
--crf 18 # 只在 encode 模式有意义
--date 2026-01-01T00:00:00Z # 指定创建时间,不给就用当前时间node {baseDir}/scripts/video-scrub.mjs verify <源> <输出>或者一条龙(日常就用这个):
node {baseDir}/scripts/video-scrub.mjs run <video> -o out.mp4验收的核心是一句话:前面全是「我调了正确的参数」,属于声称;这一步是「我扫了,真没了」,属于证明。
做法是把源片所有元数据字符串抓出来当「针」——tag 的键和值、handler 名、章节标题—— 在输出文件里做字节级扫描,扎到一根就红。
两条实现上的讲究:
VideoHandler 满世界都是,信息量为零;Lavf58.45.100 钉死了一个版本,
是指纹。分界线是「能不能把范围缩小到某个人、某台设备、某次导出」。| 门 | 拦什么 |
|---|---|
| 字节级残留 | 源片的元数据串扎中了输出 |
| tag 层残留 | 输出的 tag 值来自源片 |
| 位置信息 | 任何 GPS / location 字段 |
| 设备与软件标识 | make / model / software / artist / comment 之类 |
| 源片时间戳 | 输出的 creation_time 等于源片的 |
| 旋转矩阵 | encode 模式下旋转没烘进画面(copy 模式跳过——删了画面就是歪的) |
| 流构成 | 混进了 data / timecode / 附件流 |
| 章节 | 章节跟过来了 |
| 码流身份串 | SEI / DSE / compressorname 里还有编码器名字 |
| profile 相符 | 剩下的 tag 和声明的 profile 对不上 |
| 时长 | 输出被偷偷截断 |
| 可解码 | 产出了打不开的坏文件 |
ffmpeg 只给得起 NAL 级的粒度——filter_units 按 NAL 类型删,
h264_metadata 也没有「只删某个 SEI payload」的选项。所以 remove_types=6 是
全部 SEI 一起删。而 SEI 里除了 x264 那串垃圾,还住着:
所以脚本的策略是:只在真查到身份串时才动刀,HDR 源片一律不动(会明说没动,
以及为什么)。这个判断由 seiPlan() 做,不需要你操心,但你该知道它在那儿。
不去除水印(鲁棒像素水印重编码也杀不掉,别指望)、不改画面内容(不裁剪不缩放不旋转)、 不伪造设备型号和 GPS(profile 只写工具类信息,不编造拍摄设备和位置)、 不做批量目录扫描(一次一条片子)、不处理非 mp4/mov 之外的容器。
node {baseDir}/scripts/selftest.mjs117 项断言,不碰 ffmpeg、不碰真文件。12 道门每道都有击穿用例——证明它真的会拦。 改完脚本先跑这个。
© eternityspring, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files (scripts, references) in skills/video-scrub of eternityspring/reelbench-skills.
Open the folder on GitHubat commit 1b51af8
Video Scrub next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Video Scrub this skilleternityspring/reelbench-skills | 872 | — | ~1.3k | Automated safety check: Notes | Apache-2.0 | |
| HyperFrames Video Entry Pointheygen-com/hyperframes | 59k | 3 repos | ~5.2k | Automated safety check: Pass | Apache-2.0 | |
| Stage EditOrkas-AI/Orkas-VideoStudio | 498 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Re Walkthrough Procharlesdove977/re-walkthrough-pro | 164 | — | ~1.1k | Automated safety check: Notes | MIT | |
| Video Productionffroliva/gflow-cli | 266 | — | ~7k | Automated safety check: Pass | MIT | |
| Image To Videonotque/vexjoy-agent | 439 | — | ~817 | Automated safety check: Notes | MIT |
heygen-com/hyperframes
Entry point for making, editing and rendering videos from HTML compositions with HyperFrames, routing each request to the right workflow.
Orkas-AI/Orkas-VideoStudio
Intelligent editing of real user-supplied footage—understand it with transcript/inspected-frame/scene/silence/quality evidence, then choose deterministic timeline operations or a constrained…
charlesdove977/re-walkthrough-pro
Turn a Zillow listing into a cinematic room-by-room walkthrough video (Apify scrape → Higgsfield image-to-video → ffmpeg stitch) to sell to real estate agents
ffroliva/gflow-cli
A skill your agent uses when the user wants a finished video out of gflow rather than a single clip — a scripted scene, a talking-head or dialogue piece, an explainer, a product montage, a story…
notque/vexjoy-agent
FFmpeg-based video creation from image and audio. An agent skill from notque/vexjoy-agent.
Orkas-AI/Orkas-VideoStudio
Deterministically assemble an approved cross-modal EDL (plan.json) into a finished video — produce each segment (edit/compose/generate/provided, delegated to its line), then assemble in ffmpeg…
eternityspring/reelbench-skills
拉片:把一条成片拆成逐镜头的分析表——每个镜头的时长、景别、类别、运镜、画面. An agent skill from eternityspring/reelbench-skills.
eternityspring/reelbench-skills
把拉片数据和原片合成一条能直接看的视频:一边是画面,一边是这一镜的分镜信息 (镜号、起止、时长、景别、类别、运镜、画面描述、台词),镜头切了信息跟着切, 镜头表自动滚动并高亮当前这一镜。
Works with
Categories
把一条视频重建成「只有画面和声音」的干净文件——源片的元数据一概不搬: GPS、设备型号、账号 ID、创建时间、章节、GoPro 的遥测轨,全部留在原地。. Video Scrub is an agent skill from eternityspring/reelbench-skills.
Video Scrub fits situations like: asked to 清元数据、去元数据、抹掉视频信息、视频隐私、去水印信息、 strip video metadata、remove exif from video、scrub video; tasks that involve Video production; tasks that involve AI video generation.
Run `npx skills add eternityspring/reelbench-skills --skill video-scrub -a claude-code`. Or copy the skill folder (skills/video-scrub in eternityspring/reelbench-skills) into .claude/skills/video-scrub in your project. Claude Code loads it when a task matches its description.
Run `npx skills add eternityspring/reelbench-skills --skill video-scrub -a codex`. Or copy the skill folder (skills/video-scrub in eternityspring/reelbench-skills) into .agents/skills/video-scrub in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add eternityspring/reelbench-skills --skill video-scrub -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/video-scrub, .gemini/skills/video-scrub, .github/skills/video-scrub and .opencode/skills/video-scrub in your project.
Going by SKILL.md and its folder, Video Scrub needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash, Glob.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Video Scrub is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.3k tokens (SKILL.md is roughly 5.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Video Scrub: HyperFrames Video Entry Point (heygen-com/hyperframes, 59k stars), Stage Edit (Orkas-AI/Orkas-VideoStudio, 498 stars), Re Walkthrough Pro (charlesdove977/re-walkthrough-pro, 164 stars) and Video Production (ffroliva/gflow-cli, 266 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
eternityspring (a GitHub user) maintains it in eternityspring/reelbench-skills, which has 872 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 21, 2026.
Source: eternityspring/reelbench-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.