A lightweight desktop utility for trimming, cropping, previewing, and exporting video, GIF, and still-image media.
Current release: 0.2.1
- MP4, MOV, MKV, WebM, GIF, PNG, JPEG, WebP, and other Qt-readable still-image preview
- Animated GIF playback with trim, frame stepping, and export to MP4, MOV, GIF, and PNG sequences
- Interactive crop overlay with draggable edges and handles
- Ctrl-drag crop handles to preserve the crop aspect ratio
- Live resize, 90° rotation, and horizontal/vertical flip previews
- Toggleable crop-coordinate and trim annotations with time or frame display
- Thumbnail-strip timeline with trim in/out selection
- Exact timeline viewport start/end for precision trimming
- Draggable gray viewport handles, wheel zoom, and frame-step navigation
- Exact trim-in and trim-out entry by timecode or frame number
- Dockable Info panel with editable playback/trim/crop values and source metadata
- Frame stepping and trim-handle nudging from the keyboard
- Playback speed control for preview and export
- Export dialog with format, size, quality, audio, and PNG sequence padding controls
- Remembered export settings and output folder
- FFmpeg export to MP4, MOV, GIF, PNG stills, and PNG sequences
- Headless CLI export with media, trim, and crop options
- Python 3.8–3.12
- PySide6 desktop UI
- Python 3.8 through 3.12
ffmpegffprobe
CropBox checks for ffmpeg and ffprobe on startup and provides install guidance from Help -> Install FFmpeg.
Typical install on Ubuntu/Debian:
sudo apt install ffmpeg- Space: play/pause
- Ctrl+I: toggle the Info panel
- Left/Right: step one frame
- Shift+Left/Right: nudge selected trim handle by one frame
- Ctrl+Left/Right: nudge selected timeline viewport handle by one frame
- Ctrl+Shift+D: open Resize
- Ctrl+Shift+L/R: rotate left/right 90°
- Ctrl+Shift+U: rotate 180° (upside down)
- Ctrl+Shift+H/V: toggle horizontal/vertical flip
- Ctrl+Shift+0: reset transforms
- File: Open, Export, Quit
- Edit: Set Trim In, Set Trim Out, Reset Trim, Reset Timeline, Create Crop, Reset Crop, Playback Speed, Loop Playback
- Transform: Resize, Rotate Left/Right/180°, Flip Horizontal/Vertical, Reset Transform
- View: Info Panel, Show Annotations
- Help: Install FFmpeg, About Cropbox
Install the latest release from PyPI:
pip install cropboxOr install from a local source checkout:
pip install .cropboxOpen media immediately:
cropbox input.mp4Open with initial trim and crop values:
cropbox input.mp4 --trim-in 12.5 --trim-out 00:00:20.000 --crop 100 50 1280 720Open at a specific time or frame:
cropbox input.mp4 --current-time 00:00:12.500
cropbox input.mp4 --current-frame 300Export directly without opening the UI:
cropbox big_buck_bunny_1080p_h264.mov -o big_buck_bunny.mp4Export with trim and crop values:
cropbox input.mp4 --out output.mp4 --trim-in 12.5 --trim-out 20 --crop 100 50 1280 720-o, --out PATH: export directly to MP4, MOV, GIF, or PNG without opening the UI-f, --force: overwrite an existing--outfile--trim-in: initial trim-in time in seconds orHH:MM:SS.mmm--trim-out: initial trim-out time in seconds orHH:MM:SS.mmm--crop X Y WIDTH HEIGHT: initial crop rectangle in source pixels--current-time: initial current time in seconds orHH:MM:SS.mmmwhen launching the UI--current-frame: initial current frame number when launching the UI
- Version
0.2.1fixes GIF probing so animated GIFs open on the timed-media path instead of the still-image path. - Playback speed affects both preview and export for timed media.
- Resize, rotation, and flip transforms are previewed live and applied to MP4, MOV, GIF, and PNG exports.
- Edit-stage resize is applied after crop; export size presets can optionally resize the transformed result again.
- Headless export defaults to the full media duration when
--trim-outis omitted. - Export size presets preserve the cropped aspect ratio and report the resulting dimensions.
- High, Balanced, and Smaller File presets control H.264 quality or GIF palette size.
- Exact trim-in and trim-out values can also be entered from the Edit menu.
- Press Enter in an Info panel field to apply current time/frame, playback FPS, trim, timeline viewport, or crop changes.
- Timeline Start and End zoom the visible timeline; expanding trim automatically expands the timeline viewport when needed.
- Gray viewport-handle drags preview against the current timeline and apply on mouse release.
- Mousewheel over the timeline zooms the visible range; when trim and view match, wheel zoom adjusts both together.
- Reset Timeline restores the full media duration.
- The playhead is constrained to the active trim range.
View -> Show Frame Valuestoggles the transport and timeline labels between time and frame display.- Still images disable playback and trim controls, but can still be cropped, transformed, and exported as PNG.
- PNG sequence export defaults to
%08dframe padding and can be adjusted in the export dialog.
