compressVideo static method
Compress video
Implementation
static Future<XFile?> compressVideo(XFile file) async {
final VideoEditorController controller = VideoEditorController.file(file);
await controller.initialize();
final ValueNotifier<double> exportingProgress = ValueNotifier<double>(0.0);
XFile? video;
try {
video = await VideoUtils.exportVideo(
onStatistics: (FFmpegStatistics stats) {
exportingProgress.value =
stats.getProgress(controller.trimmedDuration.inMilliseconds);
},
preset: VideoExportPreset.ultrafast,
customInstruction:
'-c:v h264_videotoolbox -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -crf 32 -r 30 -hls_list_size 5 -hls_time 5 -threads 10 ',
controller: controller,
);
} catch (e) {
log(e.toString());
}
await video?.saveTo(
'${await getCacheDirectory()}/${DateTime.now().millisecondsSinceEpoch}.mp4');
return video;
}