如何在 Flutter 中将 GIF 转换为 mp4 视频?

How to convert GIF to a mp4 video in Flutter?

如何在Flutter中将GIF转为mp4视频?使用 flutter_ffmpeg 或任何其他软件包。

方法一:

使用 flutter_ffmpeg 非常简单,您可以使用该软件包做很多其他事情。

要设置程序包,请在 pubspec.yaml

中添加
dependencies:
  flutter_ffmpeg: ^0.4.2

将此添加到位于此处 android/build 的 build.gradle。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 即可节省大量 space它会起作用的。您还可以将 相同的文件 .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 文件,此方法将不起作用