Use flutter_video_compress package
Installing:
add flutter_video_compress as a dependency in your pubspec.yaml file.
Usage :
Create an instance
final _flutterVideoCompress = FlutterVideoCompress();
Get thumbnail from video path
final uint8list = await _flutterVideoCompress.getThumbnail(
file.path,
quality: 50, // default(100)
position: -1 // default(-1)
);
Get thumbnail file from video path
final thumbnailFile = await _flutterVideoCompress.getThumbnailWithFile(
file.path,
quality: 50, // default(100)
position: -1 // default(-1)
);
Convert video to a gif
final file = await _flutterVideoCompress.convertVideoToGif(
videoFile.path,
startTime: 0, // default(0)
duration: 5, // default(-1)
// endTime: -1 // default(-1)
);
print(file.path);
Compression Video
final info = await _flutterVideoCompress.compressVideo(
file.path,
quality: VideoQuality.DefaultQuality, // default(VideoQuality.DefaultQuality)
deleteOrigin: false, // default(false)
);
print(info.toJson().toString());
You can learn more about this package here