videoToGif method
mp4 → gif
Implementation
Future<void> videoToGif({
required String inputPath,
required String outputPath,
bool isOverride = true,
void Function(String data)? onStdout,
GifFps fps = GifFps.fps10,
GifScale scale = GifScale.medium,
GifLoop loop = GifLoop.infinite,
Duration? start, // optional trim start
Duration? duration, // optional trim length
}) async {
final outFile = File(outputPath);
if (outFile.existsSync() && isOverride) {
await outFile.delete();
}
final args = <String>[];
if (start != null) {
args.addAll(['-ss', start.inSeconds.toString()]);
}
args.addAll(['-i', inputPath]);
if (duration != null) {
args.addAll(['-t', duration.inSeconds.toString()]);
}
args.addAll([
'-vf',
'fps=${fps.value},scale=${scale.value}:flags=lanczos',
'-loop',
loop.value,
outputPath,
]);
await ffmpegStart(arguments: args, onStdErrorOut: onStdout);
}