Пакет path_provider позволяет получить доступ к каталогу appDir & temp вашего приложения, скажем, вы хотите получить доступ к каталогу документов приложения:
Directory appDocumentDir = await getApplicationDocumentsDirectory();
String rawDocumentPath = appDocumentDir.path;
и, если ваш файл вывода имя «output.wav»
String outputPath = Strings.concatAll([rawDocumentPath, "/output.wav"]);
сейчас outputPath содержит путь к выходному файлу, который будет создан FFMPEG , и вы сможете использовать его позже, когда вы хотите воспроизвести / скопировать / загрузить или все, что вы хотите.
, но в части FFMPEG командная строка для входного файла concat two:
ffmpeg -i input1.wav -i input2.wav -filter_complex '[0:0][1:0]concat=n=2:v=0:a=1[out]' -map '[out]' output.wav
Если вы хотите иметь 3 входные файлы, используйте n = 3 и измените другие части в команде.
использование Flutter_ffmpeg будет выглядеть примерно так:
import 'package:flutter_ffmpeg/flutter_ffmpeg.dart';
final FlutterFFmpeg _flutterFFmpeg = new FlutterFFmpeg();
_flutterFFmpeg.execute("-i input1.wav -i input2.wav -filter_complex '[0:0][1:0]concat=n=2:v=0:a=1[out]' -map '[out]' output.wav").then((rc) => print("FFmpeg process exited with rc $rc"));
в идеале мы хотим использовать outputPath вот так сделайте что-то вроде этого:
String commandToExecute = Strings.concatAll(["-i input1.wav -i input2.wav -filter_complex '[0:0][1:0]concat=n=2:v=0:a=1[out]' -map '[out]' ", outputPath]);
и ваш последний оператор для выполнения процесса будет:
_flutterFFmpeg.execute(commandToExecute).then((rc) => print("FFmpeg process exited with rc $rc"));
после выполнения вы можете проверить выходные данные выполнения , Ноль представляет успешное выполнение, ненулевые значения представляют сбой:
final FlutterFFmpegConfig _flutterFFmpegConfig = new FlutterFFmpegConfig();
_flutterFFmpegConfig.getLastReturnCode().then((rc) => print("Last rc: $rc"));
_flutterFFmpegConfig.getLastCommandOutput().then((output) => print("Last command output: $output"));
, поэтому в случае сбоя или получения ошибки вы можете проверить выходные данные команды для исправления ошибок
вы можете найти больше информации о flutter_ffmpeg здесь:
https://pub.dev/packages/flutter_ffmpeg
также для использования ffmpeg и узнать больше о фильтрах вы можете проверить это:
https://ffmpeg.org/ffmpeg-filters.html