1 RDVECore功能概述 RDVECore是锐动推出的无UI,高度抽象化API的视频编辑SDK,支持以下功能: 1.1 丰富的编辑功能RDVECore包含了丰富的基础功能,对于编辑中的视频、图片、音乐有各种
处理方式,并且可以根据实际的业务需求,进行搭配组合,所有处理都可以精确
到毫秒级,达到最专业的的要求,主要功能如下: l MV MV根据配置资源进行混合以及动画,增强短视频效果 l 滤镜 RDVEUISDK本身提供丰富的滤镜效果让开发者进行选择,同时用户还可以根据自己的需求进行滤镜扩展。 l 字幕特效 字幕特效支持在指定位置,指定时间段显示;实时预览效果 l 配音、配乐 支持指定时间段添加配音; 支持配音、配乐与视频原音比例调节; 支持本地添加更多配乐 l 截取、分割 支持毫秒级截取、分割视频; 支持快速预览截取、分割后视频 l 调速 调整视频的播放速度,快放或者慢放 l 转场 支持多种转场; 支持随机转场、指定转场时长等扩展设置 l 其它编辑功能 支持多种比例裁剪; 支持90、180、270度旋转视频画面; 支持左右镜像、上下镜像; 支持输出比例调整; 1.2 完善的视频拍摄功能· 实时美颜 可以在拍摄过程中实时人脸美肤,提亮、美白等效果,达到人脸美化,同时支持美化程度的调节 · 人脸贴纸/挂件 支持人脸识别及贴纸/挂件显示 · 拍摄自由定义 RDVECore在拍摄过程中,可以根据具体的录制需求,进行自由化的设定,拥有更佳优异的拍摄录制效果。 多段拍摄 一个视频可以分多段次拍摄 摄像头切换 前、后摄像头自由切换,中间无卡顿 多比例支持 支持1:1 、9:16、16:9多个比例录制 变焦、对焦 通过相应手势可以缩放摄像头采集画面及清晰度 · 滤镜 在拍摄过程中,除了实时美颜,同时还可以实时添加滤镜效果,RDVEUISDK本身提供丰富的滤镜效果让开发者进行选择,同时用户还可以根据自己的需求进行滤镜扩展。 · 照片 当前摄像头画面保存到图片 RDVECore架构图: RDVECore简要流程图: 2 XCode集成步骤2.1 运行环境SDK支持iOS7.0及以上版本的设备,兼容iPhone、iPad、iPod touch 2.2 注册申请AppKey和APPSecret2.2.1 打开 http://www.rdsdk.com/ ,在锐动官网首页选择登 录或注册,新用户先注册,老用户直接登录。 
2.2.2 登录完成后,进入视频云管理 点击“+新增”,填写您应 用的名称等,点击“提交”,应用创建完成。 
2.2.3 创建应用完成后会自动跳转至个人中心页面,此时会获 取到该应用的 AppKey 和 AppSecret。 
2.3 下载并导入SDK2.3.1 添加静态库libRDVECore.a和头文件2.3.2 添加RDVECore.bundle2.3.3 工程设置l TARGETS的Deployment Info仅勾选竖屏(Portrait),横屏(LandscapeLeft、LandscapeRight)不勾选: l IOS10适配 在 Info.plist 中 添 加 NSCameraUsageDescription 、 NSMicrophoneUsageDescription、NSPhotoLibraryUsageDescription。 l 添加引用苹果官方库 如果录制时使用faceU,还需要引用库Accelerate.framework l 设置 Other Linker Flags
 在 TARGETS->Build Settings->Other Linker Flags 中加入-ObjC。 2.4 编辑视频2.4.1 引入头文件及初始化#import "RDVECore.h" /** 初始化对象 * * @param appkey 在锐动SDK官网(http://www.rdsdk.com/ )中注册的应用Key。 * @param appsecret 在锐动SDK官网(http://www.rdsdk.com/ )中注册的应用秘钥。 * @param size 视频分辨率 * @param fps 视频帧率(1-30) * @param resultFailBlock 初始化失败的回调[error:初始化失败的错误码] */ - (instancetype) initWithAPPKey:(NSString *)appkey APPSecret:(NSString *)appsecret videoSize:(CGSize)size fps:(int)fps resultFail:(void (^)(NSError *error))resultFailBlock; 2.4.2 构造虚拟视频并添加到播放器1、 构造一个或多个场景,并设置场景的相应属性 NSMutableArray *scenes = [NSMutableArray new]; RDScene *scene = [[RDScene alloc] init]; (设置场景的相应属性) [scenes addObject:scene]; 2、 将场景添加到播放器中 [_videoCoreSDK addScenes:scenes]; 3、 设置播放器属性 _videoCoreSDK.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.width); _videoCoreSDK.delegate = self; _videoCoreSDK.shouldRepeat = YES; 4、 构造虚拟视频 [_videoCoreSDK build]; 5、 将播放器添加到视图中 [self.view addSubview:_videoCoreSDK.view]; 2.4.3 MV1、 初始化MV NSMutableArray *selectMVEffects = [NSMutableArray array]; VVMovieEffect *mvEffect = [[VVMovieEffect alloc] init]; [selectMVEffects addObject:mvEffect]; 2、 设置MV属性 //MV路径 @property (nonatomic,strong) NSURL* _Nullable url; //MV显示时长 @property (nonatomic,assign) CMTimeRange timeRange; //MV类型 @property (nonatomic,assign) RDVideoMVEffectType type; 3、 将MV添加到播放器中,或者将MV从播放器中移除 1) 添加[_videoCoreSDK addMVEffect:selectMVEffects]; 2) 移除[_videoCoreSDK addMVEffect:nil]; 4、 重新构造虚拟视频 [_videoCoreSDK build]; 2.4.4 配乐1、 初始化配乐 RDMusic *music = [[RDMusic alloc] init]; 2、 设置配乐属性 /**音乐总时间范围 */ @property (nonatomic, assign) CMTimeRange timeRange; /**音乐截取时间范围 */ @property (nonatomic, assign) CMTimeRange clipTimeRange; /**音乐名称 */ @property (nonatomic, strong) NSString *_Nullable name; /**音量(0.0-1.0),默认为1.0 */ @property (nonatomic, assign) float volume; /**是否重复播放 */ @property (nonatomic, assign) BOOL isRepeat; 3、 将配乐添加到播放器中,或者将配乐从播放器中移除 1) 添加:[_videoCoreSDK addMusic:music]; 2) 移除:[_videoCoreSDK addMusic:nil]; 4、 重新构造虚拟视频 [_videoCoreSDK build]; 2.4.5 配音1、 初始化配音 NSMutableArray *dubbingArr = [NSMutableArray array]; RDMusic *music = [[RDMusic alloc] init]; [dubbingArr addObject:music]; 2、 设置配音属性:同配乐 3、 将配音添加到播放器中,或者将配音从播放器中移除 1) 添加:[_videoCoreSDK addDubbingMusics:dubbingArr]; 2) 移除:[_videoCoreSDK addDubbingMusics:nil]; 4、 重新构造虚拟视频 [_videoCoreSDK build]; 2.4.6 字幕、特效1、 在初始化播放器时设置 _videoCoreSDK.frameLayerBlock = ^(CMTime currentTime, CALayer *layer) { [weakSelf addSubLayerToFront:layer time:currentTime]; }; 2、 初始化字幕(特效) NSMutableArray *effects = [NSMutableArray array]; RDCaption *caption = [[RDCaption alloc] init]; [effects addObject:caption]; 3、 设置字幕(特效)属性 /**字幕中心坐标点比例 */ @property (nonatomic ,assign) CGPoint captionCenter; /**字幕宽度点比例 */ @property (nonatomic ,assign) CGFloat widthProportion; /**字幕帧率 */ @property (nonatomic ,assign) CGFloat fps; /**字幕时间范围 */ @property (nonatomic ,assign) CMTimeRange timeRange; /**字幕旋转角度 */ @property (nonatomic ,assign) float angle; /**字幕缩放大小 */ @property (nonatomic ,assign) float scale; /**id */ @property (nonatomic ,assign) NSInteger pid; /**贴图类型 0 带文字,1 不带文字 */ @property (nonatomic ,assign) NSInteger type; /** 字幕图片文件路径 */ @property (nonatomic ,copy) NSString *_Nullable path; /**图片前缀名字 */ @property (nonatomic ,copy) NSString *_Nullable name; /**持续时间 */ @property (nonatomic ,assign) float duration; /**多少图片 */ @property (nonatomic ,assign) NSInteger count; /**图片区域 */ @property (nonatomic ,assign) CGRect frame; /**原始图片大小 */ @property (nonatomic ,assign) CGSize size; /**图片文字 */ @property (nonatomic ,copy) NSString *_Nullable pText; /** 文字图片 */ @property (nonatomic ,strong) UIImage *_Nullable tImage; /**文字字体名称 */ @property (nonatomic ,copy) NSString *_Nullable tFontName; /**文字字体大小 */ @property (nonatomic ,assign) float tFontSize; /** 文字旋转度数 */ @property (nonatomic ,assign) float tAngle; /**文字颜色 */ @property (nonatomic ,strong) UIColor *_Nullable tColor; /**文字描边颜色 */ @property (nonatomic ,strong) UIColor * _Nullable strokeColor; /**文字描边宽度 */ @property (nonatomic ,assign) float strokeWidth; /** 文字区域 */ @property (nonatomic ,assign) CGRect tFrame; /**文字开始时间 */ @property (nonatomic ,assign) float tBegin; /**文字结束时间 */ @property (nonatomic ,assign) float tEnd; /**帧动画 */ @property (nonatomic ,strong) NSArray *_Nullable frames; /**时间动画 */ @property (nonatomic ,strong) NSArray *_Nullable times; /** 字幕是否支持拉伸 */ @property (nonatomic, assign) BOOL tStretching; /**字幕拉伸的 */ @property (nonatomic ) UIEdgeInsets edgeInsets; /**字幕拉伸的 */ @property (nonatomic ) CGRect contentsCenter; /**音乐 */ @property (nonatomic , strong) RDMusic *_Nullable music; 4、 初始化CaptionLayer CaptionLayer* captionLayer = [[CaptionLayer alloc] initWithCaption:caption videoSize:videoSize]; * videoSize:初始化播放器时,设置的视频分辨率 5、 在字幕(特效)的显示范围(timeRange)内,将captionLayer添加到1、中的layer上。 具体参照RDVEUISDK |