generateVideoRandomThumbnail method
Implementation
Future<void> generateVideoRandomThumbnail(
String videoPath,
String outputPath,
) async {
int? duration = await getVideoDuration(videoPath);
if (duration == null || duration < 1) {
debugPrint("Invalid duration. Cannot generate thumbnail.");
return;
}
// Generate a random time within video duration
int randomTime = Random().nextInt(duration);
String timeFormat =
"00:${(randomTime ~/ 60).toString().padLeft(2, '0')}:${(randomTime % 60).toString().padLeft(2, '0')}";
try {
ProcessResult result = await Process.run('ffmpeg', [
'-i',
videoPath,
'-ss',
timeFormat,
'-vframes',
'1',
outputPath,
]);
if (result.exitCode == 0) {
debugPrint("Thumbnail generated at $timeFormat: $outputPath");
} else {
debugPrint("Error: ${result.stderr}");
}
} catch (e) {
debugPrint("Exception: $e");
}
}