minimo (video) is a free mobile app for shrinking videos directly on your device. No cloud upload. No subscription. Your videos stay yours.
- Simple quality presets: high, medium, low
- Advanced controls: resolution, bitrate, frame rate, codec, and audio
- Batch compression
- Save and share compressed videos
flowchart TD
A[CompressBloc<br/>processes videos sequentially] --> B[VideoCompressorAdapter<br/>builds bitrate, resolution, frame rate, codec and audio config]
B --> C[light_compressor_v2]
C --> D{Native platform plugin}
subgraph Android
E[MediaCodec and MediaMuxer]
E --> F[MP4 output]
end
subgraph iOS
G[AVFoundation]
G --> H[MP4 output]
end
D -->|Android| E
D -->|iOS| G
C -.->|progress stream| A
F --> I[Native result]
H --> I
I --> J{Output is smaller?}
J -->|Yes| K[Move MP4 to app output]
J -->|No| L[Discard result and keep original]
Compression uses native platform APIs, not FFmpeg. Input, output, and intermediate files stay on the device.
Native Android codecs and AVFoundation keep the app smaller, use platform hardware acceleration, consume less battery, and avoid bundling another native runtime. They cover minimo's current goal: straightforward on-device video compression.
The trade-off is less low-level control and small output differences between Android and iOS. FFmpeg would make sense if the app needed identical cross-platform encoding, uncommon formats, or complex filter pipelines.
FFmpeg is available under LGPL or GPL depending on how it is built and which components are enabled. Shipping its binaries would require tracking that configuration and satisfying the corresponding redistribution, attribution, relinking, and source-code obligations. Using system Android and iOS codecs avoids distributing FFmpeg and keeps the app itself under the MIT License. Codec patent and store requirements may still apply independently.
Video compression is powered by light_compressor_v2. Respect and thanks to its maintainers and contributors.
Special thanks to Kamran Bekirov and his website Flutter Pro Design. I learned from and adapted many ideas from his work for myself and for this app.