Communitygithub.com

SingleGrain-Team/video-skills

Render a 5-6 second motion graphic in which an oversized condensed headline (2-4 words) punches in behind a presenter, using a background-removed cutout of the presenter layered on top of the lettering. A hard cut then removes the presenter while the same headline holds the exact same size and position, and a short supporting line appears for a reading hold. Use it for talking-head intros, chapter openers, launch announcements and social hooks when you have one presenter clip, a headline, a supporting line and a palette. Built on HyperFrames; delivers a 1920x1080 H.264 MP4 plus the editable project.

video-skills 是什么?

video-skills is a Claude Code agent skill that render a 5-6 second motion graphic in which an oversized condensed headline (2-4 words) punches in behind a presenter, using a background-removed cutout of the presenter layered on top of the lettering. A hard cut then removes the presenter while the same headline holds the exact same size and position, and a short supporting line appears for a reading hold. Use it for talking-head intros, chapter openers, launch announcements and social hooks when you have one presenter clip, a headline, a supporting line and a palette. Built on HyperFrames; delivers a 1920x1080 H.264 MP4 plus the editable project.

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/SingleGrain-Team/video-skills/tree/HEAD/skills/title-takeover

在你喜欢的 AI 中提问

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

文档

title-takeover

One idea, two beats. Beat 1: the headline slams in behind the speaker (depth). Beat 2: a hard cut drops the speaker and the very same lettering stays put while one line of copy reads out (clarity). Same element before and after the cut; the cut is the only change.

Inputs

InputRule
Presenter clipOne person, facing camera, head and shoulders roughly centered, 1920x1080 landscape, at least 4 s of usable footage. Silent is fine. Own or licensed footage only.
Headline2-4 words, uppercase, at most ~16 characters per line. Two lines work best (e.g. ADOPT AI / SKILLS). One accent word is optional.
Supporting lineOne sentence, 4-9 words ideal, never more than ~50 characters (must fit on one line at 60 px).
PaletteBackdrop, ink, accent. Dark backdrop plus cream ink plus one accent reads best; keep contrast at WCAG AA or better.
FontA condensed heavy display face shipped as a local file (Anton, OFL, is the default) plus a clean sans for the supporting line (Inter).

Workflow

  1. Prepare the clip. Trim a 6 s window where the presenter is facing camera and not leaving frame. Strip audio, normalize to 30 fps, 1920x1080: ffmpeg -ss <in> -i src.mp4 -t 6 -an -r 30 -c:v libx264 -crf 14 -pix_fmt yuv420p assets/presenter.mp4
  2. Cutout. npx --yes hyperframes remove-background assets/presenter.mp4 -o assets/presenter-cutout.webm (transparent VP9 WebM, same frame count and resolution as the source; about 25 s for 180 frames on Apple silicon). If the model download times out, rerun; the model caches under ~/.cache/hyperframes.
  3. Composition. Copy template/ into the project, put presenter.mp4, presenter-cutout.webm, fonts and logo in assets/, then edit only the marked palette variables, the two headline lines and the supporting copy. Layer order, bottom to top:
    1. backdrop (solid + soft accent glow)
    2. presenter footage + dark scrim (dims busy backgrounds so the lettering pops)
    3. headline
    4. presenter cutout (same data-start / data-media-start / data-duration as the footage)
    5. supporting line, brand mark
  4. Check and render. npx --yes hyperframes check, then npx --yes hyperframes render --workers 2 --quality delivery --output final.mp4.

Timing rules (6.0 s film at 30 fps)

MomentTimeRule
Punch-in0.30 s (line 1), 0.45 s (line 2)Scale 1.4 to 1.0 plus opacity 0 to 1, 0.45 s, expo.out. Stagger lines 0.15 s. Show 0.3 s of presenter alone first so the headline lands on a live frame.
Behind-presenter hold0.75 s to cutAt least 2.4 s with the speaker visible over the lettering.
Hard cut3.4 s (frame 102)Footage, scrim and cutout all end on the same frame. No fade, no transition, no zoom.
Supporting line3.75 s, 0.55 s rise of 28 px, accent rule wipes inLeave about 0.35 s of headline alone after the cut so the "hold" registers.
Reading hold4.3 s to 6.0 sAt least 1.5 s fully static. End on the full lockup; never fade to black.

Invariants:

  • The headline is one element. After the punch-in settles (frame ~24) never tween its scale, position, size or letter-spacing again. The cut must not move a single glyph.
  • Never re-create the headline in a second scene.
  • The cutout and the footage must be frame-locked; give both muted playsinline, no crossorigin.
  • Animate only transform and opacity on the headline lines (they sit inside a static wrapper). Do not tween .clip elements.
  • The presenter's face will hide some letters. That is intended; keep the word gap and a distinctive letter pair visible on each side, and keep the headline at 380-440 px so the words stay legible.
  • Keep 140 px of headroom above line 1 so the glyphs never leave the canvas.

Validation

  1. npx --yes hyperframes check must report 0 errors. Intentional lettering-behind-presenter overlap is declared with data-layout-allow-occlusion on the cutout and headline lines (already in the template).
  2. Extract and look at (not just count) these frames from the rendered MP4:
    for n in 90 101 102 103 179; do ffmpeg -y -i final.mp4 -vf "select=eq(n\,$n)" -frames:v 1 qc_$n.png; done
    
    • 90: headline visible behind the presenter, cutout edges clean (no halo, no missing hair or shoulders).
    • 101 (last presenter frame) and 102 (first frame after the cut): presenter gone on 102, headline identical in size and position in both.
    • 103: still no supporting line yet or just starting; headline unchanged.
    • 179 (final): headline plus complete supporting line, fully legible, nothing clipped.
  3. If the cutout shows fringing or flicker, re-run remove-background with --quality best or choose a cleaner source window. If the headline jumps at the cut, a tween is still running on it; remove it.
  4. ffprobe must show h264, 1920x1080, 30 fps, 6.0 s.

Delivery

Hand over final.mp4 plus the project folder (index.html, assets/). Record the footage source URL and license in NOTES.md. Never use footage of recognizable creators or celebrities, or third-party logos.

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

SingleGrain-Team/video-skills

Make a 30-45 second launch film for a product by staging it inside one persistent, neutral chat window. A user types a request, the assistant answers and calls the product as a connected tool, a progress card runs, a follow-up triggers a second tool action, and the result lands as a count-up headline number before closing on the logo, tagline and call to action. Use when you need a launch, feature or integration announcement video for something that plugs into AI assistants (a skill, MCP server, plugin, connector, CLI). Delivers a rendered 1920x1080 MP4 plus an editable single-file HyperFrames project.

SingleGrain-Team/video-skills

Build a motion graphic where a screen recording plays in a large frame beside a checklist, and each checklist item ticks off at the exact moment that step happens in the recording, ending with every item checked and a short hold. Use when someone has a screen recording (product walkthrough, tutorial, onboarding, install demo) plus a list of steps with timestamps and wants a "watch the steps get done" film. Input is a recording, step labels with timestamps, a title and an optional palette; output is a 1920x1080 H.264 MP4 and the editable HyperFrames project.

SingleGrain-Team/video-skills

Build a 15-20 second product launch film that shows the product's real screen on a laptop built from plain CSS (no 3D model, no generation model) in a dark studio, scrolls the page, zooms into the interface for one key action such as typing a search, and resolves to the logo lockup. Use when someone has a full-page screenshot or screen recording of their product, one action worth showing, and a logo, and wants a short silent-friendly launch teaser rendered as a 1920x1080 MP4 with an editable HyperFrames project.

SingleGrain-Team/video-skills

Builds a 6-8 second logo sting in which the brand mark rides inside a refracting liquid bead (distorted past legibility), the bead swells, holds still for a beat, then ruptures into droplets and leaves the logo lockup (mark plus wordmark) crisp and upright on screen. Delivered as a 1920x1080 H.264 MP4 plus the editable HyperFrames project, with no 3D model, stock footage or generation model. Use it for brand intros and outros, product-launch openers, channel stings and any "reveal our logo" moment, from an SVG or PNG logo (including raster-only logos), a wordmark string and a palette.

SingleGrain-Team/video-skills

Make a 20-30 second launch film for a product that is not tied to one interface, such as a CLI, package, plugin or agent skill. The identical prompt or command is typed into four visually different surfaces in turn (a wide terminal, a tall chat card, a floating palette, an editor cell), the film then hard-cuts into a fast reel of real outputs on a beat or fixed tempo grid, and it closes on the command in a large pill. Delivered as a rendered 1920x1080 MP4 plus the editable HyperFrames project. Music is optional - with a track the cuts land on detected beats, without one they land on a 120 bpm grid.

SingleGrain-Team/video-skills

Make a roughly 30-second film that explains a code change (a pull request, release or uncommitted diff) to people who will never read the diff. It opens by showing the real diff scrolling past too fast to follow, cuts to a plain-language summary, fires four capability beats each pinned to a real code snippet, and closes on how to get it (install command and URL). Delivered as a 1920x1080 H.264 MP4 plus the editable HyperFrames project. Use when asked to turn a PR, changelog or release into a launch or explainer video.

SingleGrain-Team/video-skills

Builds a 10-14 second product sting out of a short run of UI moments (an entry screen, a single counting metric, a navigation list, one click that opens a menu, then an endcard) cut together so every cut carries the previous motion forward and the piece reads as one continuous camera move. Delivered as a 1920x1080 H.264 MP4 plus an editable single-file HyperFrames project. Use it for app launches, feature teasers, social bumpers and site intros when you have a product's logo, a couple of screenshots, one headline number and its real nav labels, and want polished UI motion without narration.

相关技能