executeFFmpegIO method
Future<XFile>
executeFFmpegIO({})
Implementation
Future<XFile> executeFFmpegIO({
required String execute,
required String outputPath,
String? outputMimeType,
void Function(FFmpegStatistics)? onStatistics,
}) {
final Completer<XFile> completer = Completer<XFile>();
debugPrint('FFmpeg command :${execute}');
FFmpegKit.executeAsync(
execute,
(FFmpegSession session) async {
final ReturnCode? code = await session.getReturnCode();
if (ReturnCode.isSuccess(code)) {
completer.complete(XFile(outputPath, mimeType: outputMimeType));
} else {
final String state = FFmpegKitConfig.sessionStateToString(
await session.getState(),
);
completer.completeError(
Exception(
'FFmpeg process exited with state $state and return code $code.'
'${await session.getOutput()}',
),
);
}
},
null,
onStatistics != null
? (Statistics s) => onStatistics(FFmpegStatistics.fromIOStatistics(s))
: null,
);
return completer.future;
}