compressVideo method
Compresses the given video file using the provided options.
Returns a compressed File object.
videoQuality
is the quality of the compressed video. Valid values are
low, medium, and high.
deleteOrigin
is whether or not to delete the original file after
compression.
includeAudio
is whether or not to include the audio in the compressed
video.
frameRate
is the frame rate to use when compressing the video.
duration
is the maximum duration of the compressed video, in seconds.
Example usage:
File? compressedVideo = await RhUtils.instance.compressVideo(
video: File('/path/to/video.mp4'),
videoQuality: RhVideoQuality.MediumQuality,
deleteOrigin: true,
includeAudio: false,
frameRate: 30,
duration: 60,
);
Implementation
Future<File?> compressVideo({
required File? video,
RhVideoQuality? videoQuality,
bool deleteOrigin = false,
bool? includeAudio,
int frameRate = 30,
int? duration,
}) async {
VideoQuality quality;
switch (videoQuality) {
case RhVideoQuality.HighestQuality:
quality = VideoQuality.HighestQuality;
break;
case RhVideoQuality.LowQuality:
quality = VideoQuality.LowQuality;
break;
case RhVideoQuality.MediumQuality:
quality = VideoQuality.MediumQuality;
break;
case RhVideoQuality.Res1280x720Quality:
quality = VideoQuality.Res1280x720Quality;
break;
case RhVideoQuality.Res1920x1080Quality:
quality = VideoQuality.Res1920x1080Quality;
break;
case RhVideoQuality.Res640x480Quality:
quality = VideoQuality.Res640x480Quality;
break;
case RhVideoQuality.Res960x540Quality:
quality = VideoQuality.Res960x540Quality;
break;
default:
quality = VideoQuality.DefaultQuality;
}
MediaInfo? mediaInfo = await VideoCompress.compressVideo(
video!.path,
quality: quality,
deleteOrigin: deleteOrigin,
includeAudio: includeAudio,
frameRate: frameRate,
duration: duration,
);
return mediaInfo?.file;
}