flutter中如何实现视频文件的压缩?

码云
2020-11-08 11:12

视频处理当然还是使用ffmpeg,在flutter中我们可以使用flutter_ffmpeg插件来完成,示例代码如下:

 

  • 添加包依赖
dependencies:
  flutter_ffmpeg: ^0.3.0

 

  • 代码示例
import 'package:flutter_ffmpeg/flutter_ffmpeg.dart';

static Future<String> reduceSizeAndType(videoPath, outDirPath) async {
  //检查视频文件时候存在
  assert(File(videoPath).existsSync());

  //ffmpeg的命令参数,具体可以参考ffmpeg的参数说明
  final arguments = '-y -i $videoPath ' +
        '-preset ultrafast -g 48 -sc_threshold 0 ' +
        '-c:v libx264 -b:v 720k ' +
        '-c:a copy ' +
        '"$outDirPath/file2.mp4"';

  //执行视频转化
  //final FlutterFFmpeg _encoder= new FlutterFFmpeg();
  final int rc = await _encoder.execute(arguments);
  //判定执行接过
  assert(rc == 0);
  //目标文件
  return outDirPath;
}

除了视频压缩,ffmpeg还可以实现其他的视频处理,具体可以参考 flutter_mpeg 插件。

全部评论

相关文章