使用开源库SiliCompressor对视频进行压缩处理

最近公司项目中需要上传视频,由于之前没有涉及过,初步可以上传了,但由于一般手机本地视频文件都很大,所以得在上传之前进行压缩处理,在百度,github上各种找。在此做个记录也希望能帮到一些需要的人,少走一些弯路。

关于视频压缩有以下几种方式可选:

第一种:使用FFmpeg

缺点:

1.压缩效率低,时间长,使用繁琐,增大apk体积

2.如果只是对视频进行压缩,不建议使用FFmpeg

第二种:使用七牛SDK

七牛短视频SDK链接:

缺点:收费,只能试用,测试的结果:隔天就会提示未经授权

PLDroidShortVideo: Pili-System:unauthorized !

compressVideoResouce: transcode failed: 8

第三种:使用开源库SiliCompressor,一个强大的,灵活的,易于使用的视频和图像压缩库。也是我项目中所使用到的

开源库地址

1.Gradle

implementation'com.iceteck.silicompressorr:silicompressor:2.2.1'

2.添加相关权限



3.使用

使用很简单,直接调用相关方法传入文件路径就能获得压缩之后新文件的路径

(1)视频压缩

压缩视频文件并返回新视频的文件路径

StringfilePath=SiliCompressor.with(Context).compressVideo(videoPath, destinationDirectory);

(2) 图片压缩

压缩图像并返回新图像的文件路径

StringfilePath=SiliCompressor.with(Context).compress(imagePath, destinationDirectory);

压缩图像并在删除源图像时返回新图像的文件路径

StringfilePath=SiliCompressor.with(Context).compress(imagePath, destinationDirectory,true);

压缩图像可绘制并返回新图像的文件路径

StringfilePath=SiliCompressor.with(Context).compress(R.drawable.icon);

压缩图像并返回新图像的位图数据

BitmapimageBitmap=SiliCompressor.with(Context).getCompressBitmap(imagePath);

压缩图像并在删除源图像的同时返回新图像的位图数据

BitmapimageBitmap=SiliCompressor.with(Context).getCompressBitmap(imagePath,true);

具体需要哪种压缩方式,根据具体需求调用相对应的方法就可以了

你可能感兴趣的:(Android)