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
commandBuilder
inVideoFFmpegVideoEditorConfig
- 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
coverThumbnailsQuality
andtrimThumbnailsQuality
in controller- Removed
quality
inCoverSelection
, instead usescoverThumbnailsQuality
- Removed
quality
inThumbnailSlider
, instead usestrimThumbnailsQuality
- Removed
quality
inTrimSlider
, 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
&maxCrop
has been removed.
Prefer usingupdateTrim(min, max)
and the newupdateCrop(min, max)
methods instead.
- fixes GIF file exportation #134
format
argument inexportVideo
andexportCover
, 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
rotateCropArea
parameter inCropGridViewer.edit
#130
- Trim values are now more accurate for exportation #127
- New
minDuration
argument 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
trimmedDuration
getter
- 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
aspectRatio
param 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_kit
to latest 5.1.0
- Fix export error when space in output path #108 by @martingeorgiu
- Bump
video_thumbnail
dependencies to 0.5.3 so upgrade android compileSdkVersion to 33
- New
onError
param 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
onProgress
function of exportVideo #85
- [BREAKING CHANGE]
- In TrimTimeline,
secondGap
param 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_thumbnail
dependency - Fix dependency conflict with
path 1.8.1
#79
- Updated dependencies
- Add
isFiltersEnabled
param 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_flutter
to 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.md
aboutffmpeg_kit_flutter
configuration #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.