Compress, crop and convert images and videos with following media formats:
Images:
- Input: JPEG, PNG, WebP, AVIF, GIF, ICO, HEIC, TIFF
- Output: JPEG, PNG, WebP, AVIF, ICO, GIF, TIFF
Videos:
- Input: MP4, WebM, MOV, AVI, MKV, M4V, FLV, TS, WMV, OGV
- Output: MP4 (H.264), HEVC (H.265), MKV (H.264), MOV (H.264), WebM (VP9)
- Node.js 18 or later
- Internet access for installation
npm install
copy .env.example .env
npm startnpm install
cp .env.example .env
npm startAdjust as needed:
| Variable | Default | Description |
|---|---|---|
PORT |
3000 |
HTTP port |
JSON_BODY_LIMIT |
1mb |
Max JSON body size (Express) |
IMAGE_MAX_FILES |
100 |
Max images per job |
IMAGE_MAX_SIZE_MB |
500 |
Max image size (MB) |
VIDEO_MAX_FILES |
20 |
Max videos per job |
VIDEO_MAX_SIZE_MB |
2048 |
Max video size (MB) |
VIDEO_MAX_DURATION_SEC |
3600 |
Max video duration (seconds) |
Squeezy source code is MIT. Third-party files are downloaded on install/first start and keep their own licenses.
| Component | License |
|---|---|
| Bricolage Grotesque | SIL OFL 1.1 |
Material Design Icons (@mdi/font 7.4.47) |
Apache 2.0 / Pictogrammers |
| sharp | Apache-2.0 |
| JSZip 3.10.1 | MIT |
| FFmpeg / ffprobe (ffmpeg-static builds) | GNU Lesser General Public License (LGPL) version 2.1 |
Squeezy is built for internet-less hosting. It doesn't have any security features built in. Use at your own risk.

