New tool: composite --colsx--rows clips into one grid (e.g. a 4x2 wall
of takes or angles), each cell letterboxed (not stretched) to a common
--cell-width/--cell-height so mismatched aspect ratios and resolutions
line up cleanly. --label auto (default) burns each clip's own filename,
extension stripped, into its cell's bottom-right corner; --label none
turns that off. No audio unless --audio-from picks one input's track --
mixing every clip's audio together is rarely what a comparison grid needs,
so this tool never does it silently. Runs only as long as the shortest
clip by default; --pad instead holds each shorter clip's last frame (with
silence) out to the longest.
The per-cell label is filename-derived text reaching a drawtext=text=...
option, the same injection class fixed in 0.15.3 -- wrapped with the
existing escape_drawtext() helper from the start, with a regression test
that builds a clip literally named to look like a filter-graph breakout
payload and confirms it renders as inert literal text (not a new filter).
What's Changed
- add .npmignore: stop shipping pycache in the npm tarball by @kajisho5 in #102
- Add sphere.py: flat-viewport extraction from 360/spherical video by @kajisho5 in #103
- Add 10 tools: cropdetect, deinterlace, denoise, redact, waveform, straighten, freeze, pad, speedramp, loop by @kajisho5 in #104
- Fix 4 bugs found in a post-merge review of the 39-tool set by @kajisho5 in #106
- Fix a real filter-graph injection via colour flags by @kajisho5 in #107
- Fix a real filter-graph injection via --font fallback by @kajisho5 in #108
- Skip the new font-injection regression test on Windows CI by @kajisho5 in #109
- Fix input deletion after failed ffprobe inspection by @srthomas21 in #105
- Add grid.py: composite clips into a COLSxROWS video grid by @kajisho5 in #110
New Contributors
- @srthomas21 made their first contribution in #105
Full Changelog: v0.12.5...v0.16.0