Skip to content
马北剑西 edited this page Jul 7, 2017 · 1 revision

small-video-record2 使用说明

关于 small-video-record2

主要是用于视频录制,与视频压缩,当然还支持以 FFmpeg 命令的形式调用,这样就将拥有 FFmpeg 的大部分功能!

源码编译:

你需要拥有ndk环境、AndroidStudio版本大于2.2、AndroidStudio装有Cmake插件。

使用方法:

small-video-record2small-video-record是两个不同的项目,且不兼容,不过使用方法差不多。

一、small-video-record2使用方法

1:添加依赖
compile 'com.mabeijianxi:small-video-record2:2.0.1@aar'
2:在manifests里面添加
 <activity android:name="com.mabeijianxi.smallvideorecord2.MediaRecorderActivity"/>
3:定制 SO 动态链接库:
  • 如果你是用的是 compile 'com.mabeijianxi:small-video-record2:2.0.0@aar' 这种远程方式依赖,那么2.0.0 正式版以后如果采用手动复制 SO 的做法,避免与大家项目不兼容,具体做法是进入本项目 "all_lib" 文件夹,选择你喜欢的架构然后 copy 到你主 module 的 jniLibs 下。
  • 如果你采用直接下载源码导入 Module 的话不必如此,你需要做的是根据你喜好删除或保留源码 jniLibs 目录下的 so 文件夹,并修改 gradle 的 abiFilters 与之对应即可。比如你 jniLibs 目录下只剩 armeabi 文件夹了,那么就应该修改为:abiFilters "armeabi" 。
  • 本工程用的 FFmpeg 是精简版,如果你觉得不够用或者想定制化那么可以前往https://github.com/mabeijianxi/FFmpeg4Android下载我编译好的一个增强版 FFmpeg SO 库,或者根据里面文档运行脚本重新定制即可。
4:在Application里面初始化小视频录制:
public static void initSmallVideo() {
        // 设置拍摄视频缓存路径
        File dcim = Environment
                .getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
        if (DeviceUtils.isZte()) {
            if (dcim.exists()) {
                JianXiCamera.setVideoCachePath(dcim + "/mabeijianxi/");
            } else {
                JianXiCamera.setVideoCachePath(dcim.getPath().replace("/sdcard/",
                        "/sdcard-ext/")
                        + "/mabeijianxi/");
            }
        } else {
            JianXiCamera.setVideoCachePath(dcim + "/mabeijianxi/");
        }
        // 初始化拍摄
        JianXiCamera.initialize(false,null);
    }
5:跳转录制界面或选择压缩:
// 录制
MediaRecorderConfig config = new MediaRecorderConfig.Buidler()
		
                .fullScreen(false)
                .smallVideoWidth(360)
                .smallVideoHeight(480)
                .recordTimeMax(6000)
                .recordTimeMin(1500)
                .maxFrameRate(20)
                .videoBitrate(600000)
                .captureThumbnailsTime(1)
                .build();
        MediaRecorderActivity.goSmallVideoRecorder(this, SendSmallVideoActivity.class.getName(), config);
// 选择本地视频压缩
LocalMediaConfig.Buidler buidler = new LocalMediaConfig.Buidler();
                        final LocalMediaConfig config = buidler
                                .setVideoPath(path)
                                .captureThumbnailsTime(1)
                                .doH264Compress(new AutoVBRMode())
                                .setFramerate(15)
				.setScale(1.0f)
                                .build();
                        OnlyCompressOverBean onlyCompressOverBean = new LocalMediaCompress(config).startCompress();	

sample下载:

small-video-record2:

sample Download Demo2