Repository navigation
v3.3.0
Automated release: version and notes generated from pull requests merged since 3.2.3.
Added
-
source_carry: every result says what the output lost from its source. A tool that writes a
media file compares what its first input carried besides the picture and the sound (subtitle
tracks, chapters, a cover picture, surround channels,creation_time, the audio language tag, the
start timecode) with the written file and reportssource_carry: {kept, dropped}. A lost subtitle
track, chapter list, cover picture or surround layout is also asource_items_droppedwarning,
unless the tool already says it throughdropped_non_av_streams. Until now such a run was
verified: truewith no note (#401). The key appears only when the source had one of the items,
never changesverified, and no tool writes a different file. -
npx ffmpeg-skill mcpstarts the stdio MCP server (python3 mcp/server.py), the command
the MCP Registry manifest (server.json, kept on the package version by the release bump)
publishes. An OpenSSF Scorecard workflow runs weekly and on pushes tomain(#369). -
tests/sweep.pyruns one input through the 25 single-input tools and prints what each said
(--baseline PLAINkeeps only the rows that differ from a plain clip's). With the
sibling-sweepskill, the AGENTS.md rule and the PR template's "Siblings" section, a reported
defect is now checked across the tools before it is fixed. Its first run, on the class behind
#437, found #438. -
Codex and Gemini CLI plugin installs find the skill.
codex plugin marketplace add kajisho5/ffmpeg-skillalready installed the plugin, but Codex listed no skill for it: Codex
0.167 and Gemini CLI 0.68 discover a plugin's skill only atskills/<name>/SKILL.md. The
repository now carriesskills/ffmpeg-skill/SKILL.md, generated from the rootSKILL.md, a
gemini-extension.jsonand a.cursor-plugin/plugin.json; the release bump moves their
versions. Claude Code still counts one skill (#406). -
A
pluginbranch with only what a plugin install needs. Each release commits the npm
tarball's contents plus the plugin manifest and theskills/copy (2.6 MB, 88 files) to the
pluginbranch. Pointed at the repository root, a Claude Code or Codex plugin install copies all
28 MB of it, tests and evals included. The marketplace entry moves to the branch once the first
release has published it.
Fixed
caption.py --srt --positionput the text in the wrong place for every value but the bottom
row (#436):toplanded mid-left,centertop-left,top-lefttop-right. The SRT burn hands its
style to libass'sforce_style, which readsAlignmentin the legacy SSA numbering, and it was
given the v4+ numpad value. It now gets the legacy one (top6,center10,top-left5,
top-right7);--textand--transcribe, which burn a generated ASS file, were right already.- An odd-sized 4:2:0 JPEG (a phone screenshot) failed with "Invalid odd size" in
insert.py
and in every tool that converts a BT.601 source to BT.709 (#437): thecolorspacefilter, first
in the graph, refuses an odd width or height. The frame is now padded to even for the conversion and cropped
back to its own size after it, so no pixel is lost or resampled; an even-sized source runs the
command it ran before. - An odd-sized clip failed in
caption.pyand abortedstabilize.py(#438, found by sweeping
the class behind #437). The runner's even-size retry put its scale at the head of the-vf
chain, where a later filter could make the frame odd again; it now goes at the end, where the
encoder reads it.stabilize.pyscales an odd frame to even before both vid.stab passes
(vid.stab asserts on one) and recordsodd_dimensions_scaled_even. - Release versions: a squash commit whose subject does not end with "(#N)" is resolved to its PR
by the merge commit's SHA (a failed lookup stops the release job instead of guessing). 3.2.3 shipped three features as a patch because the subject ended
"(#433, carries #432 and #434)" and thefeaturelabel was never read. - Say what the output lost from its source; fix --srt --position and odd-sized video; plugin branch (#435)
What's Changed
- Say what the output lost from its source; fix --srt --position and odd-sized JPEGs by @kajisho5 in #435
Full Changelog: v3.2.3...v3.3.0