video_compressor_plus 4.1.0
video_compressor_plus: ^4.1.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.1.0 #
Completes the rename. Nothing in the package still carries the upstream
video_compress identity, so the two can coexist in the same build without
symbol or module collisions.
- Native plugin classes renamed
VideoCompressPlugin→VideoCompressorPlusPluginon iOS, macOS, and Android, with the files renamed to match andpluginClassupdated inpubspec.yaml. Two plugin classes with the same Objective-C runtime name in one app is a real conflict, not a cosmetic one. - Example app identifiers renamed off
video_compress_example.
Deliberately unchanged: the Dart API — VideoCompress, VideoQuality,
MediaInfo. Renaming those would break the promise that migrating from
video_compress is a one-line import change. They live in a different package
namespace, so they only collide if an app imports both packages at once, which
no migration does.
4.0.2 #
Fixes the CocoaPods build, which was broken in 4.0.0 and 4.0.1.
- The iOS and macOS podspecs still pointed
source_filesat the pre-rename path (video_compress/Sources/video_compress/**/*.swift). CocoaPods matched zero files, so no module was produced and any app using CocoaPods failed withModule 'video_compressor_plus' not found. The Swift Package Manager path was unaffected, which is why it went unnoticed.
No Dart or native code changes.
4.0.1 #
- Point
homepage,repository, andissue_trackerat the current GitHub account (ardev-dev). The 4.0.0 metadata still referenced the previous account name; those links only worked through a GitHub redirect, which is not something a published package should depend on.
No code changes.
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.