1 RDVECore功能概述
RDVECore是锐动推出的无UI,高度抽象化API的视频编辑SDK,支持以下功能:1.1 丰富的编辑功能
RDVECore包含了丰富的基础功能,对于编辑中的视频、图片、音乐有各种
处理方式,并且可以根据实际的业务需求,进行搭配组合,所有处理都可以精确
到毫秒级,达到最专业的的要求,主要功能如下:
· MV MV根据配置资源进行混合以及动画,增强短视频效果
· 滤镜 RDVEUISdk本身提供丰富的滤镜效果让开发者进行选择,同时用户还可以根据自己的需求进行滤镜扩展。
· 字幕特效 字幕特效支持在指定位置,指定时间段显示;实时预览效果
· 配音、配乐 支持指定时间段添加配音; 支持配音、配乐与视频原音比例调节; 支持本地添加更多配乐
· 截取、分割 支持毫秒级截取、分割视频; 支持快速预览截取、分割后视频
· 调速 调整视频的播放速度,快放或者慢放
· 转场 支持多种转场; 支持随机转场、指定转场时长等扩展设置
· 其它编辑功能 支持多种比例裁剪; 支持90、180、270度旋转视频画面; 支持左右镜像、上下镜像; 支持输出比例调整;
1.2 完善的视频拍摄功能
· 实时美颜 可以在拍摄过程中实时人脸美肤,提亮、美白等效果,达到人脸美化,同时支持美化程度的调节
· 人脸贴纸/挂件
支持人脸识别及贴纸/挂件显示
· 拍摄自由定义
RDVECore在拍摄过程中,可以根据具体的录制需求,进行自由化的设定,拥有更佳优异的拍摄录制效果。
多段拍摄 一个视频可以分多段次拍摄
摄像头切换 前、后摄像头自由切换,中间无卡顿
多比例支持 支持1:1 、9:16、16:9多个比例录制
变焦、对焦 通过相应手势可以缩放摄像头采集画面及清晰度(依赖硬件支持)
· 滤镜 在拍摄过程中,除了实时美颜,同时还可以实时添加滤镜效果,RDVEUISdk本身提供丰富的滤镜效果让开发者进行选择,同时用户还可以根据自己的需求进行滤镜扩展。
· 照片 当前摄像头画面保存到图片
RDVECore架构图:
RDVECore简要流程图:
2 集成步骤
2.1 运行环境
l Android 4.3(api 18)以上;
l 处理器:双核 1GHz以上CPU(目前只支持ARM CPU, X86、MIPS暂不支持);
推荐四核1.2GHz以上CPU
l 内存:1 GB以上;
2.2 注册申请AppKey和APPSECRET
1、 登录http://www.rdsdk.com 注册用户
2、 登录注册好的用户
3、 进入视频云管理 点击(新增)获取应用的 appkey 、appsecre
2.3 下载并导入SDK
2.3.1 Android Studio 导入rdVECore模块
点击File--->Import Module,选择路径,填写“Module name”,默认为rdVECore,点击“finish”。
然后切换到Dependencies选项卡并点击右侧“+”号在弹出的下拉菜单选择Module Dependency点击。
弹出的小窗口中选择SDK相关的Modules,“OK”
添加成功后点击Project Structure设置界面的“OK”完成导入工作。
关于集成NDK SO库引发冲突解决办法如下:
步骤一:sdk library模块过滤
步骤二:application模块中过滤
编辑SDK NDK包含以下架构的SO库:
· armeabi-v7a
建议在Module的build.gradle文件中使用NDK的“abiFilter”配置,设置支持的SO库架构。
如果在添加“abiFilter”之后Android Studio出现以下提示:
NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin.
则在项目根目录的gradle.properties文件中添加:
android.useDeprecatedNdk=true
在集成NDK SO库时,请注意只保留支持的架构SO库,参考截图配置
关于gradle插件
gradle插件请使用版本2.3.x
可参考demo中使用的版本
2.3.2 准备AndroidManifest.xml (权限)
添加权限:
2.3.3 调用初始化API
RdVECore.initialize(context, rootPath, appKey, appSecret, debuggable);
Parameters:
context 应用上下文
rootPath 自定义的工作目录
appkey 在平台申请的Appkey
appScrect 在平台申请的appScrect
debuggable是否调试
初始化成功后才能正常使用其他功能接口,还要注意系统权限的申请,否则SDK在系统api级别 >= 23(android 6.0+)下不能正常使用
2.4 录制视频
2.4.1 录制初始化参数
// 画面打开之前配置录制参数(可包含摄像头、输出尺寸、帧码率、是否美颜等)
// 通过此方法设置摄像头方向、是否美颜只在onPrepare(RelativeLayout,listener)之前调用有效
//初始化之后设置前后置方向使用
RecorderCore.switchCamera()、RecorderCore.enableBeautify(bEnableBeautify)
RecorderConfig config = new RecorderConfig()
.setVideoSize(width, height) //设置录制视频输出宽高
.setVideoFrameRate(frameRate) //设置录制视频帧率
.setVideoBitrate(bitrate) //设置录制视频码率
.setEnableFront(isFrontCamera) //设置录制视频码率
.setEnableBeautify(canBeautiy) //设置是否启用美颜
.setBeauitifyLevel(level) //设置美颜级别
.setEnableFrontMirror(enableFrontMirror) //设置录制时是否镜像
.setEnableAutoFocus(true) //设置是否自动对焦
.setEnableAutoFocusRecording(false)//设置录制时是否自动对焦
//设置音频编码参数{numChannels - 声音数sampleRate - 采样率bitRate - 码率(bps)}
.setAudioEncodingParameters(numChannels, sampleRate, bitRate) ;
RecorderCore.setEncoderConfig(config); //设置配置
2.4.2 初始化录制界面
/**
* 准备录制
*
* @param parentLayout
* 用于显示摄像头的父布局
* @param listener
* 录制回调消息Listener
*/
RecorderCore.onPrepare(parentLayout, IRecorderCallBackShot listener);
一般用在Activity.onStart()中
2.4.3 关于录制结束时的释放清理操作
用于响应Activity.onDestroy()
RecorderCore.onExit(this);
2.4.4 录制
//开始录制
RecorderCore.startRecord(localSaveMp4File);
//结束录制
RecorderCore.s