edit method

Future<XFile> edit(
  1. CameraInternalMedia media
)

Implementation

Future<XFile> edit(CameraInternalMedia media) async {
  try {
    // print(media.imageFile.path);
    // print('jkandd');
    //
    final tempDir = await getTemporaryDirectory();
    final outputName = media.imageFile.path.split('/').last;
    final pathD = '${tempDir.path}/edited/videos/';
    // final imagePath = '${tempDir.path}/edited/videos/';
    await Directory(pathD).create(recursive: true);
    final path = '$pathD$outputName';
    // final fontNameMapping = Map<String, String>();
    // var fontCommand = '';
    // if (Platform.isAndroid) {
    //   FFmpegKitConfig.setFontDirectoryList(
    //       [tempDir.path, '/system/fonts', '/System/Library/Fonts'],
    //       fontNameMapping);
    //   fontCommand = ':fontfile=/system/fonts/Arial.ttf';
    // }

    // await FFmpegKit.execute('--enable-libfreetype');

    // ignore: unnecessary_string_escapes
    final dateTime = DateFormat('dd MMM, yyyy HH:mm').format(DateTime.now());
    final watermarkData =
        '$dateTime\n${media.locationData.latitude},${media.locationData.longitude}';
    // print(dateTime.toIso8601String());
    // print('inlf');
    // _enableEventReceiver();

    // final stopwatch3 = Stopwatch();
    // stopwatch3.start();
    final info = await FlutterVideoInfo().getVideoInfo(media.imageFile.path);

    final watermark = await _generateWatermarkImage(
      outputName,
      stringBuilder: () => watermarkData,
      width: info?.width ?? 400,
      height: info?.height ?? 200,
    );
    // stopwatch3.stop();
    // final stopwatch = Stopwatch();
    // stopwatch.start();

    // print('${stopwatch3.elapsed} sekubfnkusubk');
    final arguments = <String>[
      '-i',
      media.imageFile.path,
      '-i',
      watermark,
      '-filter_complex',
      '[0:v][1:v]overlay=1000:900',
      //TODO:Needs to handle positional for portraait videos
      '-c:a',
      'copy',
      path,
    ];

    // ffmpeg -i input_video.mp4 -i overlay_image.png -filter_complex "[0:v][1:v]overlay=5:5" -c:a copy output_video.mp4
    final mpeg = await _executeFFMPEG(arguments);
    print(await mpeg.getAllLogsAsString());
    print(await mpeg.getState());
    print(await mpeg.getOutput());
    print(path);
    print(File(path).existsSync());
    print('jdnjkdgn');
    await File(media.imageFile.path).delete();
    return XFile(path);
    // _enableEventReceiver();
    //
    // final tapiocaBalls = [
    //   TapiocaBall.imageOverlay(watermark, 10, 10),
    // ];
    // _enableEventReceiver();
    // final cup = Cup(Content(media.imageFile.path), tapiocaBalls);
    // final completer = Completer<XFile>();
    // final filePath = await cup.suckUp(path).then((value) {
    //   print(value);
    //   print('kjdgbjkdgkb');
    // });
    //   print('ufsbfubsdf');
    //   print(path);
    //
    //   completer.complete(XFile(path));
    // });
    // stopwatch.stop();
    // print(stopwatch.elapsed);
    // print('uydyudiuv');
    // final stopwatch = Stopwatch();
    // stopwatch.start();
    // _enableEventReceiver();

    // final tapiocaBalls2 = [
    //   TapiocaBall.textOverlay(watermarkData, 10, 10, 24, Colors.white),
    // ];
    // _enableEventReceiver();
    // final cup2 = Cup(Content(media.imageFile.path), tapiocaBalls2);
    // final completer = Completer<XFile>();
    // await cup2.suckUp(path);
    // stopwatch2.stop();
    // print(stopwatch2.elapsed);
    // print('uydyudiuv2');
    // return XFile(path);
  } catch (e, s) {
    log('Error Editing', stackTrace: s, error: e);
    // return edit(media);
    rethrow;
  }
}