Note If you continue to use the previous versions (from 1.2.3 to 2.4.0) your project might be subject to a GPL license.
- Removed dependency to FFmpeg from this package (reasons)
Before:
// Basic export video function
Future<void> exportVideo() => _controller.exportVideo(
onCompleted: (file) {}, // show the exported video
);After:
/// Basic export video function
Future<void> exportVideo() async {
// You could generate your command line yourself or if you want to continue to use FFmpeg :
final config = VideoFFmpegVideoEditorConfig(_controller);
// Returns the generated command and the output path
final FFmpegVideoEditorExecute execute = await config.getExecuteConfig();
// ... handle the video exportation yourself, using ffmpeg_kit_flutter, your own video server, ... (more example in the example app)
}- New complete control over the command generation using
commandBuilderinVideoFFmpegVideoEditorConfig- Removed
VideoExportPreset, you can specifies it using thecommandBuilder. - Removed
customInstruction, you can now custom the command using thecommandBuilder.
- Removed
- The exportation is now very fast if there is no filter #140
- Fix assert error while triming #157
- New
coverThumbnailsQualityandtrimThumbnailsQualityin controller- Removed
qualityinCoverSelection, instead usescoverThumbnailsQuality - Removed
qualityinThumbnailSlider, instead usestrimThumbnailsQuality - Removed
qualityinTrimSlider, instead usestrimThumbnailsQuality
- Removed
-
Fix update TrimSlider trim values from controller #141
-
Some controller's methods name has been changed :
updateCrop()method is now renamedapplyCacheCrop().- Setters
minTrim,maxTrim,minCrop&maxCrophas been removed.
Prefer usingupdateTrim(min, max)and the newupdateCrop(min, max)methods instead.
- fixes GIF file exportation #134
formatargument inexportVideoandexportCover, is now an object.
Before:
await controller.exportVideo(format: 'mp4', onCompleted: (_) {});
await controller.extractCover(format: 'jpg', onCompleted: (_) {});After:
await controller.exportVideo(
format: VideoExportFormat.mp4, // or const VideoExportFormat('mp4')
onCompleted: (_) {}.
);
await controller.extractCover(
format: CoverExportFormat.jpg, // or const CoverExportFormat('jpg')
onCompleted: (_) {}.
);- improved widgets performances #130 & #132
- improve crop preview internal logic by using mixin #131
- new
rotateCropAreaparameter inCropGridViewer.edit#130
- Trim values are now more accurate for exportation #127
- New
minDurationargument in controller #126- Timeline shows milliseconds
- Crop values are now more accurate for exportation #125
- Fix issue were crop were not applied on export
- New
trimmedDurationgetter
- New trimmer gesture #124
- New animation during rotation #123
- Better trimmer #122
- Better crop boundaries touch detection #121
- New style parameters
- New thumbnails fadein animation at generation
- Video cursor position updated better while trimming
- Fix scale issue in thumbnails
Check migration guide.
- Fix scale issue when video is rotated
- New
aspectRatioparam in initialize function, to set up the crop param without opening the crop view - Fix some crop resize issue with ratio
- Fix scale issue
- Upgrade
flutter_ffmpeg_kitto latest 5.1.0
- Fix export error when space in output path #108 by @martingeorgiu
- Bump
video_thumbnaildependencies to 0.5.3 so upgrade android compileSdkVersion to 33
- New
onErrorparam in export functions #98 - New selectedIndicator param in
CoverSelectionStyle#97 - Update dependencies
- Update to flutter 3 #91
- Generated thumbnails list is not cleared after an exception #88
- Fix crop grid : gesture, aspect ratio, and painting area #87
- [MAJOR INTERNAL CROP CHANGES]
- The aspect ratio is resizing the crop area differently depending of the current crop ratio
- The crop rect is updated using
Rect.LTRB - The crop area gesture is detected differently
- The crop paint area is diplayed using
Path.combine
- Implements flutter_lints configuration #86
- [NEW] Exportation progress value is returned in
onProgressfunction of exportVideo #85
- [BREAKING CHANGE]
- In TrimTimeline,
secondGapparam is no more nullable - In TrimSliderStyle, positionlineWidth param is renamed
positionLineWidth - In CoverSelection, nbSelection param is renamed
quantity
- In TrimTimeline,
- Improve package documentation #84
- Switch from LTS FFmpeg package to Main release #81 by @adigladi
- Upgraded
video_thumbnaildependency - Fix dependency conflict with
path 1.8.1#79
- Updated dependencies
- Add
isFiltersEnabledparam to disable all changes at extraction #76 by @AlexSmirnov9107 - Fix an error at extraction if the destination path contains a space #74 by @rgplvr
- Update
ffmpeg_kit_flutterto latest 4.5.1 #65 - Print ffmpeg session state, return code and fail stack trace if exists #63
- New function to get metadata of video file #57
- Update
README.mdaboutffmpeg_kit_flutterconfiguration #53 by @qiongshusheng
@legoffmael changes
- Error MissingPluginException with video_thumbnail fixed #49
- Add epoch to exportation names by default #50
@legoffmael changes
- Added icons customization in trimmer style #45
- Improved cover exportation + apply cover quality in thumbnail #46
- Fix exportation directory issues + add exportation parameters (cover format and exportation directory) #47
- Change how video dimensions are computed + update example and libraries #48
FELIPE MURGUIA changes
- Migrated to FFMPEG KIT xd
@legoffmael changes
- Portrait scale's bugs fixed #32
- Video export's bugs fixed #31
- Crop's bugs fixed #30
- Export video cover #29
- Trim slider timeline #28
- New smooth trimmer when video durarion > maxDuration #27
- Sound Null Safety Migration #21 by @paricleu
- Preffered Aspect Ratio on crop
- Improved gesture on crop screen
- [UNIDENTIFIED] ERROR FIXED.
- Progress bar on export
- Improved export function
- Improved cropping gestures
- TrimSlider bugs fixed
-
Export Video:
- VideoExportPreset
- customFFMPEGInstruction
-
Trim Slider:
- Load faster thumbnails
- MaxTrimDuration
- Bugs Fixed
- Export error fixed.
- Initial Release.