Automated release: version and notes generated from pull requests merged since 2.17.3.
Fixed
- A font file in a folder with a non-ASCII name draws on Windows. drawtext hands
fontfile=to FreeType, which opens it with the ANSIfopenon Windows. A--font-file(or a brand'sfont_file) under a folder such asフォントorcompat dir ünïcodefailed to load, andoverlay.py,graphics.pyandgrid.pydied with "could not parse fontconfig pattern". Measured on the gyan.dev 9.0.2 runner: the same font under an ASCII folder loaded, spaces included. Such a path is now given in its 8.3 short form, or copied into the run's private drawtext folder under an ASCII name when the drive keeps no short names (font_path_copied). Found when the Windows tests first ran in parallel. verify.py --timeout 0no longer times out every step at once. 0 means no limit, as it does on every other tool;verify.pypassed it to Python as a 0-second limit. Its own per-step default (600 s) is now stated in--help.- The contract says
renderaccepts an audio-only input. It always did (--template podcastand--template audiogramtake a WAV/M4A), butcontract --jsonlisted it asvideo_required: true, audio_only: false.
Documentation
- A read-through for statements that contradicted the code or each other:
- README:
join.pyalways re-encodes, so it is not a stream-copy tool. The no-Node install copies the same filesnpx ffmpeg-skilldoes (templates/andpackage.jsonwere missing, so no--templaterendered).doctor'sokis false when anything any tool requires is missing, with the full required list. The CI matrix now names Ubuntu 26.04's FFmpeg 8.0.1. The contract'sdeprecatedlist is described as it is in 2.x. The demo count is gone. The release bumps five files. All nine test groups are listed. The Quick start installs FFmpeg first and says how--transcribegets a speech engine. references/scripts.md:joinis not one of the tools that measure under--dry-run.references/gotchas.md: intermediates aresuperfastsince 2.16.docs/design-decisions.md:probeisnonein the contract, notanalysis_only.docs/roadmap.md: 2.0.0 is shipped. The 1.19 to 1.21 themes are marked superseded.- SKILL.md:
references/scripts.mdholds most flags, and--helplists all. The description now states the FFmpeg floor next to Python's (FFmpeg 6.1+ and Python 3.10+, with 5.x and 3.9 deprecated). - SKILL.md: three rules stated twice now appear once:
--overwriteconsent lives in step 7 only, "never report success without the output probe" in step 6 only, and a stray blank line is gone. 157 bytes and one line of headroom under the 30,000-byte and 220-line budgets.
- README:
Tests
npm testand CI run the end-to-end modules in parallel (tests/run_parallel.py): the same tests astests/test_all.py, with each module, and two shards of each of the four largest, in its own process andOUTdirectory. On a 4-core Linux machine all 936 tests took 21 minutes instead of 35. FFmpeg already uses several threads per encode, so more processes stop helping beyond that.tests/test_all.pystill runs them one after another.- Fix statements that contradicted the code or each other; run the e2e tests in parallel; non-ASCII font paths on Windows (#365)
What's Changed
- Fix statements that contradicted the code or each other; run the e2e tests in parallel by @kajisho5 in #365
Full Changelog: v2.17.3...v2.17.4