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