ffmpeg-skill 0.8.4 → 0.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +4 -0
  2. package/SKILL.md +30 -1
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -163,6 +163,10 @@ python3 evals/run.py --list # routing eval prompts (see evals/)
163
163
  node bin/install.js --dir /tmp/skills # try the installer without touching ~/.claude
164
164
  ```
165
165
 
166
+ ## Support
167
+
168
+ If this skill saves you time, you can help keep it maintained through [GitHub Sponsors](https://github.com/sponsors/kajisho5). Issues and pull requests are just as welcome.
169
+
166
170
  ## License
167
171
 
168
172
  [MIT](LICENSE)
package/SKILL.md CHANGED
@@ -49,7 +49,8 @@ Scripts live in `scripts/` next to this file; run them with `python3 <skill-dir>
49
49
  crops keeping the subject, colours not washed out, transitions landing
50
50
  where intended. The job is not finished until the report's `Look:` line
51
51
  names that PNG; a probe alone cannot see a caption sitting on someone's
52
- face. Audio-only jobs (sync, loudness, silence) write `Look: not needed`.
52
+ face. Audio-only jobs (sync, loudness, silence, or any job whose input is
53
+ an audio file) write `Look: not needed`; there is no picture to inspect.
53
54
 
54
55
 
55
56
  ## Before you run anything: what to ask, what to assume
@@ -112,6 +113,34 @@ Do not ask for things `probe.py` can tell you.
112
113
  | "it's a phone video with variable frame rate" | nothing extra: every re-encoding script conforms VFR to constant fps automatically; `fit.py --fps 30` to pick the rate |
113
114
 
114
115
 
116
+ ## Audio-only files
117
+
118
+ Audio files are a first-class input, not a special case. `probe.py`, `cut.py`,
119
+ `silence.py`, `loudness.py`, `audio.py`, `sync.py` and `check.py --platform
120
+ podcast` all accept WAV, FLAC, MP3, M4A/AAC, OGG and Opus (any container ffmpeg
121
+ can read) and write the codec that fits the output extension, so the same
122
+ commands work with `talk.wav` in place of `talk.mp4`. What changes:
123
+
124
+ - The output extension picks the format: `-o out.mp3` converts, `-o out.wav`
125
+ keeps PCM, `-o out.m4a` writes AAC. `audio.py in.wav -o out.mp3` with no
126
+ other flag is a plain conversion.
127
+ - `cut.py` stream-copies audio too, so trims are lossless unless the format
128
+ cannot be cut on a packet boundary.
129
+ - `Look: not needed` in the report; `Check:` still applies for loudness
130
+ (`check.py file.wav --platform podcast` measures LUFS and true peak).
131
+ - Scripts that need a picture (`fit`, `caption`, `overlay`, `graphics`,
132
+ `color`, `export`, `join`, `scenes`, `look`) refuse an audio file with
133
+ "input has no video stream". Say so instead of forcing a video wrapper.
134
+
135
+ | User says (audio file) | Do |
136
+ |-----------|----|
137
+ | "normalise this WAV to -14 LUFS", "podcast levels" | `loudness.py talk.wav -I -14 --tp -1 -o talk_norm.wav` (`-I -16 --tp -1.5` for podcasts) |
138
+ | "remove the silence from this recording" | `silence.py talk.wav -o talk_tight.wav` |
139
+ | "clean up the noise in this M4A" | `audio.py talk.m4a --voice -o talk_clean.m4a` (speech) or `--denoise` |
140
+ | "convert this WAV to MP3" | `audio.py talk.wav -o talk.mp3` |
141
+ | "trim this audio from 00:30 to 02:00" | `cut.py talk.wav --start 0:30 --end 2:00 -o talk_cut.wav` |
142
+ | "is this loud enough for Apple Podcasts?" | `check.py talk.m4a --platform podcast` |
143
+
115
144
  ## Report format
116
145
 
117
146
  Finish every job with this shape (numbers from `probe.py`/`check.py`, not memory):
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ffmpeg-skill",
3
- "version": "0.8.4",
3
+ "version": "0.8.5",
4
4
  "description": "Agent Skill that lets coding agents (Claude Code, Cursor, Codex) do professional video editing with local FFmpeg: MCP server, batch processing, declarative project rendering, brand kits, motion-graphics templates, HTML delivery reports, scene detection, delivery checks, cut, silence removal, transitions, multicam, captions, sync with drift correction, HDR to SDR, LUTs, audio clean-up and ducking, loudness, platform exports. No API keys, no cloud, no dependencies.",
5
5
  "keywords": ["ffmpeg", "video", "agent-skill", "claude-code", "cursor", "codex", "skill", "video-editing"],
6
6
  "license": "MIT",