Video Understand
calesthio/OpenMontage
Understand video content locally using ffmpeg frame extraction and Whisper transcription.
Review a change to the ffmpeg-skill repository for the failures its own contract makes possible — a claim in a result document that is true at one layer and false at the layer a caller reads, a new…
$ npx skills add kajisho5/ffmpeg-skill --skill reviewing-ffmpeg-skill-changes -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install kajisho5/ffmpeg-skill reviewing-ffmpeg-skill-changes --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/kajisho5/ffmpeg-skill.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/code-review .claude/skills/reviewing-ffmpeg-skill-changes && 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 "reviewing-ffmpeg-skill-changes" agent skill from https://github.com/kajisho5/ffmpeg-skill/tree/main/.claude/skills/code-review into .claude/skills/reviewing-ffmpeg-skill-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "reviewing-ffmpeg-skill-changes", 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/kajisho5/ffmpeg-skill/tree/main/.claude/skills/code-reviewType 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 kajisho5/ffmpeg-skill --skill reviewing-ffmpeg-skill-changes -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install kajisho5/ffmpeg-skill reviewing-ffmpeg-skill-changes --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kajisho5/ffmpeg-skill.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/code-review .agents/skills/reviewing-ffmpeg-skill-changes && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "reviewing-ffmpeg-skill-changes" agent skill from https://github.com/kajisho5/ffmpeg-skill/tree/main/.claude/skills/code-review into .agents/skills/reviewing-ffmpeg-skill-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "reviewing-ffmpeg-skill-changes", 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 kajisho5/ffmpeg-skill --skill reviewing-ffmpeg-skill-changes -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install kajisho5/ffmpeg-skill reviewing-ffmpeg-skill-changes --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kajisho5/ffmpeg-skill.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/code-review .cursor/skills/reviewing-ffmpeg-skill-changes && 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 "reviewing-ffmpeg-skill-changes" agent skill from https://github.com/kajisho5/ffmpeg-skill/tree/main/.claude/skills/code-review into .cursor/skills/reviewing-ffmpeg-skill-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "reviewing-ffmpeg-skill-changes", 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/kajisho5/ffmpeg-skill.git --path .claude/skills/code-review--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 kajisho5/ffmpeg-skill --skill reviewing-ffmpeg-skill-changes -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install kajisho5/ffmpeg-skill reviewing-ffmpeg-skill-changes --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kajisho5/ffmpeg-skill.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/code-review .gemini/skills/reviewing-ffmpeg-skill-changes && 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 "reviewing-ffmpeg-skill-changes" agent skill from https://github.com/kajisho5/ffmpeg-skill/tree/main/.claude/skills/code-review into .gemini/skills/reviewing-ffmpeg-skill-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "reviewing-ffmpeg-skill-changes", 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 kajisho5/ffmpeg-skill reviewing-ffmpeg-skill-changesInstalls 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 kajisho5/ffmpeg-skill --skill reviewing-ffmpeg-skill-changes -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/kajisho5/ffmpeg-skill.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/code-review .github/skills/reviewing-ffmpeg-skill-changes && 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 "reviewing-ffmpeg-skill-changes" agent skill from https://github.com/kajisho5/ffmpeg-skill/tree/main/.claude/skills/code-review into .github/skills/reviewing-ffmpeg-skill-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "reviewing-ffmpeg-skill-changes", 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 kajisho5/ffmpeg-skill --skill reviewing-ffmpeg-skill-changes -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install kajisho5/ffmpeg-skill reviewing-ffmpeg-skill-changes --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kajisho5/ffmpeg-skill.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/code-review .opencode/skills/reviewing-ffmpeg-skill-changes && 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 "reviewing-ffmpeg-skill-changes" agent skill from https://github.com/kajisho5/ffmpeg-skill/tree/main/.claude/skills/code-review into .opencode/skills/reviewing-ffmpeg-skill-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "reviewing-ffmpeg-skill-changes", 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.
reviewing-ffmpeg-skill-changesReview a change to the ffmpeg-skill repository for the failures its own contract makes possible — a claim in a result document that is true at one layer and false at the layer a caller reads, a new…
Reviewing Ffmpeg Skill Changes is an agent skill from kajisho5/ffmpeg-skill. Review a change to the ffmpeg-skill repository for the failures its own contract makes possible — a claim in a result document that is true at one layer and false at the layer a caller reads, a new flag that reaches the code but not the contract/docs/demo surfaces, a "bug" that docs/design-decisions.md already decided with a pinning test, a fix with no regression test, a new runtime dependency or a raw ffmpeg shell call that breaks the scope boundary, a SKILL.md line added without one trimmed, a review that…
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/result-honesty.md`, `references/review-checklist.md` and `references/surfaces.md`).
It sits in Media & Creative, covering Video production and Architecture decision records. It works with FFmpeg. The licence is MIT.
Read from SKILL.md and the folder at commit 008333a. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitpython3npmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and npm, which can reach the network depending on how they are called.
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.
Reviewing Ffmpeg Skill Changes loads about 2.3k tokens when it runs, and up to ~5.2k if it reads all its reference files. Until then it costs about 203 tokens; SKILL.md has 1,079 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 found no risky patterns in SKILL.md.
Automated 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); files beside SKILL.md are not scanned.
The full file from kajisho5/ffmpeg-skill at commit 008333a, republished under its MIT licence (© kajisho5). 1,079 words, ~2,263 tokens.
.claude/skills/reviewing-ffmpeg-skill-changes/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.This repository has an unusual failure mode, and a review that misses it looks
thorough while catching nothing. The product is a JSON result document that an
agent reads instead of watching the video. A change can be correct at the FFmpeg
layer, correct at the Python layer, and still ship a lie at the layer that
matters: status: "completed" next to a non-zero exit, verified: true for
something the tool never measured, a cut described as lossless when the keyframe
snap moved it 1.24 s. The 0.9.1/0.10.0 "honesty fix" (cut.py's mode /
keyframe_snapped / duration_delta_seconds, check.py's reason, render.py's
check-stage exit code) exists because three such claims shipped and were caught
after the fact. Review the claim, not just the code.
The second failure mode is re-reporting decisions. Three review rounds on
2026-09-12 re-reported entries in docs/design-decisions.md, which is why that
file exists.
Read the tree at the commit under review, not a summary of it and not your own working copy if it has moved.
git fetch origin && git log --oneline -1 origin/main
git diff --stat origin/main...HEAD # what the branch actually changes
git show origin/main:docs/design-decisions.md | head -40At least one earlier review reported committed media that is not in git and colour flags that were already validated — both came from reading a summary rather than the tree. Before reporting any finding, name the file and line you read it at, and confirm the symbol still exists there.
For every writing tool touched, trace the success document it prints and ask whether each field is something the tool measured.
| field | the review question |
|---|---|
status | can this be completed while the exit code is non-zero? (die() must set failed) |
verified | is it the conjunction of steps the tool actually ran, or an assumption? |
reencodes_* | was a copy fallback taken and reported, or silently assumed not taken? |
dropped_non_av_streams | did the timeline move (track must be dropped, true) or stay (kept, false)? |
keyframe_snapped, duration_delta_seconds | for cut: is the measured divergence reported, not rounded away? |
mode | does it name the path actually taken (copy vs re-encode)? |
error.kind | input / ffmpeg / output / missing_tool / timeout / verification / interrupted — is it the one that happened? |
error.retryable | must stay false; a true here invites a blind retry loop |
--dry-run claims matter too: info() rewrites wrote X to [dry-run] would write X, and analysis_only tools (probe, check, sync, multicam,
scenes, cropdetect, report, silence, loudness, stabilize) do run
FFmpeg to measure. A change that makes a writing tool print a write claim under
dry-run is a defect.
See references/result-honesty.md for the code pointers and the exact test names
that pin each of these.
Grep docs/design-decisions.md before writing any "this looks wrong" sentence.
Each entry names the rationale and the test that pins it. If the change under
review is about one of them, the report must say which sentence there no longer
holds — otherwise it is a re-report and will be closed as one.
Also grep before claiming a gap, because several checks are centralised:
grep -rn "validate_color(" scripts/ # colour flags are validated at tool level, not per call site
grep -rn "apply_common()" scripts/ # --quality range check happens once, here
grep -rn "time_arg(" scripts/ # the single time parser; a tool parsing time itself is the bugA change that is correct in isolation can still be unshippable here. Verify each applicable rule against the tree:
python3 scripts/_contract.py --json is the source of truth
for tool names, flags, dry-run semantics and error kinds. README.md and
SKILL.md restate it and are tested against it. A new flag that exists only in
a script is half shipped; extend the generator, never hand-duplicate a schema.feat updates README.md (tool
table, contract table, gotchas), SKILL.md, references/scripts.md,
docs/contract.md and CHANGELOG.md. See references/surfaces.md.SKILL.md stays under 30,000 bytes — enforced by
test_skill_md_stays_under_the_30kb_budget, not a convention. Adding a line
means trimming one, and the PR should say which.scripts/ must
appear in some demo's command line (a test asserts it); a feat adds a
before/after entry to demos/build.py and regenerates docs/demos.md with
python3 demos/build.py --docs. Tools whose whole output is a table/JSON/HTML
go in INSPECTION instead.CONTRIBUTING.md is explicit: a
fix without a test that would have caught the original bug is not finished.ffmpeg/ffprobe on PATH.ffmpeg/ffprobe shell invocation outside scripts/*.py, no mutation of input
files, no creative decisions on the caller's behalf.hdr_signal did before 2.0). A PR that changes the
meaning of an existing field in a minor or patch release is a finding.npm test # tests/test_all.py + tests/test_contract.py
npm run release-check # packaging + installer + MCP + doctor + full suite
python3 scripts/_contract.py doctor # what this machine can actually runCI is a three-OS matrix (Linux/macOS/Windows) across FFmpeg 5.1, 6.1, 7.1 and
8.x/9.x. A change that passes locally on one FFmpeg major is not verified. Report
a red check as its own statement — never a parenthetical under a "done" claim —
and confirm green after the run finishes rather than predicting it. See
reproducing-ci-locally in this repo's .claude/skills/.
Two traps specific to reviewing here:
references/process-pitfalls.md is a maintainer diary and is not in the npm
package; the other reference files are. Packaging claims belong against
package.json files and bin/install.js PAYLOAD.Order findings by what they cost: a false claim in a result document first, then a missing surface or test, then style. For each, give file and line at the reviewed commit, the concrete failure it causes, and the smallest fix. State plainly which checks you ran and what you did not verify — an unrun check reported as passing is the same defect as an overstated result document, one artifact over. Defer deep security audits to a dedicated security pass; this skill reviews quality, scope and claim-honesty.
references/result-honesty.md — the JSON contract, the fields that carry
claims, and the test that pins each one.references/surfaces.md — the full surface inventory a change must touch,
and how to check for drift.references/review-checklist.md — the runnable pre-commit and pre-merge
checklist with exact commands.This skill is repo-local and intentionally duplicates none of
writing-defect-reports, verifying-external-behavior or
reproducing-ci-locally (all in .claude/skills/); it points at them instead.
Its distinguishing subject is the review of a claim — the emit()/die()
document — which is where this codebase's shipped defects have actually come from.
© kajisho5, MIT. 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 3 other files (references) in .claude/skills/code-review of kajisho5/ffmpeg-skill.
Open the folder on GitHubat commit 008333a
Reviewing Ffmpeg Skill Changes 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 |
|---|---|---|---|---|---|---|
| Reviewing Ffmpeg Skill Changes this skillkajisho5/ffmpeg-skill | 1.9k | — | ~2.3k | Automated safety check: Pass | MIT | |
| Video Understandcalesthio/OpenMontage | 66k | — | ~841 | Automated safety check: Pass | AGPL-3.0 | |
| HyperFrames Video Entry Pointheygen-com/hyperframes | 59k | 3 repos | ~5.2k | Automated safety check: Pass | Apache-2.0 | |
| Video Shotseternityspring/reelbench-skills | 872 | 1 repos | ~1.8k | Automated safety check: Notes | Apache-2.0 | |
| Mobile Demo Film Editorsuperset-sh/superset | 15k | — | ~1.8k | Automated safety check: Pass | Custom licence | |
| Video Editcalesthio/OpenMontage | 66k | — | ~855 | Automated safety check: Notes | AGPL-3.0 |
calesthio/OpenMontage
Understand video content locally using ffmpeg frame extraction and Whisper transcription.
heygen-com/hyperframes
Entry point for making, editing and rendering videos from HTML compositions with HyperFrames, routing each request to the right workflow.
eternityspring/reelbench-skills
拉片:把一条成片拆成逐镜头的分析表——每个镜头的时长、景别、类别、运镜、画面. An agent skill from eternityspring/reelbench-skills.
superset-sh/superset
Edits real mobile screen recordings into a configurable demo video with phone framing, title cards, cutaways and an end card, using a bundled renderer.
calesthio/OpenMontage
Edit videos locally using ffmpeg. An agent skill from calesthio/OpenMontage.
lemomo-ai/lemo-opuscar
Directs a short film made entirely in code in one of the Lemo-Opuscar library's named visual styles, from fetching the library through production and delivery.
kajisho5/ffmpeg-skill
Edit video and audio with local FFmpeg from natural-language requests: cut, trim, join, resize/reframe (9:16, 1:1), speed change, captions and subtitles (SRT/ASS, animated, karaoke), logos and text…
kajisho5/ffmpeg-skill
Generate GitHub Actions CI/CD pipeline configurations for automated building and testing of library and package projects.
kajisho5/ffmpeg-skill
Builds robust Python MCP (Model Context Protocol) servers with FastMCP — tool design, error contracts, event-loop-safe blocking work, subprocess/CLI wrapping, single-file vs packaged distribution…
kajisho5/ffmpeg-skill
Resolve conflicts and merges when several branches are open against one repo at the same time — the hotspot files every change must touch (registry manifests, a single version field, shared tool…
kajisho5/ffmpeg-skill
Add and review preconditions on operations that delete, overwrite, rewrite history, or resolve a caller-supplied name to a filesystem path — refusing instead of warning, placing the guard ahead of…
kajisho5/ffmpeg-skill
Prevents, detects, and remediates files that should never be committed — secrets (.env, API tokens, hardcoded credentials) and dev artifacts (build output, scratch databases, editor/OS files).
Works with
Categories
Review a change to the ffmpeg-skill repository for the failures its own contract makes possible — a claim in a result document that is true at one layer and false at the layer a caller reads, a new…. Reviewing Ffmpeg Skill Changes is an agent skill from kajisho5/ffmpeg-skill.
Reviewing Ffmpeg Skill Changes fits situations like: asked to review a PR; diff in this repository; authoring code here and needing a pre-commit check; triaging an external review.
Run `npx skills add kajisho5/ffmpeg-skill --skill reviewing-ffmpeg-skill-changes -a claude-code`. Or copy the skill folder (.claude/skills/code-review in kajisho5/ffmpeg-skill) into .claude/skills/reviewing-ffmpeg-skill-changes in your project. Claude Code loads it when a task matches its description.
Run `npx skills add kajisho5/ffmpeg-skill --skill reviewing-ffmpeg-skill-changes -a codex`. Or copy the skill folder (.claude/skills/code-review in kajisho5/ffmpeg-skill) into .agents/skills/reviewing-ffmpeg-skill-changes 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 kajisho5/ffmpeg-skill --skill reviewing-ffmpeg-skill-changes -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/reviewing-ffmpeg-skill-changes, .gemini/skills/reviewing-ffmpeg-skill-changes, .github/skills/reviewing-ffmpeg-skill-changes and .opencode/skills/reviewing-ffmpeg-skill-changes in your project.
Going by SKILL.md and its folder, Reviewing Ffmpeg Skill Changes needs the command-line tools its instructions call (git, python3 and npm). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use git and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Reviewing Ffmpeg Skill Changes is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.1k 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 3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Reviewing Ffmpeg Skill Changes: Video Understand (calesthio/OpenMontage, 66k stars), HyperFrames Video Entry Point (heygen-com/hyperframes, 59k stars), Video Shots (eternityspring/reelbench-skills, 872 stars) and Mobile Demo Film Editor (superset-sh/superset, 15k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
kajisho5 (a GitHub user) maintains it in kajisho5/ffmpeg-skill, which has 1,901 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 5, 2026.
Source: kajisho5/ffmpeg-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.