前言:

首先说一下,这个视频压缩项目是完美兼容 Android 7.0及以下系统的:

        这个视频压缩啊,说起来真蛋疼,第一次做这个东西,啥都不懂,网上找了好多例子来使用,要么就是不适配机型,要么就是无缘无故的崩溃,各种bug,各种烦人,不过咱程序员还是不能轻易放弃的,终于皇天不负有心人,找到一个很好用的视频压缩库,使用方法很简单,就那么几行代码,好了,废话不多说了,先贴上github的地址供大家下载源代码:

github地址:https://github.com/jczmdeveloper/XCVideoCompressor

      下载下来之后把根目录里面的ffmpeg4android_lib文件夹以module库的形式导入到我们的项目中,然后把app目录下的utilvideo连个文件夹下的代码拷到我们的项目中,就可以直接使用了。

     下面是使用方法:

//mInputStr:原始视频地址路径
        VideoCompressor.compress(this, mInputStr, new VideoCompressListener() {
            @Override
            public void onSuccess(final String outputFile, String filename, long duration) {//成功
              
            }

            @Override
            public void onFail(final String reason) {//失败
                
            }

            @Override
            public void onProgress(final int progress) {//压缩进度
              
            }
        });
       以上是压缩的使用方法:只需要传入一个上下文对象,一个视频地址,一个视频压缩回调接口,实现三个方法,同学们可以分别在三个回调方法中做相应的操作。回调方法很容易理解,注释就不详细的写了。使用方法就介绍完了。


关于压缩命令:

关于ffmpeg的压缩命令,在这个项目中的运用,大家可以使用 Ctrl + 鼠标左键点击上面的压缩方法compress,即可看到上面的压缩命令,也就是VideoCompressor这个类中的静态变量:mStrCmd。这个变量的内容就是该项目的视频压缩命令了,关于压缩命令的详解,下面放一个地址,大家可以做参考来修改压缩命令达到大家的需求。

ffmpeg命令参数详解:https://segmentfault.com/a/1190000002502526
再放一个官网的连接:http://ffmpeg.org/

因为我也是第一次搞这个东西,上面方法的两个地址可能不是很全面,也不是很好,但是对于菜鸟来说,这两个就够用了,如果大家以后找到更好的ffmpeg参数详解的博文,希望大家留言互相讨论。


最后:

这里需要注意,再打包发布版本的apk时,编译可能会报错,出现module中的string文件中的部分乱码,可能导致编译不通过,不过没关系,我们只需要再我们主工程app下的build.gradle中的android根括号内添加以下代码,就可以通过了:

 android {
        ...
        lintOptions {
            checkReleaseBuilds false
            // Or, if you prefer, you can continue to check for errors in release builds,
            // but continue the build even when errors are found:
            abortOnError false
        }
    }
好了,添加完上述代码,就可以编译通过了。

本篇文章到此介绍完毕,有不对的地方大家可以在下方评论留言,多交流。谢谢观看!!

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐