compressVideo method

Future<File?> compressVideo({
  1. required File? video,
  2. RhVideoQuality? videoQuality,
  3. bool deleteOrigin = false,
  4. bool? includeAudio,
  5. int frameRate = 30,
  6. int? duration,
})

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;
}