上次我发过一篇文章,是关于android端视频压缩的,其实androi端的视频处理,最开始一直都是借用一个FFmpeg一个C语言库来实现的,这个是比较好的解决方法,但是现在实在得感叹一下,现在版本更新太快,有些东西老了,旧了,就得换了,不换还不能用,真的挺无奈,就说这个视频压缩,有些FFmpeg代码在部分手机上是调不起来的,就是因为东西太老了,需要更新,因为本人也是受这个东西的影响,又思考到以后可能还会影响到别的手机也不能使用的情况,所以又在网上找了好久关于视频压缩的方案,最后 ,终于找到一个好方法,应该是国外的大神某位大神写的库,就是关于媒体文件压缩方面的库。这里先附上库的github链接地址:https://github.com/Tourenathan-G5organisation/SiliCompressor
大体看了一下源码,猜测是根据某种特殊的算法来实现的视频压缩,并没有使用FFmpeg这个C语言库,所以在任何版本的手机上都能执行,自己亲自试了一下,压缩的速度还挺快的,而且压缩完视频清晰度也是不错的,极力推荐使用,最主要的是使用也很方便就是一句代码的事,具体的使用方法请到原文的github上查看,使用方法都有的。
这里还是得需要注意一下:压缩视频是耗时操作,必须得放进子线程中去执行。示例代码如下:
new Thread() {
@Override
public void run() {
super.run();
try {
/**
* 视频压缩
* 第一个参数:视频源文件路径
* 第二个参数:压缩后视频保存的路径
*/
String comPressPath = SiliCompressor.with(getActivity()).compressVideo(filePath, dirPath);
// if (!StringUtil.isEmpty(comPressPath)) {
// notCompressedVideo.setCompressPath(comPressPath);
// compressVideo();
// } else {
// stopCompress("失败");
// }
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
}.start();
压缩的方法就是这一行代码了,注意这个方法的返回值就是压缩后的视频路径,大家可以根据自己的需求来做调试。
最后,向这位大神致敬。