当前仓库属于暂停状态,部分功能使用受限,详情请查阅 仓库状态说明
1 Star 1 Fork 0

OS-Android / CVLib
暂停

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

CVLib

API

介绍

基于javacv 1.5.6版本进行封装处理,引入此依赖时默认带入javacv 1.5.6相关的依赖 目前仅支持 图片组转Mp4视频文件,且必须保证存储的文件夹不会受到分区存储的干扰。

依赖说明

    //主依赖必须和so库版本一致,用以避免出现问题,引入越多安装包越大
    //主要依赖,必须引入
    implementation 'com.gitee.osard.cv-lib:cvlib:0.1.1'
    //以下为so库,需要哪个引入哪个,至少引入一个,推荐“arm64-v8a 架构so库”能满足当前大部分手机的需求
    //armeabi-v7a 架构so库
    implementation 'com.gitee.osard.cv-lib:cvlib-arm:0.1.1'
    //arm64-v8a 架构so库
    implementation 'com.gitee.osard.cv-lib:cvlib-arm64:0.1.1'
    //x86 架构so库
    implementation 'com.gitee.osard.cv-lib:cvlib-x86:0.1.1'
    //x86_64 架构so库
    implementation 'com.gitee.osard.cv-lib:cvlib-x86_64:0.1.1'

依赖引入

工程的build.gradle文件添加

allprojects {
    repositories {
        google()
        mavenCentral()

        //jitpack 仓库
        maven { url 'https://jitpack.io' }
    }
}

APP的build.gradle文件添加

dependencies {
    ...
    implementation 'com.gitee.osard.cv-lib:cvlib:0.1.1'
    implementation 'com.gitee.osard.cv-lib:cvlib-arm64:0.1.1'
}

如果编译时出现.json文件冲突时,添加下面的代码到APP的build.gradle文件

android {
    ...

    //解决JavaCV中文件重复问题,远程依赖时一般无需添加,工程依赖时必须添加
    packagingOptions {
        pickFirst 'META-INF/native-image/android-x86_64/jnijavacpp/jni-config.json'
        pickFirst 'META-INF/native-image/android-x86_64/jnijavacpp/reflect-config.json'

        pickFirst 'META-INF/native-image/android-x86/jnijavacpp/jni-config.json'
        pickFirst 'META-INF/native-image/android-x86/jnijavacpp/reflect-config.json'

        pickFirst 'META-INF/native-image/android-arm64/jnijavacpp/jni-config.json'
        pickFirst 'META-INF/native-image/android-arm64/jnijavacpp/reflect-config.json'

        pickFirst 'META-INF/native-image/android-arm/jnijavacpp/jni-config.json'
        pickFirst 'META-INF/native-image/android-arm/jnijavacpp/reflect-config.json'

    }
}

提供的API

ImagesToVideoUtils.java工具类

    /**
     * 图片组转视频
     * <p>
     * 视频使用30帧率
     * 每张图不停留
     * 使用 “时间戳“ + ”.mp4” 作为文件名
     * 固定MP4格式
     * <p>
     * 保存的文件名相同时将会进行线程等待,且只会保留最后一个视频
     *
     * @param savePath     视频保存的文件夹路径,要求可正常访问,不能是分区存储限制的文件夹
     * @param imgPaths     图片文件全路径列表,按照顺序放入
     * @param videoWidth   生成视频的宽度
     * @param videoHeight  生成视频的高度
     * @param listener     生成视频成功的回调
     * @param failListener 生成视频失败的回调
     */
    public static void convertMp4(String savePath,
                                  List<String> imgPaths,
                                  int videoWidth, int videoHeight,
                                  CompleteListener listener,
                                  FailListener failListener);
    /**
     * 图片组转视频
     * <p>
     * 视频使用30帧率
     * 每张图不停留
     * 固定MP4格式
     * <p>
     * 保存的文件名相同时将会进行线程等待,且只会保留最后一个视频
     *
     * @param savePath     视频保存的文件夹路径,要求可正常访问,不能是分区存储限制的文件夹
     * @param saveName     文件名,未填写时使用 “时间戳“ + ”.mp4” 作为文件名
     * @param imgPaths     图片文件全路径列表,按照顺序放入
     * @param videoWidth   生成视频的宽度
     * @param videoHeight  生成视频的高度
     * @param listener     生成视频成功的回调
     * @param failListener 生成视频失败的回调
     */
    public static void convertMp4(String savePath,
                                  String saveName,
                                  List<String> imgPaths,
                                  int videoWidth, int videoHeight,
                                  CompleteListener listener,
                                  FailListener failListener);
    /**
     * 图片组转视频
     * <p>
     * 每张图不停留
     * 固定MP4格式
     * <p>
     * 保存的文件名相同时将会进行线程等待,且只会保留最后一个视频
     *
     * @param savePath     视频保存的文件夹路径,要求可正常访问,不能是分区存储限制的文件夹
     * @param saveName     文件名,未填写时使用 “时间戳“ + ”.mp4” 作为文件名
     * @param imgPaths     图片文件全路径列表,按照顺序放入
     * @param videoWidth   生成视频的宽度
     * @param videoHeight  生成视频的高度
     * @param frameRate    生成视频的帧率,每秒几张图
     * @param listener     生成视频成功的回调
     * @param failListener 生成视频失败的回调
     */
    public static void convertMp4(String savePath,
                                  String saveName,
                                  List<String> imgPaths,
                                  int videoWidth, int videoHeight,
                                  double frameRate,
                                  CompleteListener listener,
                                  FailListener failListener);
   /**
    * 图片组转视频
    * <p>
    * 视频固定MP4格式
    * <p>
    * 保存的文件名相同时将会进行线程等待,且只会保留最后一个视频
    *
    * @param savePath     视频保存的文件夹路径,要求可正常访问,不能是分区存储限制的文件夹
    * @param saveName     文件名,未填写时使用 “时间戳“ + ”.mp4” 作为文件名
    * @param imgPaths     图片文件全路径列表,按照顺序放入
    * @param videoWidth   生成视频的宽度
    * @param videoHeight  生成视频的高度
    * @param frameRate    生成视频的帧率,每秒几张图
    * @param stayFrame    生成视频时停留的帧,即每张图额外停留的帧数,小于等于1时为不停留
    * @param listener     生成视频成功的回调
    * @param failListener 生成视频失败的回调
    */
    public static void convertMp4(String savePath,
                               String saveName,
                               List<String> imgPaths,
                               int videoWidth, int videoHeight,
                               double frameRate,
                               double stayFrame,
                               CompleteListener listener,
                               FailListener failListener);

空文件

简介

**第三方内存泄漏严重,无法正常使用** 此仓库暂时仅作为发布jitpack演示使用。 展开 收起
Android
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Android
1
https://gitee.com/osard/cv-lib.git
git@gitee.com:osard/cv-lib.git
osard
cv-lib
CVLib
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891