Skip to content

ecompress 2.4.0

Choose a tag to compare

@priyadip priyadip released this 18 Aug 14:41
· 3 commits to main since this release
pip install --upgrade ecompress

Added

A progress bar while encoding. Long encodes printed nothing for minutes, so a run was indistinguishable from a hang. FFmpeg's own -progress stream now drives a bar with a percentage, a time estimate, and what is being encoded:

  [#####...................]  21%  0:09 left  2560x1440 @ 24 fps

Drawn only to a real terminal, so piping the output or using --quiet / --json stays clean. The estimate is withheld for the first few percent, where start-up cost would make it read wildly wrong.

Fixed

Quality targeting could replace a better result with a worse one. On a 4K screen recording the bitrate search reached 38.3 MB, the CRF fill managed only 34.4 MB - and the fill's result was adopted anyway, delivering the smaller of the two against a 40 MB floor. The fill now reports the size it achieved and is taken only if it improves on what came before.

The CRF ladder stopped at 16, not always enough to fill a window on very compressible 4K; it now runs to 10.

--timeout was not enforced during an encode: reading FFmpeg's progress stream blocks until it exits, so the deadline could only be noticed after the work had finished. A watchdog now stops it on time.

448 tests, 84% coverage, verified on Linux, macOS and Windows across Python 3.10-3.13.