【发布时间】:2021-10-20 17:36:11
【问题描述】:
如何在 Flutter 中将 GIF 转换为 mp4 视频?使用 flutter_ffmpeg 或任何其他包。
【问题讨论】:
标签: flutter flutter-packages flutter-video-player flutter-ffmpeg
如何在 Flutter 中将 GIF 转换为 mp4 视频?使用 flutter_ffmpeg 或任何其他包。
【问题讨论】:
标签: flutter flutter-packages flutter-video-player flutter-ffmpeg
方法一:
使用flutter_ffmpeg 真的很简单,你可以用这个包做很多其他的事情。
要设置软件包,请将其添加到 pubspec.yaml
dependencies:
flutter_ffmpeg: ^0.4.2
将此添加到您的build.gradle 位于此处的android/build.gradle
ext {
flutterFFmpegPackage = "min"
}
终于在你的代码中
import 'package:flutter_ffmpeg/flutter_ffmpeg.dart';
...
...
final FlutterFFmpeg _flutterFFmpeg = FlutterFFmpeg();
final String inputFile = ".../input.gif"; //path of the gif file.
final String outputFile = ".../output.mp4"; //path to export the mp4 file.
await _flutterFFmpeg
.execute("-f gif -i $inputFile $outputFile")
.then((rc) => print("FFmpeg process 1 exited with rc $rc"));
注意:如果您要导出应用目录以外的任何位置,则必须扫描该文件,否则您将无法使用该文件。
方法二:
如果您只想将.gif 转换为.mp4,那么您只需将.gif 重命名为.mp4 即可节省大量空间,并且它会起作用。您还可以将 同一文件 从 .mp4 重命名为 .gif。但是,如果您想将原始的.mp4 文件转换为.gif,则此方法不起作用。
以下是如何重命名文件的示例:
Directory appDocDir = await getApplicationDocumentsDirectory();
String appDocPath = appDocDir.path;
//Let's assume that "$appDocPath/awesome.gif" is the path of the file.
await File("$appDocPath/awesome.gif").rename("$appDocPath/awesome.mp4");
注意:您必须在rename() 中输入文件的完整路径。
您可以再次将同一个文件重命名为.gif,这样就可以了。但是,如果您要转换从未从 .gif 转换的 .mp4 文件,此方法将不起作用。
【讨论】:
OS Error: No such file or directory, errno = 2