Agent skill

Video 4k Normalization

by godot-fun in godot-fun/gai

Normalizes a single video clip to unified 3840×2160 60FPS H.265 Main10 40Mbps + AAC 320kbps BT.709 SDR MP4 4K master (FFmpeg re-encode, HDR tone-mapped).

MITAuto-check passedMedia & Creative

Install Video 4k Normalization

skills CLI
$ npx skills add godot-fun/gai --skill video-4k-normalization -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install godot-fun/gai video-4k-normalization --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/godot-fun/gai.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/video-4k-normalization .claude/skills/video-4k-normalization && rm -rf skills-src

Use ~/.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/

Facts

Skill name
video-4k-normalization
GitHub stars
182
Token cost
~940 tokens
SKILL.md length
306 words
Files
2
Skills in repo
36
Repo updated
First seen
Licence
MIT

At a glance

Normalizes a single video clip to unified 3840×2160 60FPS H.265 Main10 40Mbps + AAC 320kbps BT.709 SDR MP4 4K master (FFmpeg re-encode, HDR tone-mapped).

  • Works in 5 steps: Use the bundled script only. → Missing Python / FFmpeg → populate… → Tell the user video-4k-normalization/… → …
  • Tasks that involve Database schema design
  • SKILL.md covers Why, Rules, Quick Start and Defaults, plus 3 more sections
  • Calls python

What it does

Video 4k Normalization is an agent skill from godot-fun/gai. Normalizes a single video clip to unified 3840×2160 60FPS H.265 Main10 40Mbps + AAC 320kbps BT.709 SDR MP4 4K master (FFmpeg re-encode, HDR tone-mapped). Use before hard-cut merge when 4K (or near-4K) clips differ in color space, HDR/SDR, fps, or size. Triggers: video-4k-normalization, 4K normalization, video normalization, media conform, unify encode, color conform, tone map HDR, prepare for video-merge, mixed HDR/SDR.

Its SKILL.md is about 940 tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `reference.md`).

It sits in Media & Creative, covering Database schema design and Video production. It works with FFmpeg and Python. The repository describes itself as: A lightweight AI agent and skill workflow framework built with Godot. The licence is MIT.

When your agent uses it

  • Tasks that involve Database schema design
  • Tasks that involve Video production

Example prompts

  • “Use the video-4k-normalization skill to normaliz a single video clip to unified 3840×2160 60FPS H.265 Main10 40Mbps + AAC 320kbps BT.709 SDR MP4 4K…”
  • “/video-4k-normalization”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Use the bundled script only.
  2. Missing Python / FFmpeg → populate .dependency/, set populated: true, retry.
  3. Tell the user video-4k-normalization/ paths; they run video-merge on that folder when stitching.
  4. For low-res quality upscale → video-to-4k, then optionally re-normalize if color still mixed.
  5. Pipeline / filter details: reference.md

What it can do on your machine

Read from SKILL.md and the folder at commit aa1ac71. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Video 4k Normalization loads about 940 tokens when it runs. Until then it costs about 112 tokens; SKILL.md has 306 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~112
When it runs · the whole SKILL.md, loaded when a task matches
~940

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from godot-fun/gai at commit aa1ac71, republished under its MIT licence (© godot-fun). 306 words, ~940 tokens.

Download SKILL.mdSave it as .claude/skills/video-4k-normalization/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
video-4k-normalization
description
Normalizes a single video clip to unified 3840×2160 60FPS H.265 Main10 40Mbps + AAC 320kbps BT.709 SDR MP4 4K master (FFmpeg re-encode, HDR tone-mapped). Use before hard-cut merge when 4K (or near-4K) clips differ in color space, HDR/SDR, fps, or size. Triggers: video-4k-normalization, 4K normalization, video normalization, media conform, unify encode, color conform, tone map HDR, prepare for video-merge, mixed HDR/SDR.
disable-model-invocation
true

Video 4K Normalization

Re-encode a clip to one merge-safe 4K master (same delivery specs as video-to-4k, plus unified BT.709 SDR color):

SpecValue
Resolution3840×2160
Frame rate60 FPS
VideoH.265 Main10 (libx265, yuv420p10le)
Video bitrate40 Mbps
AudioAAC 320 kbps
ColorBT.709 / bt709 / tv (HDR → tone-mapped SDR)
ContainerMP4 (.mp4, hvc1 tag)

Not AI upscaling — use video-to-4k first when SD/HD needs Real-ESRGAN quality. This skill uses FFmpeg scale + encode only.

Why

Hard-cut video-merge is stream-copy. Mixed HDR (BT.2020 + PQ) and SDR (BT.709) clips look fine alone, but after concat the player often applies the first clip's HDR tags to later SDR → oversaturated cuts. Normalization unifies pixels and color tags first.

Rules

When this skill applies, read and follow skill-dependency-manager — run scripts as documented, install missing tools into .dependency/.

  • Run normalize.py through .dependency/python/python. Never use host python / ffmpeg.
  • Never overwrite sources. Outputs go under video-4k-normalization/.
  • Use the bundled script — do not hand-write equivalent FFmpeg commands.
  • One file per run — pass --video with a single file; repeat for each clip in a batch.

Quick Start

bash
.dependency/python/python .ai/video-4k-normalization/normalize.py --video path/to/clip.mp4

Example:

assets/shots/01.mp4   (HDR)
→ assets/shots/video-4k-normalization/01.mp4

assets/shots/10.mp4   (SDR)
→ assets/shots/video-4k-normalization/10.mp4

Then hard-cut merge the video-4k-normalization/ folder:

bash
.dependency/python/python .ai/video-merge/merge.py --folder path/to/clips/video-4k-normalization

Defaults

SettingDefaultNotes
Target colorBT.709 SDR limited (tv)HDR (PQ/HLG/BT.2020) → hable tone map
ScaleFFmpeg lanczos to 3840×2160No Video2X
FPSForced 60Frame dup/drop, not RIFE

Common Flags

--video · -o / --output

bash
.dependency/python/python .ai/video-4k-normalization/normalize.py --video clip.mp4
.dependency/python/python .ai/video-4k-normalization/normalize.py --video clip.mp4 -o out/masters/clip.mp4

Never overwrite source files. Input must be a single video file (--video), not a directory. Supported inputs: .mp4, .mkv, .mov, .avi, .webm, .wmv, .flv, .m4v, .mpeg, .mpg, .ts, .mts, .m2ts, .3gp, .ogv.

Agent Notes

  1. Use the bundled script only.
  2. Missing Python / FFmpeg → populate .dependency/, set populated: true, retry.
  3. Tell the user video-4k-normalization/ paths; they run video-merge on that folder when stitching.
  4. For low-res quality upscale → video-to-4k, then optionally re-normalize if color still mixed.
  5. Pipeline / filter details: reference.md

Tests

From repo root:

bash
.dependency/python/python .ai/video-4k-normalization/test_normalize.py

Manual CLI examples: cli/video-4k-normalization.md

© godot-fun, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .agents/skills/video-4k-normalization of godot-fun/gai.

  • SKILL.md
  • reference.md

Open the folder on GitHubat commit aa1ac71

Compare with similar skills

Video 4k Normalization 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.

Video 4k Normalization compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Video 4k Normalization this skillgodot-fun/gai182—~940Automated safety check: PassMIT
Vox DirectorAlisa0808/vox-director2.2k—~5.6kAutomated safety check: PassMIT
Ffmpeg Skillkajisho5/ffmpeg-skill1.9k—~7.4kAutomated safety check: PassMIT
OpenStoryline Install HelperFireRedTeam/FireRed-OpenStoryline3.5k—~1.5kAutomated safety check: NotesApache-2.0
Cassette Video EditCassette-Editor/oh-my-cassette1581 repos~3.4kAutomated safety check: PassMIT
Whiteboard Videognipbao/codex-whiteboard-video-skill326—~7.2kAutomated safety check: NotesMIT

Similar skills

  • Vox Director

    Alisa0808/vox-director

    Turn ONE topic into a finished Vox-style paper-collage explainer / ad video, end to end on the Atlas Cloud API + local ffmpeg — script, collage keyframes, motion, voice-over, music, captions, all…

    2.2k GitHub stars~5.6k tokensUpdated 3 days ago
    Media & CreativeAuto-check passed
  • 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…

    1.9k GitHub stars~7.4k tokensUpdated 4 days ago
    Media & CreativeAuto-check passed
  • OpenStoryline Install Helper

    FireRedTeam/FireRed-OpenStoryline

    Installs, repairs and starts a local source checkout of FireRed-OpenStoryline, from prerequisites and a venv to resources, config and the MCP and web servers.

    3.5k GitHub stars~1.5k tokensUpdated 2 mo ago
    Media & CreativeAuto-check: notes
  • Cassette Video Edit

    Cassette-Editor/oh-my-cassette

    Edit, trim, cut, caption, subtitle, reframe, combine, add background music to, or export video, audio, and image files through Cassette.

    158 GitHub starsUsed in 1 repo~3.4k tokens
    Media & CreativeAuto-check passed
  • Whiteboard Video

    gnipbao/codex-whiteboard-video-skill

    Generate smooth hand-drawn whiteboard and story videos directly inside Codex from text scripts, GPT Image 2 color storyboards, scene plans, SVGs, line art, or local images.

    326 GitHub stars~7.2k tokensUpdated 1 mo ago
    Media & CreativeAuto-check: notes
  • Muapi Director

    Anil-matcha/vox-ai-motion-graphics-generator

    Turn ONE topic, talking-head video, or photo into a finished Vox-style paper-collage explainer / ad video on the MuAPI platform (api.muapi.ai) + local ffmpeg — script, collage keyframes, motion…

    244 GitHub stars~679 tokensUpdated 1 mo ago
    Media & CreativeAuto-check passed

More from godot-fun/gai

All 36 skills in this repo
  • AI Text To Speech

    godot-fun/gai

    Zero-shot text-to-speech with voice cloning via IndexTTS2 (index-tts).

    182 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Audio Denoise

    godot-fun/gai

    Reduces background noise in a single audio file using FFmpeg afftdn.

    182 GitHub stars~465 tokensUpdated today
    Auto-check passed
  • Audio Fade

    godot-fun/gai

    Applies fade-in and fade-out at the start and end of a single audio file using FFmpeg.

    182 GitHub stars~652 tokensUpdated today
    Auto-check passed
  • Normalizes a single audio file to consistent LUFS loudness with true-peak limiting using FFmpeg.

    182 GitHub stars~684 tokensUpdated today
    Auto-check passed
  • Standardizes a single audio file to 44100 or 48000 Hz and exports 16-bit PCM WAV using FFmpeg.

    182 GitHub stars~638 tokensUpdated today
    Auto-check passed
  • Audio Split

    godot-fun/gai

    Splits a single audio file into two segments (part 1 before the split point, part 2 after) using FFmpeg.

    182 GitHub stars~554 tokensUpdated today
    Auto-check passed

Works with

Questions about Video 4k Normalization

What does Video 4k Normalization do?

Normalizes a single video clip to unified 3840×2160 60FPS H.265 Main10 40Mbps + AAC 320kbps BT.709 SDR MP4 4K master (FFmpeg re-encode, HDR tone-mapped). Video 4k Normalization is an agent skill from godot-fun/gai.709 SDR MP4 4K master (FFmpeg re-encode, HDR tone-mapped).

When should I use Video 4k Normalization?

Video 4k Normalization fits situations like: tasks that involve Database schema design; tasks that involve Video production.

How do I install Video 4k Normalization in Claude Code?

Run `npx skills add godot-fun/gai --skill video-4k-normalization -a claude-code`. Or copy the skill folder (.agents/skills/video-4k-normalization in godot-fun/gai) into .claude/skills/video-4k-normalization in your project. Claude Code loads it when a task matches its description.

How do I install Video 4k Normalization in Codex?

Run `npx skills add godot-fun/gai --skill video-4k-normalization -a codex`. Or copy the skill folder (.agents/skills/video-4k-normalization in godot-fun/gai) into .agents/skills/video-4k-normalization in your project. Codex loads it when a task matches its description.

Can I use Video 4k Normalization in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add godot-fun/gai --skill video-4k-normalization -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-4k-normalization, .gemini/skills/video-4k-normalization, .github/skills/video-4k-normalization and .opencode/skills/video-4k-normalization in your project.

What does Video 4k Normalization need to run?

Going by SKILL.md and its folder, Video 4k Normalization needs the command-line tools its instructions call (python). Our summary lists: Python 3.

Does Video 4k Normalization access the network?

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.

Is Video 4k Normalization safe to install?

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.

What licence does Video 4k Normalization use?

Video 4k Normalization is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Video 4k Normalization use?

About 940 tokens (SKILL.md is roughly 3.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Video 4k Normalization?

Skills that share tags, products or a category with Video 4k Normalization: Vox Director (Alisa0808/vox-director, 2.2k stars), Ffmpeg Skill (kajisho5/ffmpeg-skill, 1.9k stars), OpenStoryline Install Helper (FireRedTeam/FireRed-OpenStoryline, 3.5k stars) and Cassette Video Edit (Cassette-Editor/oh-my-cassette, 158 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Video 4k Normalization?

godot-fun (a GitHub organization) maintains it in godot-fun/gai, which has 182 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on October 9, 2026.

Source: godot-fun/gai on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.