exportVideo static method

Future<XFile> exportVideo({
  1. void onStatistics(
    1. FFmpegStatistics
    )?,
  2. VideoExportFormat outputFormat = VideoExportFormat.mp4,
  3. double scale = 1.0,
  4. String customInstruction = '',
  5. VideoExportPreset preset = VideoExportPreset.none,
  6. bool isFiltersEnabled = true,
  7. required VideoEditorController controller,
})

Implementation

static Future<XFile> exportVideo({
  void Function(FFmpegStatistics)? onStatistics,
  VideoExportFormat outputFormat = VideoExportFormat.mp4,
  double scale = 1.0,
  String customInstruction = '',
  VideoExportPreset preset = VideoExportPreset.none,
  bool isFiltersEnabled = true,
  required VideoEditorController controller,
}) async {
  final String inputPath = kIsWeb
      ? webInputPath(FileFormat.fromMimeType(controller.file.mimeType))
      : controller.file.path;
  final String outputPath = kIsWeb
      ? webOutputPath(outputFormat)
      : await ioOutputPath(inputPath, outputFormat);

  final VideoFFmpegConfig config = controller.createVideoFFmpegConfig();
  final String execute = config.createExportCommand(
    inputPath: inputPath,
    outputPath: outputPath,
    outputFormat: outputFormat,
    scale: scale,
    customInstruction:
        customInstruction + (controller.isVideoMuted ? ' -an' : ''),
    preset: preset,
    isFiltersEnabled: isFiltersEnabled,
  );

  debugPrint('run export video command : [$execute]');

  return const FFmpegExport().executeFFmpegIO(
    execute: execute,
    outputPath: outputPath,
    outputMimeType: outputFormat.mimeType,
    onStatistics: onStatistics,
  );
}