Ffmpeg Skill
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…
Video post-production rules: audio mastering, color, captions, platform export.
$ npx skills add AnastasiyaW/codex-claude-code-config --skill video-post-production -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install AnastasiyaW/codex-claude-code-config video-post-production --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/AnastasiyaW/codex-claude-code-config.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/video-production/video-post-production .claude/skills/video-post-production && 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-post-production" agent skill from https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/video-production/video-post-production into .claude/skills/video-post-production/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-post-production", 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/AnastasiyaW/codex-claude-code-config/tree/main/skills/video-production/video-post-productionType 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 AnastasiyaW/codex-claude-code-config --skill video-post-production -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install AnastasiyaW/codex-claude-code-config video-post-production --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AnastasiyaW/codex-claude-code-config.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/video-production/video-post-production .agents/skills/video-post-production && 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-post-production" agent skill from https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/video-production/video-post-production into .agents/skills/video-post-production/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-post-production", 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 AnastasiyaW/codex-claude-code-config --skill video-post-production -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install AnastasiyaW/codex-claude-code-config video-post-production --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AnastasiyaW/codex-claude-code-config.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/video-production/video-post-production .cursor/skills/video-post-production && 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-post-production" agent skill from https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/video-production/video-post-production into .cursor/skills/video-post-production/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-post-production", 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/AnastasiyaW/codex-claude-code-config.git --path skills/video-production/video-post-production--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 AnastasiyaW/codex-claude-code-config --skill video-post-production -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install AnastasiyaW/codex-claude-code-config video-post-production --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AnastasiyaW/codex-claude-code-config.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/video-production/video-post-production .gemini/skills/video-post-production && 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-post-production" agent skill from https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/video-production/video-post-production into .gemini/skills/video-post-production/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-post-production", 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 AnastasiyaW/codex-claude-code-config video-post-productionInstalls 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 AnastasiyaW/codex-claude-code-config --skill video-post-production -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/AnastasiyaW/codex-claude-code-config.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/video-production/video-post-production .github/skills/video-post-production && 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-post-production" agent skill from https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/video-production/video-post-production into .github/skills/video-post-production/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-post-production", 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 AnastasiyaW/codex-claude-code-config --skill video-post-production -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install AnastasiyaW/codex-claude-code-config video-post-production --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AnastasiyaW/codex-claude-code-config.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/video-production/video-post-production .opencode/skills/video-post-production && 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-post-production" agent skill from https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/video-production/video-post-production into .opencode/skills/video-post-production/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-post-production", 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-post-productionVideo post-production rules: audio mastering, color, captions, platform export.
Video Post Production is an agent skill from AnastasiyaW/codex-claude-code-config. Video post-production rules: audio mastering, color, captions, platform export. Use when: 'add music', 'add voiceover', 'export for tiktok', 'add captions', 'color grade', 'audio levels', 'master audio', 'export settings', 'platform requirements'. Covers FFmpeg patterns, audio chain, subtitle standards, and platform-specific export configs. Do NOT use to generate or animate the video frames/scenes in code (use remotion-production-guide), to write the script (use video-narrative-arc), or to evaluate script quality…
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Media & Creative, covering Video production, Transcription and Text to speech and voice. It works with FFmpeg, TikTok, Remotion and YouTube. The repository describes itself as: Claude Code, Codex, and multi-agent configuration system: principles, hooks, skills, and workflow patterns for AI-assisted development. The licence is MIT.
Read from SKILL.md and the folder at commit 67709af. 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:
ffmpegnpxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, 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.
Video Post Production loads about 1.7k tokens when it runs. Until then it costs about 158 tokens; SKILL.md has 372 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 AnastasiyaW/codex-claude-code-config at commit 67709af, republished under its MIT licence (© AnastasiyaW). 372 words, ~1,665 tokens.
.claude/skills/video-post-production/SKILL.md (or your agent's skills folder).Rules and FFmpeg patterns for finishing videos: audio mastering, captions, color, and platform-specific export.
| Track | Level | Notes |
|---|---|---|
| Voiceover | -12 to -10 dB | Primary audio, clear and upfront |
| Music (under VO) | -32 to -24 dB | Background, should not compete |
| Music (solo, no VO) | -16 to -12 dB | Can be louder when alone |
| Sound effects | -18 to -14 dB | Accent, not distraction |
| Silence floor | -60 dB | True silence feels unnatural, keep room tone |
| Mood | BPM Range | Use Case |
|---|---|---|
| Calm, reflective | 60-80 | Luxury brands, testimonials |
| Confident, steady | 80-100 | Corporate, explainers |
| Moderate energy | 100-120 | Product demos, features |
| Energetic | 120-140 | Launch videos, social ads |
| High energy | 140+ | Montage, fast-cut sequences |
Rule: Match music tempo to edit pace. Cut on beats for professional feel.
# Full mastering chain: highpass + EQ + compression + loudness
ffmpeg -i input.mp4 -af "
highpass=f=80,
equalizer=f=3000:t=q:w=1.5:g=3,
acompressor=threshold=-20dB:ratio=4:attack=5:release=50,
loudnorm=I=-16:TP=-1.5:LRA=11
" -c:v copy output.mp4| Parameter | Value |
|---|---|
| Max characters per line | 32-42 |
| Max 2 lines simultaneously | Always |
| Display duration | 1.5-7 seconds per caption |
| Min display | 1.5 seconds (even for short text) |
| Font size | 48-72px (for 1080p) |
| Font | Sans-serif, bold weight |
| Position | Bottom center, 10% from bottom edge |
| Background | Semi-transparent black (#000000AA) |
# Basic caption burn-in
ffmpeg -i input.mp4 -vf "subtitles=subs.srt:force_style='FontSize=24,FontName=Arial,Bold=1,PrimaryColour=&HFFFFFF,OutlineColour=&H000000,Outline=2,MarginV=40'" output.mp4
# Word-by-word highlight (requires ASS format)
ffmpeg -i input.mp4 -vf "ass=styled_subs.ass" output.mp4# Warm punch (indoor/talking head)
ffmpeg -i input.mp4 -vf "eq=contrast=1.1:brightness=0.02:saturation=1.15,colorbalance=rs=0.05:gs=-0.02:bs=-0.05" output.mp4
# Cool tech (product/SaaS)
ffmpeg -i input.mp4 -vf "eq=contrast=1.05:saturation=0.95,colorbalance=rs=-0.03:gs=0.01:bs=0.05" output.mp4
# High contrast B&W
ffmpeg -i input.mp4 -vf "hue=s=0,eq=contrast=1.3:brightness=0.03" output.mp4ffmpeg -i input.mp4 \
-c:v libx264 -preset slow -crf 18 -pix_fmt yuv420p \
-c:a aac -b:a 192k -ar 48000 \
-movflags +faststart \
youtube_output.mp4# Resize landscape to vertical with blur background
ffmpeg -i input_16x9.mp4 \
-filter_complex "[0:v]scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:black[fg];[0:v]scale=1080:1920,boxblur=20:20[bg];[bg][fg]overlay=(W-w)/2:(H-h)/2" \
-c:v libx264 -preset fast -crf 23 -pix_fmt yuv420p \
-c:a aac -b:a 128k \
tiktok_output.mp4
# Native vertical render from Remotion
npx remotion render src/index.ts Comp out/vertical.mp4 --width 1080 --height 1920# Center crop to square
ffmpeg -i input_16x9.mp4 \
-vf "crop=ih:ih:(iw-ih)/2:0,scale=1080:1080" \
-c:v libx264 -crf 23 -pix_fmt yuv420p \
-c:a aac -b:a 128k \
square_output.mp4# Fast trim (keyframe-based, instant)
ffmpeg -ss 00:00:05 -i input.mp4 -t 15 -c copy trimmed.mp4
# Frame-accurate trim (re-encodes)
ffmpeg -i input.mp4 -ss 00:00:05 -t 15 -c:v libx264 -crf 18 trimmed.mp4# Create file list
echo "file 'scene1.mp4'" > list.txt
echo "file 'scene2.mp4'" >> list.txt
echo "file 'scene3.mp4'" >> list.txt
# Lossless concat (same codec/resolution)
ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp4
# Re-encoded concat (different sources)
ffmpeg -f concat -safe 0 -i list.txt -c:v libx264 -crf 18 output.mp4# Music at -24dB under existing audio
ffmpeg -i video.mp4 -i music.mp3 \
-filter_complex "[1:a]volume=-24dB[music];[0:a][music]amix=inputs=2:duration=first" \
-c:v copy output.mp4# 2x speed (with audio pitch correction)
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" -af "atempo=2.0" fast.mp4
# 0.5x slow motion
ffmpeg -i input.mp4 -vf "setpts=2.0*PTS" -af "atempo=0.5" slow.mp4# High quality GIF with palette
ffmpeg -i input.mp4 -vf "fps=15,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gifBefore publishing, verify:
-pix_fmt yuv420p - some players can't handle other formats-movflags +faststart for web playback (moves metadata to file start)-ss BEFORE -i = fast seek (keyframe). AFTER -i = accurate (slower)aac codec needs -strict experimental on some FFmpeg versions© AnastasiyaW, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/video-production/video-post-production of AnastasiyaW/codex-claude-code-config.
Open the folder on GitHubat commit 67709af
Video Post Production 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 Post Production this skillAnastasiyaW/codex-claude-code-config | 154 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Ffmpeg Skillkajisho5/ffmpeg-skill | 1.9k | — | ~7.4k | Automated safety check: Pass | MIT | |
| ShortsAgriciDaniel/claude-shorts | 219 | — | ~3.2k | Automated safety check: Notes | MIT | |
| ShowtimeFavioVazquez/showtime | 220 | — | ~3k | Automated safety check: Pass | MIT | |
| Explainroovincentsch/explainroo | 515 | — | ~439 | Automated safety check: Pass | MIT | |
| Watchmathiaschu/watch | 142 | — | ~4k | Automated safety check: Warn | MIT |
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…
AgriciDaniel/claude-shorts
Interactive longform-to-shortform video creator. An agent skill from AgriciDaniel/claude-shorts.
FavioVazquez/showtime
A skill your agent uses when the user wants a video made, edited or finished: a launch or promo, product demo, explainer, trailer or teaser, tutorial or walkthrough, a screen recording turned into a…
vincentsch/explainroo
Make an explainer video (MP4) with a voice-over using explainroo.
mathiaschu/watch
Watch a video from YouTube, Instagram, X/Twitter, Vimeo, TikTok or any of ~1800 yt-dlp sites (or a local path).
minicoohei/ai-agent-camp
TikTok/YouTube向け動画編集スキル。ffmpegでキャプション焼き込み、 Ken Burnsエフェクト、シーン結合、音声合成を行う。
AnastasiyaW/codex-claude-code-config
Find likely software bugs in a codebase, rank concrete bug candidates, and prove or reject them with focused regression tests before proposing a fix.
AnastasiyaW/codex-claude-code-config
A skill your agent uses when implementing Motion or Framer Motion in React/JavaScript: interactive UI components, micro-interactions, gestures, layout or page transitions, and scroll-based animation.
AnastasiyaW/codex-claude-code-config
Plan-based verification - freeze acceptance criteria before building, then verify after with an independent fresh-context agent (the builder must not verify their own work).
AnastasiyaW/codex-claude-code-config
Написание и запуск Claude Code dynamic workflows (JS-оркестратор субагентов).
AnastasiyaW/codex-claude-code-config
A skill your agent uses when: NotebookLM, notebooklm MCP, large documentation sets, courses, books, papers, or citation-backed research are mentioned.
AnastasiyaW/codex-claude-code-config
Validate a proposed DeepSeek API integration before any key or project context is sent: check thinking-mode tool-call history, strict-schema assumptions, bounded output, and provider data boundaries.
Categories
Video post-production rules: audio mastering, color, captions, platform export. Video Post Production is an agent skill from AnastasiyaW/codex-claude-code-config. Video post-production rules: audio mastering, color, captions, platform export.
Video Post Production fits situations like: export for tiktok; export settings; platform requirements; animate the video frames/scenes in code (use remotion-production-guide).
Run `npx skills add AnastasiyaW/codex-claude-code-config --skill video-post-production -a claude-code`. Or copy the skill folder (skills/video-production/video-post-production in AnastasiyaW/codex-claude-code-config) into .claude/skills/video-post-production in your project. Claude Code loads it when a task matches its description.
Run `npx skills add AnastasiyaW/codex-claude-code-config --skill video-post-production -a codex`. Or copy the skill folder (skills/video-production/video-post-production in AnastasiyaW/codex-claude-code-config) into .agents/skills/video-post-production 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 AnastasiyaW/codex-claude-code-config --skill video-post-production -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-post-production, .gemini/skills/video-post-production, .github/skills/video-post-production and .opencode/skills/video-post-production in your project.
Going by SKILL.md and its folder, Video Post Production needs the command-line tools its instructions call (ffmpeg and npx). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npx, 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.
Video Post Production is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Video Post Production: Ffmpeg Skill (kajisho5/ffmpeg-skill, 1.9k stars), Shorts (AgriciDaniel/claude-shorts, 219 stars), Showtime (FavioVazquez/showtime, 220 stars) and Explainroo (vincentsch/explainroo, 515 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
AnastasiyaW (a GitHub user) maintains it in AnastasiyaW/codex-claude-code-config, which has 154 GitHub stars. The repository holds 50 skills in this directory. The repository was last updated on October 9, 2026.
Source: AnastasiyaW/codex-claude-code-config on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.