Skip to content

v2.0.0

Choose a tag to compare

@noxend noxend released this 30 Aug 08:24
· 126 commits to main since this release

Cutting a stretch out of a recording, and five settings removed.

New

  • Cut a stretch out of a recording. On the command line, name the ranges with --cut, once each:

    shrinkit --cut 0:32-0:35 --cut 2:30-end recording.mov

    Or put a <recording>.cuts text file next to the video, one range per line, which is what the
    right-click menu uses and what survives being closed and come back to. shrinkit: mark cuts
    opens the video and the sidecar together, so you can read the timestamps off the player while you
    type them in.

    0-0:20
    0:32-0:35
    1:10-1:12.5
    2:30-end
    

    0 is the start and end is the real length of the clip, so trimming either edge is the same
    range as everything else. The cut frames are never written to the output at all, which is the
    point if you are cutting a password or a private chat out of a recording rather than just
    shortening it. --cut replaces the sidecar for that run rather than adding to it, the same way
    every other flag beats the config file.

  • keep_days deletes originals from .processed/ once they are that many days old. It defaults to
    0, which keeps them forever, so nothing changes until you set it.

  • A sharp preset at crf = 18, for a clip going into a pull request where the reviewer has to
    read the diff rather than just see that something moved.

Changed

Five settings are gone. An old settings.conf still loads, they are simply ignored from now on, so
read this list before upgrading rather than after.

  • output_dir is gone. Results go to output/ again. If you had pointed it somewhere else, that is
    where your recordings stopped arriving. To send them elsewhere now, replace output/ with a
    symlink to wherever you want them.

  • output_suffix is gone, and output files are named after the preset that ran. clip.mov comes
    back as clip-tiny.mp4, or plain clip.mp4 when no preset was named. It used to be
    clip-2x.mp4, so anything downstream matching that pattern needs a second look.

  • trim_idle is gone. It renumbered timestamps against the frame rate the container claims, and
    screen recordings lie about that: a ReplayKit capture reports 120 while actually running nearer
    32. Measured on a real clip, a filter tuned to drop zero frames still compressed 24.6 seconds
    down to 7.8. It had been doing that to every recording since v1.0.0, on top of whatever it
    legitimately trimmed. Cutting a stretch out on purpose covers the same ground and does not read a
    frame rate from anywhere.

  • notify_title is gone; the banner says shrinkit.

  • check_updates is gone. It ran a git fetch from inside the encoder, which is not where a
    network call belongs.

Presets are renamed, and there are three of them: 2x for speed, sharp for detail, tiny for
size. default was empty and only held a place in the menu, and chat said where the file was
going rather than what it does. ./update.sh renames your files in place and leaves any preset you
wrote yourself alone, but --preset chat in a script or an alias needs changing to --preset tiny
by hand.

Fixed

  • A failed move into place is reported instead of finishing silently and leaving a stray part-file
    behind.
  • A cut range that starts at or past the end of the clip is rejected, instead of encoding a full
    length copy and reporting a cut that never happened.
  • A .cuts sidecar selected in Finder alongside its video is skipped instead of being handed to
    ffmpeg as a video.
  • A locked or unwritable original no longer files its .cuts sidecar away without it.
  • The warning about a misnamed sidecar no longer fires for an unrelated recording whose name starts
    the same way.
  • Two runs writing the same output name no longer produce an unplayable file. Each encode goes to a
    hidden part-file and is renamed into place.
  • fps is capped at 240, so a typo cannot start an encode that never finishes.
  • A cut range typed as exactly 6.0-6.1 is no longer rejected for being a hair under a tenth of a
    second.
  • The frame rate cap is applied after the speed change on the cuts path too, so fps = 20 with
    cuts and 3x speed no longer ships at 60.

Upgrading

./update.sh

Your recordings carry over untouched, and so does settings.conf. What needs your attention is the
Changed list above: output_dir and output_suffix change where files land and what they are
called, and a renamed preset breaks any script that named the old one.