视频压缩框架使用汇总:
第一个:SiliCompressor 压缩速度中等,没有进度回调
第二个:VideoCompressor 压缩速度中等,有进度回调
第三个:RxFFmpeg 压缩速度慢,有进度回调
第四个:VideoProcessor 压缩速度快(我这测试快),有进度回调
通过上面就能知道第四个是我们最优的选择
Thread {
LogUtil.p("开始压缩,大小。。。${FileUtils.getFileSize(it.path)}")
startTime = System.currentTimeMillis()
VideoProcessor.processor(context)
.input("输入文件")
.output("输出文件")
//以下参数全部为可选
.outWidth(it.width / 3)
.outHeight(it.height / 3)
.bitrate(1000000) //输出视频比特率
.progressListener {
val percentInt = (it*100).toInt()
if (percentInt != percentInt2) {
val time = TimeHelper.getStandardTimeWithSen3(System.currentTimeMillis() - startTime)
LogUtil.p("压缩中。。。,耗时=${time}")
percentInt2 = percentInt
progValue = percentInt2
//这有个小问题就是,等于100时压缩完成,之后还会进行转码,也会改变文件的大小,如果立即上传偶尔会报错ProtocolException,我们可以再上传报错的回调方法中使用递归,再次调用上传,可以很好的解决这个问题
if (percentInt2 == 100) {
LogUtil.p("压缩完成,大小=${FileUtils.getFileSize(pathFile.toString())}")
}
}
}
.process()
}.start()