Agent Skillsbarefootford/buttercut › contact-sheet

contact-sheet

GitHub

从视频片段生成包含时间戳的网格联系表,支持自动选择帧数和旋转方向。

skills/contact-sheet/SKILL.md barefootford/buttercut

Trigger Scenarios

请求制作 contact sheet 请求生成 grid 或 film strip 需要视频片段的单图概览

Install

npx skills add barefootford/buttercut --skill contact-sheet -g -y
More Options

Use without installing

npx skills use barefootford/buttercut@contact-sheet

指定 Agent (Claude Code)

npx skills add barefootford/buttercut --skill contact-sheet -a claude-code -g -y

安装 repo 全部 skill

npx skills add barefootford/buttercut --all -g -y

预览 repo 内 skill

npx skills add barefootford/buttercut --list

SKILL.md

Frontmatter
{
    "name": "contact-sheet",
    "description": "Builds a contact sheet from a video clip — evenly spaced frames laid out in a single grid image, each with its hh:mm:ss timestamp burned in. Use when the user asks for a \"contact sheet\", \"grid\", \"film strip\", or wants a one-image overview of part of a clip."
}

Skill: Contact Sheet

Builds a contact sheet from a slice of a video clip: 16 evenly spaced frames laid out in a 4x4 grid, each annotated with its hh:mm:ss timestamp.

Prerequisite: ffmpeg with drawtext

This skill burns timestamps onto frames with ffmpeg's drawtext filter. ButterCut resolves ffmpeg from the repo's dependencies/ directory first, then PATH, and raises a clear error when it's in neither place. If a run fails with that missing-ffmpeg error, or with No such filter: 'drawtext' (some PATH builds, notably the stock Homebrew formula, omit drawtext), run the setup skill to install a suitable ffmpeg, then retry the contact sheet.

Run

When the clip belongs to a library, always pass --library so the output lands in the standard place:

# Whole clip
ruby lib/buttercut/contact_sheet.rb <video-path> --library libraries/<lib>

# From <start> to the end of the clip
ruby lib/buttercut/contact_sheet.rb <video-path> <start> --library libraries/<lib>

# Explicit range
ruby lib/buttercut/contact_sheet.rb <video-path> <start> <end> --library libraries/<lib>

<start> and <end> accept seconds (e.g. 12.5) or HH:MM:SS / MM:SS.

Options: --library DIR, --output PATH (exact path; overrides --library).

Frame count is chosen automatically: 16 frames in a 4x4 grid for clips longer than 10 seconds, 4 frames in a 2x2 grid for clips of 10 seconds or less (avoids duplicates).

Portrait clips (iPhone, etc.) are auto-rotated using the source's container rotation metadata so timestamps land right-side-up. Variable-frame-rate sources (screen recordings, some action cams) are detected and routed through the slower seek-and-grab path automatically.

Output location

  • With --library DIR: saved to <library>/contact_sheets/<clipname>_<descriptor>.jpg.
    • <descriptor> is full when covering the whole clip, otherwise HH-MM-SS_to_HH-MM-SS (dashes instead of colons).
    • Examples: contact_sheets/DJI_20251126164651_0278_D_full.jpg, contact_sheets/DJI_20251126164651_0278_D_00-00-30_to_00-01-00.jpg.
    • The contact_sheets/ directory is created automatically if missing.
  • Without --library (and no --output): saved next to the source video with the same _<descriptor> suffix. Fine for quick one-off testing, but library work should always pass --library.

After running

Share the output path as a clickable link so the user can open it directly.

Version History

  • 5d62523 Current 2026-08-20 12:43

Same Skill Collection

skills/analyze-video/SKILL.md
skills/backup-library/SKILL.md
skills/buttercut/SKILL.md
skills/create-library/SKILL.md
skills/cut/SKILL.md
skills/full-transcript/SKILL.md
skills/misc-task/SKILL.md
skills/process-library/SKILL.md
skills/report-bug/SKILL.md
skills/reprocess-with-contact-sheets/SKILL.md
skills/request-feature/SKILL.md
skills/setup/SKILL.md
skills/transcribe-audio/SKILL.md
skills/update-buttercut/SKILL.md
skills/bc/SKILL.md

Metadata

Files
0
Version
5d62523
Hash
a1a74763
Indexed
2026-08-20 12:43

Accueil - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-06 13:51
浙ICP备14020137号-1 $Carte des visiteurs$