flutter_media_compress 1.1.0 copy "flutter_media_compress: ^1.1.0" to clipboard
flutter_media_compress: ^1.1.0 copied to clipboard

Powerful Flutter package to compress images, videos, audio, and documents with a unified API, batch processing, quality presets, FFmpeg audio, and auto detection.

flutter_media_compress #

A powerful Flutter package to compress images, videos, audio, and documents using a single unified API.
Supports both single and batch file compression with simple configuration and quality control.


Features #

Based only on implemented functionality in this package:

  • Image compression
  • Video compression
  • Audio compression (FFmpeg based, output in .m4a)
  • Document compression using gzip
  • Single file compression
  • Multiple file compression (batch)
  • Automatic file type detection
  • Quality presets (low, medium, high, ultra, custom)
  • Custom output file path support
  • Backup option before compression
  • Compression statistics:
    • Original size
    • Compressed size
    • Saved bytes
    • Compression ratio
    • Time taken

Installation #

Add this to your pubspec.yaml:

dependencies:
  flutter_media_compress: ^1.1.0

Then run: #

flutter pub get

Import #

import 'dart:io';
import 'package:flutter_media_compress/flutter_media_compress.dart';

Single File Compression #

Image Compression #

final result = await FlutterMediaCompress.compressSingle(
  file: File('photo.jpg'),
  config: const CompressionConfig(
    mediaType: MediaType.image,
  ),
);

Video Compression #

final result = await FlutterMediaCompress.compressSingle(
file: File('video.mp4'),
config: const CompressionConfig(
mediaType: MediaType.video,
),
);

Audio Compression #

final result = await FlutterMediaCompress.compressSingle(
file: File('audio.mp3'),
config: const CompressionConfig(
mediaType: MediaType.audio,
),
);

Document Compression #

final result = await FlutterMediaCompress.compressSingle(
file: File('file.pdf'),
config: const CompressionConfig(
mediaType: MediaType.document,
),
);

Multiple File Compression #

final results = await FlutterMediaCompress.compressMultiple(
files: [
File('image.jpg'),
File('video.mp4'),
File('audio.mp3'),
],
);

Automatic Media Detection #

  • If mediaType is not provided, the package auto-detects the file type:
final result = await FlutterMediaCompress.compressSingle(
file: File('unknown_file'),
);

Compression Configuration #

CompressionConfig(
  mediaType: MediaType.image,
  quality: CompressQuality.medium,
  customQuality: 80,
  keepMetadata: true,
  createBackup: true,
  outputPath: '/custom/output/path.jpg',
);

Quality Presets #

  • CompressQuality.low
  • CompressQuality.medium
  • CompressQuality.high
  • CompressQuality.ultra
  • CompressQuality.custom

Result Object #

  • Returned type:
CompressionResult

Fields #

Field Description
originalFile Source file
compressedFile Output file
mediaType Detected media type
originalSizeBytes Size before compression
compressedSizeBytes Size after compression
bytesSaved Space saved
ratio Compression ratio
timeTaken Processing duration
isSuccess Success or failure
errorMessage Error if failed

Output Formats #

Input Type Output
Image Same format
Video Same format
Audio .m4a
Document .gz

Platform Support #

  • Android
  • iOS
  • Web
  • macOS
  • Linux
  • Web Web support depends on FFmpeg compatibility and browser file system access.

License #

MIT License

2
likes
160
points
245
downloads

Publisher

verified publisherronak-vasoliya.devservers.site

Weekly Downloads

Powerful Flutter package to compress images, videos, audio, and documents with a unified API, batch processing, quality presets, FFmpeg audio, and auto detection.

Homepage

Documentation

API reference

License

MIT (license)

Dependencies

archive, ffmpeg_kit_flutter_new, flutter, flutter_image_compress, path, video_compress

More

Packages that depend on flutter_media_compress