如何在 Flutter 中将 GIF 转换为 mp4 视频?
Posted
技术标签:
【中文标题】如何在 Flutter 中将 GIF 转换为 mp4 视频?【英文标题】:How to convert GIF to a mp4 video in Flutter? 【发布时间】:2021-10-20 17:36:11 【问题描述】:使用 flutter_ffmpeg 或任何其他包。
【问题讨论】:
【参考方案1】:方法一:
使用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
您确定输入的文件路径正确吗?以上是关于如何在 Flutter 中将 GIF 转换为 mp4 视频?的主要内容,如果未能解决你的问题,请参考以下文章