我一直在尝试使用ffmpeg压缩视频文件的大小,以便可以上传到Firebase存储。
我已经在Windows cmd上运行了代码,并且可以正常工作。但是,当我在颤抖的情况下运行它时,视频的质量非常糟糕。我还为-crf参数指定了许多值,但输出视频的质量和文件大小始终相同。
int processSuccess = await _flutterFFmpeg.execute(["-i", "file1.mp4", "-crf", "23", "fileoutput.mp4"]);
我不得不将包更改为video,因为在默认导入时执行会失败,因为它找不到-crf参数。
flutter_ffmpeg:
git:
url: git://github.com/tanersener/flutter-ffmpeg.git
ref: v0.2.1
path: packages/flutter_ffmpeg_video
我在执行参数上做错了吗,还是我使用的导入不正确的包?抱歉,我是ffmpeg的新手。
感谢您的帮助。
答案 0 :(得分:0)
最终使用flutter_video_compress进行压缩。 效果很好https://pub.dartlang.org/packages/flutter_video_compress
答案 1 :(得分:0)
我看到您正在使用video
的{{1}}软件包,不幸的是其中不包含GPL许可的库,例如flutter_ffmpeg
。如果您使用x264
,min-gpl
或https-gpl
之类的GPL许可软件包,则您的输出视频将使用full-gpl
进行编码,并且质量更高。
答案 2 :(得分:0)
根据需要使用flutter_ffmpeg软件包21-packages。
配置
在Android中,编辑android / build.gradle文件,并在ext.flutterFFmpegPackage变量中定义包名称。
ext {
flutterFFmpegPackage = "<package name>"//e.g "full-gpl"
}