Cropbox
A lightweight desktop utility for trimming, cropping, previewing, and exporting video, GIF, and still-image media.
Features
- MP4, MOV, MKV, WebM, GIF, PNG, JPEG, WebP, and other Qt-readable still-image preview
- 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
Requirements
- 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
Controls
- 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
Menus
- 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
Install the latest release from PyPI:
pip install cropbox
Or install from a local source checkout:
pip install .
Run
cropbox
Open media immediately:
cropbox input.mp4
Open with initial trim and crop values:
cropbox input.mp4 --trim-in 12.5 --trim-out 00:00:20.000 --crop 100 50 1280 720
Open at a specific time or frame:
cropbox input.mp4 --current-time 00:00:12.500
cropbox input.mp4 --current-frame 300
Export directly without opening the UI:
cropbox big_buck_bunny_1080p_h264.mov -o big_buck_bunny.mp4
Export with trim and crop values:
cropbox input.mp4 --out output.mp4 --trim-in 12.5 --trim-out 20 --crop 100 50 1280 720
CLI Options
-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
Notes
- 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.
Metadata
Release files for cropbox 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cropbox-0.2.0.tar.gz | 1.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cropbox-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / cropbox-0.2.0.tar.gz
| Download URL | cropbox-0.2.0.tar.gz |
|---|---|
| Size | 1.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
691d0494b52d313951504823e4249284d6c46e5aaaad6f7526b77a7868669d43
|
|
BLAKE2b-256 checksum How to use checksums |
c5d0139f3da94dfd1ee4547c99c39d6379ec243d2565b9c589457e72de4b84f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.10
|
Release files / cropbox-0.2.0-py3-none-any.whl
| Download URL | cropbox-0.2.0-py3-none-any.whl |
|---|---|
| Size | 46.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cdc920ab99617b57af00f3cb46d948701fdad41f5686dfb719229664506c5abc
|
|
BLAKE2b-256 checksum How to use checksums |
277d1a3eab47af7cd451eaa88dc9547876a88f0a4f0f9879dc047f71a18c9951
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.10
|