flutter_compress 1.5.1
flutter_compress: ^1.5.1 copied to clipboard
Native video & image compression for Android, iOS & Web — no FFmpeg. Target-size/bitrate/quality control, HEVC with H.264 fallback, live progress and cancellation.
Changelog #
1.5.1 #
- Add
llm-guide.md— an integration guide for AI coding assistants (Claude Code, Cursor, Copilot). - iOS: clearer internal names. No API or behaviour change.
1.5.0 #
- iOS: fix a compile error that broke every 1.4.0 iOS build (
CompressionEnginewas missingcancelAll). Reported by @waitwalker. - Add
keepAliveInBackground— setfalseto skip Android's foreground service and its notification. - iOS: fix a retain cycle that leaked the engine; a cancel arriving before the job starts is no longer dropped.
- Web:
cancel()with no id now works;releaseOutputno longer revokes your own input URL. - Android: a missing
FOREGROUND_SERVICEpermission no longer crashes the encode.
1.4.0 #
- iOS: reply to channel calls on the platform thread, and stop an in-flight export when the engine detaches.
- iOS: the privacy manifest is now actually packaged (podspec + SPM) — App Store requires it from third-party SDKs.
- Android: ship
consumer-rules.proso apps with R8 enabled don't have to guess. - Add
CompressErrorCode— thecodevalues are now named constants, mirrored on all three platforms. Values are unchanged.
1.3.0 #
- Fix: Android truncated every video to 30 seconds.
- Android: alignment no longer upscales (1080 → 1088); target-size mode pins CBR.
- iOS: more accurate target size.
1.2.0 #
- Fix: cancelling a video on Android left the
compress()future pending forever. - Android: no longer blocks the UI thread; EXIF orientation applied; bitmaps recycled.
- iOS: failed encodes now error instead of writing a 0-byte file;
maxWidth/maxHeightrespected per axis. - Web: codecs and output blobs are released; images no longer download as
.mp4. - Typed errors:
CompressException,ImageCompressException,CompressCancelled. - Batch:
compressImagesgained progress/cancellation; both gainedcontinueOnError. - Add
releaseOutput(path),cancelAll(),CancellationToken.reset(). - Target-size search is far cheaper — one encode when the image already fits.
1.1.1 #
- Add
outputName(video & image); output name defaults to<source>_<timestamp>. - Image
formatnow keeps the source format by default; set it only to convert. - Add image
losslessandkeepOriginalIfLarger(never makes a file bigger). - Add video
container(autokeeps the source where possible, elsemp4).
1.1.0 #
- Add image compression — a separate API (
compressImage,ImageCompressConfig). - JPEG / PNG / WebP / HEIC, by target size or quality; engines: Bitmap / ImageIO / Canvas.
1.0.1 #
- Docs and pub.dev metadata polish. No API changes.
1.0.0 #
Initial release — native, FFmpeg-free video compression for Android, iOS & Web.
- Target size / bitrate / quality %; HEVC with H.264 fallback.
- Resolution & frame-rate caps, audio removal, trim, thumbnails, estimate.
- Progress, cancellation, batch,
saveToDownloads.