video_compressor_plus 4.0.0
video_compressor_plus: ^4.0.0 copied to clipboard
Compress videos, trim them, strip audio, and extract thumbnails from Dart. A maintained continuation of video_compress, with Swift Package Manager support.
4.0.0 #
First release of video_compressor_plus, a maintained continuation of
video_compress by Jonny Borges,
which has had no release since February 2025 (208 open issues, and four
unmerged pull requests adding Swift Package Manager support).
Added #
- Swift Package Manager support for iOS and macOS. Flutter warns that
plugins without SPM support "will become an error in a future version of
Flutter";
video_compresswas frequently the last CocoaPods-only plugin in a project, keeping an entire build system alive for a single dependency. Merged upstream PR #325. - Documentation for every public member, and a test suite covering the platform
channel contract,
MediaInfoparsing, and theVideoQualityindex mapping that crosses the channel.
Changed #
- Android toolchain modernised: Kotlin 1.9.10 → 2.2.20, Android Gradle
Plugin 8.1.1 → 8.11.1,
compileSdk34 → 36, Java 8 → 17,com.otaliastudios:transcoder0.10.5 → 0.11.2.minSdkstays at 21. - Android package renamed from
com.example.video_compresstocom.zinonsoftware.video_compressor_plus—com.exampleis a placeholder that tooling flags. WRITE_EXTERNAL_STORAGEnow carriesmaxSdkVersion="28"; it has been unnecessary since Android 10, and requesting it unconditionally is a Play Console warning.- The deprecated
packageattribute was removed fromAndroidManifest.xml(AGP 8 takes it fromnamespace), andlintOptionsbecamelint.
Breaking #
- Package name. Imports become
package:video_compressor_plus/video_compressor_plus.dart. Everything else is unchanged:VideoCompress,VideoQuality,MediaInfo, and every method keep their names, signatures, and behaviour. Migration is a find-and-replace of the import line. MediaMetadataRetrieverno longer declares a type parameter. It was written asclass MediaMetadataRetriever<int>, whereintwas a type parameter shadowing the realinttype.valuenow genuinely resolves toint. Only code that wroteMediaMetadataRetriever<…>explicitly is affected — using the constants is not.
No compression, trimming, or thumbnail logic was modified.