美文网首页音视频开发集锦
使用开源库SiliCompressor对视频进行压缩处理

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

作者: 抬头仰望放肆的微笑v | 来源:发表于2018-11-15 15:21 被阅读375次

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

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

    第一种:使用FFmpeg

    缺点:

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

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

    第二种:使用七牛SDK

    七牛短视频SDK链接: https://developer.qiniu.com/sdk#official-sdk

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

    PLDroidShortVideo: Pili-System:unauthorized !

    compressVideoResouce: transcode failed: 8

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

    开源库地址 https://github.com/Tourenathan-G5organisation/SiliCompressor

    1.Gradle

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

    2.添加相关权限

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    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);

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

    相关文章

      网友评论

        本文标题:使用开源库SiliCompressor对视频进行压缩处理

        本文链接:https://www.haomeiwen.com/subject/oityfqtx.html