NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #2528 most downloaded on pub.dev
A Flutter video editor: Seamlessly enhance your videos with user-friendly editing features.
Last release today
03 Oct 2026
Ships fairly regularly
a new release about every 9 days
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
168 releases · first in 2025
One column per month.
Nothing published for this version
Nothing published for this version
Nothing published for this version
FEAT(android, iOS, macOS): Add speed to AudioExtractConfigs for pitch-preserving playback-speed changes during audio extraction (e.g. 2.0 for double s
speed to AudioExtractConfigs for pitch-preserving playback-speed changes during audio extraction (e.g. 2.0 for double speed, 0.5 for half). WAV applies the time-stretch directly on the decoded PCM (Android SonicAudioProcessor; AVFoundation AVAssetReaderAudioMixOutput with the spectral time-pitch algorithm), while compressed formats are re-encoded — Android via a Media3 Transformer, Darwin via AVAssetExportPresetAppleM4A with a scaled time range. Note: on Apple platforms a non-1.0 speed re-encodes to AAC/M4A, so caf output falls back to M4A content.FIX(iOS, macOS): Fix unstable/glitchy audio on reversed clips inside multi-clip timelines. AudioReverser now preserves the source audio format (sample
AudioReverser now preserves the source audio format (sample rate and channel count) instead of forcing 44.1 kHz stereo, so a reversed clip's audio matches its untouched neighbours and AVFoundation no longer has to reconcile mixed formats within a single composition audio track during looped playback. The reversed segment is also written as an AVFoundation-authored CAF/PCM file (replacing the hand-authored WAV) and inserted at its decoded duration without padding, avoiding encoder priming artifacts and audio-timing drift in the exported video.Nothing published for this version
FIX(android): Fix custom audio tracks extending sped-up renders to the original source duration. Custom audio is now constrained to the rendered video
FIX(web, wasm): Fix pub.dev platform compatibility score. Replace direct dart:io and package:path_provider imports in the package's public import chai
dart:io and package:path_provider imports in the package's public import chain with conditional platform shims, eliminating the "Package does not support platform Web" and "Not compatible with runtime wasm" warnings.Nothing published for this version
FEAT(darwin): Add Swift Package Manager (SPM) support for iOS and macOS. The darwin implementation is now distributed as a local SPM package, replacin
FIX(android): Prevent RENDER_ERROR codec exceptions on hardware encoders (e.g. Qualcomm AVC c2.qti.avc.encoder) by enabling encoder fallback in the ma
RENDER_ERROR codec exceptions on hardware encoders (e.g. Qualcomm AVC c2.qti.avc.encoder) by enabling encoder fallback in the main render path, clamping the requested bitrate into the codec's supported range, and preferring VBR over CBR at high bitrates.MediaCodec.CodecException, and the in-memory remux is guarded against OutOfMemoryError by checking the temp file size against available heap before loading frames. On failure the clip gracefully degrades to forward playback.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
FIX(android): Fix reversed HEVC videos ignoring the rotation metadata tag, causing sideways/upside-down output.
AVErrorInvalidVideoComposition (Code -11841) during reverse playback. AudioReverser produces PCM frames at 44 100 Hz, so the reversed WAV duration (PCMFrameCount / 44100) is a few microseconds longer than the video clip duration. This extended composition.duration beyond the AVVideoComposition instruction coverage. Fixed by clamping the inserted WAV range to clipDuration via CMTimeMinimum.Nothing published for this version
FEAT(android, iOS, macOS): Add reverseVideo flag to VideoSegment to play a clip backwards. When true, the segment renders from its trimmed end back to
reverseVideo flag to VideoSegment to play a clip backwards. When true, the segment renders from its trimmed end back to its trimmed start while other segments keep their own direction.FIX(linux): Fix Linux build by replacing the unavailable C++ Flutter embedder API (flutter::EncodableValue) with the GLib-based FlValue API. Update CM
flutter::EncodableValue) with the GLib-based FlValue API. Update CMakeLists to use GStreamer (gstreamer-1.0, gstreamer-pbutils-1.0) instead of the unused libavformat/libavcodec/libavutil pkg-config targets. Fix source file extensions (.cc instead of .cpp).FIX(android, iOS, macOS): Eliminate audible clicks/gaps at custom audio loop boundaries and clip transitions. Each custom audio track is now pre-rende
insertTimeRange per loop iteration on iOS/macOS). Volume control remains in the mixer layer for post-hoc adjustments without re-decoding.FIX(iOS, macOS): Fix crash No source tracks available for compositing when rendering H.264 MP4 files whose container duration slightly exceeds the vid
No source tracks available for compositing when rendering H.264 MP4 files whose container duration slightly exceeds the video track's actual frame duration. The compositor time range is now clamped to the video track's real timeRange before inserting into the composition, preventing AVFoundation from requesting frames that have no pixel buffer. A black-frame fallback was also added as a safety net.DEPRECATED: VideoRenderData.playbackSpeed is deprecated. Use VideoSegment.playbackSpeed instead.
playbackSpeed to VideoSegment, allowing each segment in a multi-clip composition to have its own playback speed (e.g. 2.0 for fast-forward, 0.5 for slow-motion).VideoRenderData.playbackSpeed is deprecated. Use VideoSegment.playbackSpeed instead.FIX(example): Replace deprecated CompleteParameters.customAudioTrack usage with CompleteParameters.audioTracks in the basic video editor example.
CompleteParameters.customAudioTrack usage with CompleteParameters.audioTracks in the basic video editor example.FIX(iOS, macOS): Refactor audio extraction to use synchronous file writing for improved stability.
FEAT(android, iOS, macOS): Add NativeLogLevel parameter to all API methods for controlling native log verbosity per call. Supported levels: none, erro
NativeLogLevel parameter to all API methods for controlling native log verbosity per call. Supported levels: none, error, warning, info, debug, verbose.FIX(android): Fix image layers crash on Android by recycling intermediate thumbnail bitmaps.
compileSdk to 36.FIX(iOS, macOS): Resolve crash in extractToWav() caused by starting the writer session at .zero instead of the actual sample time.
extractToWav() caused by starting the writer session at .zero instead of the actual sample time.FIX(android, iOS, macOS): Correct audio extraction to WAV format in extractAudioToFile.
extractAudioToFile.FIX(android): Fix compatibility with media3 1.10.0 by replacing removed ChannelMixingMatrix.create with ChannelMixingMatrix.createForConstantGain.
ChannelMixingMatrix.create with ChannelMixingMatrix.createForConstantGain.Nothing published for this version
FEAT(android, iOS, macOS, web): Add getSingleThumbnail method with SingleThumbnailConfigs to extract the first or last frame of a video via ThumbnailP
getSingleThumbnail method with SingleThumbnailConfigs to extract the first or last frame of a video via ThumbnailPosition.first / ThumbnailPosition.last.FIX(android): Fix image layer distortion when imageBytesWithCropping is enabled with a crop transform and qualityConfigs.
imageBytesWithCropping is enabled with a crop transform and qualityConfigs.Nothing published for this version
Nothing published for this version
FIX: Fix VideoQualityConfig stretching video when target resolution has a different aspect ratio. Now uses uniform scaling (BoxFit.contain) to preserv
VideoQualityConfig stretching video when target resolution has a different aspect ratio. Now uses uniform scaling (BoxFit.contain) to preserve the original aspect ratio.FEAT(android, iOS, macOS): Add optional size field on ImageLayer to scale overlay images to specific dimensions before rendering.
size field on ImageLayer to scale overlay images to specific dimensions before rendering.FIX(iOS, macOS): Replace deprecated AVMutableVideoCompositionLayerInstruction with AVVideoCompositionLayerInstruction.Configuration on macOS 26+ / iOS…
LayerAnimation on ImageLayer. Supports fade, slide, and scale animations with animateIn, animateOut, and animateInOut phases. Includes 13 easing curves: linear, easeIn, easeOut, easeInOut, easeInCubic, easeOutCubic, easeInOutCubic, bounceIn, bounceOut, bounceInOut, elasticIn, elasticOut, elasticInOut.AVMutableVideoCompositionLayerInstruction with AVVideoCompositionLayerInstruction.Configuration on macOS 26+ / iOS 26+, with backward-compatible fallback.DEPRECATED: video, imageBytes, colorMatrixList, customAudioPath, customAudioStartTime, customAudioVolume, loopCustomAudio, and originalAudioVolume on…
ColorFilter with optional startTime/endTime for applying different filters to specific time ranges.VideoAudioTrack with per-track volume, loop, and timeline placement (startTime, endTime, audioStartTime, audioEndTime).VideoSegment.volume for adjusting audio levels on individual video segments.VideoSegment model replacing single video field for concatenating multiple clips with individual trim and volume settings.video, imageBytes, colorMatrixList, customAudioPath, customAudioStartTime, customAudioVolume, loopCustomAudio, and originalAudioVolume on VideoRenderData. Use videoSegments, imageLayers, colorFilters, and audioTracks instead.FEAT(android, iOS, macOS): Add time-based image overlay layers. Allows positioning image overlays at specific x/y coordinates with optional start and
FIX(android, iOS, macOS): Fixed rendering failure with HEVC encoded videos.
FIX(all): Fix file write failures when the target directory does not exist. writeMemoryVideoToFile, writeAssetVideoToFile, and fetchVideoToFile now cr
writeMemoryVideoToFile, writeAssetVideoToFile, and fetchVideoToFile now create parent directories recursively before writing.Nothing published for this version
FIX(android): Strip metadata (GPS, title, artist, etc.) from rendered videos. Previously, Android's Media3 Transformer copied all source metadata to t
Nothing published for this version
FEAT(android, iOS, macOS): Add gpsCoordinates to VideoMetadata for extracting GPS location from videos.
gpsCoordinates to VideoMetadata for extracting GPS location from videos.frameRate to VideoMetadata for extracting video frame rate.cameraMake and cameraModel to VideoMetadata for extracting camera information.FEAT(android, iOS, macOS): Add customAudioStartTime option to VideoRenderData. Allows starting the custom audio track from a specific offset instead o
customAudioStartTime option to VideoRenderData. Allows starting the custom audio track from a specific offset instead of from the beginning. Useful for using a specific section of a longer audio file.FEAT(android, iOS, macOS): Add loopCustomAudio option to VideoRenderData. When false, custom audio plays once instead of looping to match the video du
loopCustomAudio option to VideoRenderData. When false, custom audio plays once instead of looping to match the video duration. Defaults to true for backward compatibility.FIX(iOS, macOS): Fixed crash when merging multiple MOV video clips on older devices (e.g., iPhone 7, iOS 15). The issue was caused by AVMutableVideoCo
AVMutableVideoCompositionInstruction not properly deriving requiredSourceTrackIDs from layer instructions when using a custom video compositor. Introduced CustomVideoCompositionInstruction that explicitly provides source track IDs.FIX(iOS, macOS): Fixed video appearing upside down after export due to coordinate system mismatch between AVFoundation (top-left origin) and CIImage (
DEPRECATED(metadata): originalResolution is now deprecated. Use rawResolution instead.
originalResolution is now deprecated. Use rawResolution instead.rawResolution getter to retrieve the raw video dimensions before rotation is applied.FIX(iOS, macOS): Fixed color filters (colorMatrixList), blur, and flip effects being incorrectly applied to overlay images when imageBytesWithCropping
colorMatrixList), blur, and flip effects being incorrectly applied to overlay images when imageBytesWithCropping is enabled. These effects are now applied only to the video before compositing the overlay.FIX(android): Fixed semi-transparent overlay layers appearing darker than expected during video rendering. The issue was caused by double alpha premul
FEAT(android, iOS, macOS): Add imageBytesWithCropping option to VideoRenderData. When enabled, the image overlay is applied before cropping and gets c
imageBytesWithCropping option to VideoRenderData. When enabled, the image overlay is applied before cropping and gets cropped together with the video instead of being scaled to the final cropped size.Your coding agent can read these notes before it upgrades. Set up the MCP server →