github kajisho5/ffmpeg-skill v1.17.1

latest releases: v1.17.3, v1.17.2
6 hours ago

Automated release: version and notes generated from pull requests merged since 1.17.0.

Fixed

  • The caption size is fitted on the template path too. render.py --template NAME fills the
    caption size from the delivery table and forwarded it as an explicit --size, which is how
    caption.py is told "a human chose this size" — so --fit-size auto never ran and a long cue
    was split across two consecutive cues on every template run (eval 18 cw1/dl1/dl3/dl4), the one
    path a "make this a TikTok" request takes. A template's filled project now states
    "fit_size": "on"; a template file that states its own fit_size, and a brand file that
    actually states caption.size, still win — --brand on its own is not a stated size, so a
    brand of colours or a font keeps the fit — and "fit_size": "off" reproduces 1.17.0's captions
    byte for byte.
  • render.py project captions accept fit_size, min_size and fit_size_scope (eval 18
    cs1: the keys were refused as unknown, so the fit policy could not be stated in a project at
    all and the four stages had to be run by hand). render.py's result also carries the caption
    stage's own block as caption.
  • SKILL.md routes the 1.17 features. Filler words → silence.py --filler --words, cutting to
    the music → scenes.py --beats then cut.py --snap beats, a folder and the cores →
    batch.py --jobs auto, one stage changed → render.py --cache DIR. None of them appeared in
    the routing table, so runs rebuilt them by hand or reported the feature does not exist (eval 18
    bt2/fw1/fw3/rc1). Paid for with duplicated wording elsewhere: the file is still under the
    30,000-byte budget.
  • One label for a partial result. SKILL.md now states it: a partial result is Done: with the
    shortfall in Notes:, never a third label like Done (partially):.
  • caption.py says when the text is unchanged: caption text unchanged in the summary and
    text_unchanged: true in the result when the drawn text equals the cues that were handed in —
    nothing transcribed, no cue dropped, no cue split across two cues and no glyph stripped by
    --emoji none. Wrapping, line breaks and timing do not count as a change; the key is burn mode
    only (--mode mux never touches the text and omits it).
  • #234: child-process output is decoded as UTF-8, never as the machine's code page. On a
    Windows cp932 locale text=True decoded ffprobe's UTF-8 JSON with the console code page, the
    reader thread raised UnicodeDecodeError, communicate() returned an empty stdout and
    probe.py printed ?s | no video | no audio and exited 0 — an unmeasured file reported as
    measured. Every child capture in scripts/ (ffmpeg, ffprobe, fc-list/fc-match, whisper, the
    sibling tools render.py and batch.py run) now passes encoding="utf-8", errors="replace" --
    including run_analysis(), the capture every ffmpeg measurement goes through, and the two
    captures in evals/ -- and
    a probe whose ffprobe printed nothing refuses with kind: input naming the unreadable output
    instead of returning a document of nulls.
  • evals: write_fixtures.py stages a batch recipe's output_dir absolute under the prompt's
    own directory — a relative "out" resolved against the caller's cwd, so the staged recipe wrote
    outside the prompt folder and had to be rewritten before the prompt could be answered.
  • fix: 1.17.1 — fit-size reachable from templates, SKILL.md routes the 1.17 features, UTF-8 child output (#234) (#237)
  • docs: eval 18 at 1.17.0 (100 prompts, focused Opus grader, trigger 50/50) (#236)

What's Changed

  • docs: eval 18 at 1.17.0 (100 prompts, focused Opus grader, trigger 50/50) by @claude[bot] in #236
  • fix: 1.17.1 — fit-size reachable from templates, SKILL.md routes the 1.17 features, UTF-8 child output (#234) by @claude[bot] in #237

Full Changelog: v1.17.0...v1.17.1

Don't miss a new ffmpeg-skill release

NewReleases is sending notifications on new releases.