锐动IOS带UI视频编辑SDK

编写目的

预期读者:

有视频编辑开发经验或者无经验的,打算或者正在使用“锐动iOS带UI视频编辑SDK”的相关工程师。

 iOS软件工程师。

 产品经理。

 QA


名词解释

       分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率。常见视频分辨率的有1080P即1920x1080,720P即1080x720,640x480等。

       宽高比:视频分辨率的宽高比,常见的有16:9,4:3,1:1。锐动视频编辑SDK对各宽高比的视频都支持编辑,导出的默认分辨率是1280x720,宽高比是16:9。

       帧率:每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数。

       码率: 数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。

       素材:来自系统相机,其他App,电脑,网络的照片,音乐,视频等。

       视频分割: 把视频分割为若干个片段,可用于从视频中截取一个或者多个精彩瞬间,或者删除不喜欢的片段,分割后的多个片段也可以用于重新调整顺序,视频合并等。

       视频裁切: 从视频画面中裁切出来仅需要的部分,锐动视频编辑SDK针对手机竖屏拍摄的画面,支持动态调整裁切区域,帮助用户不同时间点选择自己需要的画面。

       视频旋转:对视频进行90°,180°,270°旋转,一般用于矫正用户手机上录制的头像横置的视频。

       视频镜像:对视频左右镜像。

       视频变速:对视频播放速度调整,实现慢镜头或者快镜头效果。

       视频配乐:选取本地或者网络音乐作为视频的背景音乐。

       视频配音:通过micphone对视频配音。

       视频字幕:使用文字标注视频。

       视频滤镜:调整视频的画面颜色效果。

       视频特效:在视频里面增加特效动画或声音

       合并转场:两个视频片段之间的衔接效果。

       主题(模版): 应用视频的整体效果方案。


XCode集成步骤

3.1  运行环境

SDK支持Ios8.0及以上版本的设备,兼容iPhone、iPad、iPod touch

3.2 注册申请AppKey和APPSecret

1、 打开 http://www.rdsdk.com ,在锐动官网首页选择登 录或注册,新用户先注册,老用户直接登录。 

2、 登录完成后,进入视频云管理 点击“+新增”,填写您应 用的名称等,点击“提交”,应用创建完成。 

3、 创建应用完成后会自动跳转至个人中心页面,此时会获 取到该应用的 AppKey 和 AppSecret。

3.3 下载并导入SDK

3.3.1  添加静态库libRDVEUISDK.a和头文件

3.3.2  添加RDVEUISDK.bundle、RDVECore.bundle、VideoRecord.bundle

3.3.3  工程设置

l IOS10适配

在Info.plist 中 添 加 NSCameraUsageDescription 、

l HTTP协议适配

在Info.plist 中 添 加App Transport Security Settings

l 添加引用苹果官方库

如果录制时使用faceU,还需要引用库Accelerate.framework

l 设置 Other Linker Flags

在TARGETS->Build Settings->Other Linker Flags 中加入-ObjC。

l 设置Enable Bitcode

在TARGETS->Build Settings->Enable Bitcode设置为No。


3.4 集成SDK

3.4.1 引入头文件及初始化

#import "RDVEUISDK.h"

/**  初始化对象

 *

 *  @param appkey          在锐动SDK官网(http://www.rdsdk.com/ )中注册的应用Key。

 *  @param appsecret       在锐动SDK官网(http://www.rdsdk.com/ )中注册的应用秘钥。

 *  @param licenceKey       在锐动SDK官网(http://www.rdsdk.com/ )中注册的licenceKey。

 *  @param resultFailBlock 返回错误信息

 */

- (instancetype) initWithAPPKey:(NSString *)appkey

                       APPSecret:(NSString *)appsecret

LicenceKey:(NSString *)licenceKey

                     resultFail:(RdVEFailBlock )resultFailBlock;

3.4.2 功能设置

/**   视频导出设置

 */

@property (nonatomic,strong) ExportConfiguration     *exportConfiguration;


/**   编辑设置

 */

@property (nonatomic,strong) EditConfiguration        * editConfiguration;


/**  拍摄功能设置

 */

@property (nonatomic,strong) CameraConfiguration    * cameraConfiguration;


3.4.2.1 视频导出设置

/** 设置视频输出最大时长 (单位是秒) 不限制则传0,默认不限制

 */

@property (nonatomic,assign)long int   outputVideoMaxDuration;


/** 设置视频输入最大时长 (单位是秒) 不限制则传0,默认不限制

 */

@property (nonatomic,assign)long int   inputVideoMaxDuration;


/** 是否禁用片尾

 */

@property (nonatomic,assign)bool    endPicDisabled;


/** 片尾显示的用户名

 */

@property (nonatomic,copy)NSString * _Nullable endPicUserName;


/** 片尾显示时长(不包括淡入时长)

 */

@property (nonatomic,assign)float    endPicDuration;


/** 片尾淡入时长

 */

@property (nonatomic,assign)float    endPicFadeDuration;


/** 片尾显示的图片路径

 */

@property (nonatomic,copy)NSString * _Nullable endPicImagepath;


/** 是否禁用水印

 */

@property (nonatomic,assign)bool     waterDisabled;


/** 文字水印

 */

@property (nonatomic,copy,nullable)NSString *waterText;


/** 图片水印

 */

@property (nonatomic,strong,nullable)UIImage *waterImage;


/** 显示位置

 */

@property (nonatomic,assign)RDWATERPOSITION  waterPosition;


/** 设置视频输出码率 (单位是兆,默认是6M),建议设置大于1M,导出和压缩都生效

 */

@property (nonatomic,assign)float   videoBitRate;


/**压缩视频分辨率(调用压缩视频接口生效)

 */

@property (nonatomic,assign)CGSize  condenseVideoResolutionRatio;


3.4.2.2 视频编辑设置

/** 向导模式 如果需要自己删除一些功能 则需启用此参数  default false

 */

@property (assign, nonatomic)bool enableWizard;


/** 编辑视频所支持的文件类型 (default all)

 */

@property (assign, nonatomic)SUPPORTFILETYPE supportFileType;

3.4.2.2.1 相册界面设置

/** 默认选中视频还是图片

 */

@property (nonatomic,assign) RDDEFAULTSELECTALBUM defaultSelectAlbum;


/**选择视频和图片的最大张数

 */

@property (nonatomic,assign) int mediaCountLimit;


/**选择视频和图片的最小数

 */

@property (nonatomic,assign) int mediaMinCount;


/**启用相册相机 (default true)

 */

@property (nonatomic,assign) bool enableAlbumCamera;



/**点击相册界面相机按钮回调

 */

@property (nonatomic,copy,nullable) void(^clickAlbumCameraBlackBlock)();

3.4.2.2.2 截取界面设置

/** 截取时间模式

 */

@property (nonatomic,assign) TRIMMODE trimMode;


/** 单个时间定长截取:截取时间 默认15s

 */

@property (nonatomic,assign) float trimDuration_OneSpecifyTime;


/** 两个时间定长截取:偏小截取时间 默认12s

 */

@property (nonatomic,assign) float trimMinDuration_TwoSpecifyTime;


/** 两个时间定长截取:偏大截取时间 默认30s

 */

@property (nonatomic,assign) float trimMaxDuration_TwoSpecifyTime;


/** 两个时间定长截取:默认选中小值还是大值

 */

@property (nonatomic,assign) RDdefaultSelectCutMinOrMax  defaultSelectMinOrMax;


/** 定长截取时,截取后视频分辨率类型 默认TRIMVIDEOTYPE_ORIGINAL

 *  自由截取时,始终为TRIMVIDEOTYPE_ORIGINAL,该设置无效

 */

@property (nonatomic,assign) TRIMEXPORTVIDEOTYPE trimExportVideoType;

3.4.2.2.3 编辑界面设置

/**单个媒体特效

  */

@property (nonatomic,assign) bool enableSingleSpecialEffects;



/** 单个媒体调色

 */

@property (nonatomic,assign) bool enableSingleMediaAdjust;


/** 单个媒体滤镜 (default true)

 */

@property (nonatomic,assign) bool enableSingleMediaFilter;

/** 截取 (default true)

 */

@property (nonatomic,assign) bool enableTrim;


/** 分割 (default true)

 */

@property (nonatomic,assign) bool enableSplit;

/** 裁切 (default true)

 */

@property (nonatomic,assign) bool enableEdit;


/** 变速 (default true)

 */

@property (nonatomic,assign) bool enableSpeedcontrol;


/** 复制 (default true)

 */

@property (nonatomic,assign) bool enableCopy;


/** 调整顺序 (default true)

 */

@property (nonatomic,assign) bool enableSort;


/** 调整视频比例 (default true)

 */

@property (nonatomic,assign) bool enableProportion;


/** 调整图片显示时长 (default true)

 */

@property (nonatomic,assign) bool enableImageDurationControl;


/** 文字版 (default true)

 */

@property (nonatomic,assign) bool enableTextTitle;


/** 默认视频输出方式(自动,横屏,1 :1)

 */

@property (nonatomic,assign) RDPROPORTIONTYPE  proportionType;


/** 倒放 (default true)

 */

@property (nonatomic,assign) bool enableReverseVideo;


/** 草稿 (default false)

 */

@property (nonatomic,assign) bool enableDraft;

3.4.2.2.4 高级编辑界面设置

/** 网络素材分类地址

 */

@property (nonatomic,copy)NSString   * _Nonnull netMaterialTypeURL;


/** Music网络资源地址 (需自己构建网络下载API)

 */

@property (nonatomic,copy)NSString    * _Nullable musicResourceURL;


/** cloudMusic网络资源地址 (需自己构建网络下载API) default nil

 */

@property (nonatomic,copy)NSString    * _Nullable cloudMusicResourceURL;

/** 音效分类网络资源地址 (需自己构建网络下载API) default nil

 */

@property (nonatomic,copy)NSString    * _Nullable soundMusicTypeResourceURL;


/** 音效分类网络资源地址 (需自己构建网络下载API) default nil

 */

@property (nonatomic,copy)NSString    * _Nullable soundMusicResourceURL;


/** MV网络资源地址 (需自己构建网络下载API)

 */

@property (nonatomic,copy,nullable)NSString    *mvResourceURL;


/** MV网络资源地址

 */

@property (nonatomic,copy,nullable)NSString    *newmvResourceURL;


/** 音乐网络资源地址

 */

@property (nonatomic,copy,nullable)NSString    *newmusicResourceURL;


/** 音乐家

 */

@property (nonatomic,copy,nullable)NSString    *newartist;


/** 音乐家主页标题

 */

@property (nonatomic,copy,nullable)NSString    *newartistHomepageTitle;


/** 音乐家主页Url

 */

@property (nonatomic,copy,nullable)NSString    *newartistHomepageUrl;


/** 音乐授权证书标题

 */

@property (nonatomic,copy,nullable)NSString    *newmusicAuthorizationTitle;


/** 音乐授权证书Url

 */

@property (nonatomic,copy,nullable)NSString    *newmusicAuthorizationUrl;


/** 滤镜网络资源地址

 */

@property (nonatomic,copy,nullable)NSString    *filterResourceURL;


/** 字幕网络资源地址

 */

@property (nonatomic,copy,nullable)NSString    *subtitleResourceURL;


/** 贴纸网络资源地址

 */

@property (nonatomic,copy,nullable)NSString    *effectResourceURL;


/** 特效网络资源地址

 */

@property (nonatomic,copy,nullable)NSString    *specialEffectResourceURL;


/** 字体网络资源地址

 */

@property (nonatomic,copy,nullable)NSString    *fontResourceURL;


/** 转场网络资源地址

 */

@property (nonatomic,copy,nullable)NSString    *transitionURL;


/** 本地音乐 (default true)

 */

@property (nonatomic,assign) bool enableLocalMusic;


/** MV (default true)

 */

@property (nonatomic,assign) bool enableMV;


/** 配乐 (default true)

 */

@property (nonatomic,assign) bool enableMusic;


/** 变声 (default true)

 */

@property (nonatomic,assign) bool enableSoundEffect;


/** 配音 (default true)

 */

@property (nonatomic,assign) bool enableDubbing;


/** 转场 (default true)

 */

@property (nonatomic,assign) bool enableTransition;


/** 配音类型 (default 方式一(配音不放在配乐里面))

 */

@property (nonatomic,assign) RDDUBBINGTYPE dubbingType;

/** 字幕 (default true)

 */

@property (nonatomic,assign) bool enableSubtitle;


/** 滤镜 (default true)

 */

@property (nonatomic,assign) bool enableFilter;


/** 贴纸 (default true)

 */

@property (nonatomic,assign) bool enableSticker;


/** 特效 (default true)

 */

@property (nonatomic,assign) bool enableEffectsVideo;


/** 去水印 (default true)

 */

@property (nonatomic,assign) bool enableDewatermark;


/** 片段编辑 (default true)

 */

@property (nonatomic,assign) bool enableFragmentedit;


/** 图片动画 (default true)

 */

@property (nonatomic,assign) bool enablePicZoom;


/** 背景 (default true)

 */

@property (nonatomic,assign) bool enableBackgroundEdit;


/** 封面 (default true)

 */

@property (nonatomic,assign) bool enableCover;

/** 涂鸦 (default true)

 */

@property (nonatomic,assign) bool enableDoodle;


/** 进入SDK界面是否需要动画 (default true)

 */

@property (nonatomic,assign) bool presentAnimated;


/** 退出SDK界面是否需要动画 (default true)

 */

@property (nonatomic,assign) bool dissmissAnimated;


/** MVEffect (default false)

 */

@property (nonatomic,assign) bool enableMVEffect;


/** 画中画 (default true)

 */

@property (nonatomic,assign) bool enableCollage;

3.4.2.3 视频录制功能设置

/** 设置输出图像格式,默认为YES

 *  YES:kCVPixelFormatType_420YpCbCr8BiPlanarFullRange

 *  NO:kCVPixelFormatType_32BGRA

 */

@property(nonatomic, assign) bool captureAsYUV;


/** 拍摄模式 default CameraModel_Onlyone

 */

@property (nonatomic,assign) CameraModelType              cameraModelType;


/** 是否在拍摄完成就保存到相册再返回 default false 该参数只有在 CameraModel_Onlyone 模式下才生效

 */

@property (nonatomic,assign) bool                           cameraWriteToAlbum;


/** 前/后置摄像头 default AVCaptureDevicePositionFront

 */

@property (nonatomic,assign) AVCaptureDevicePosition        cameraCaptureDevicePosition;


/** 相机的方向 default RecordVideoOrientationAuto

 */

@property (nonatomic,assign) RecordVideoOrientation         cameraRecordOrientation;


/** 相机录制大小(正方形录制,非正方形录制)

 */

@property (nonatomic,assign) RecordVideoSizeType            cameraRecordSizeType;


/** 录制视频帧率 default 30

 */

@property (nonatomic,assign) int32_t                        cameraFrameRate;


/** 录制视频码率 default 4000000

 */

@property (nonatomic,assign) int32_t                        cameraBitRate;


/** 录制还是拍照 default RecordTypeVideo

 */

@property (nonatomic,assign) Record_Type                    cameraRecord_Type;


/** 视频输出路径

 */

@property (nonatomic,copy,nullable) NSString              *cameraOutputPath;


/**录制的视频的大小 (如:{720,1280}) default CGSizeZero

 */

@property (nonatomic,assign) CGSize                         cameraOutputSize;


/** 正方形录制时配置按钮的位置(美颜,延时,摄像头切换 三个按钮的位置)

 */

@property (nonatomic,assign) CameraCollocationPositionType  cameraCollocationPosition;


/** 正方形录制最大时长(default 10 )

 */

@property (nonatomic,assign) float                          cameraSquare_MaxVideoDuration;


/**非正方形录制最大时长 (default 0 ,不限制)

 */

@property (nonatomic,assign) float                          cameraNotSquare_MaxVideoDuration;


/**录制最小时长 (default 0 ,不限制 正方形录制和长方形录制都生效)

 */

@property (nonatomic,assign) float                          cameraMinVideoDuration;


/** 是否开启滤镜功能(只有在开启Faceu的时候该参数才生效)

 */

@property (nonatomic , assign) bool                         enableFilter;


/**人脸道具贴纸

 */

@property (assign, nonatomic) bool                          enableFaceU;


/**人脸道具贴纸证书

 */

@property (assign, nonatomic,nonnull) void                  *faceUAuth;


/**人脸道具贴纸证书长度

 */

@property (assign, nonatomic)Float64                        lenFaceUAuth;


/**是否启用网络下载faceUnity

 */

@property (assign, nonatomic)bool                           enableNetFaceUnity;


/**人脸道具贴纸下载路径

 */

@property (copy, nonatomic,nonnull)NSString                 *faceUURL;


/** 拍摄类型:可拍摄短视频MV(default true)

 */

@property (nonatomic,assign) bool                           cameraMV;


/** 拍摄类型:可拍摄视频(default true)

 */

@property (nonatomic,assign) bool                           cameraVideo;


/** 拍摄类型:可拍摄照片(default true)

 */

@property (nonatomic,assign) bool                           cameraPhoto;


/** 短视频MV录制最小时长(default 3s )

 */

@property (nonatomic,assign) float                          cameraMV_MinVideoDuration;


/** 短视频MV录制最大时长(default 15s )

 */

@property (nonatomic,assign) float                          cameraMV_MaxVideoDuration;


/** 从相机进入相册

 */

@property (nonatomic,copy,nonnull) void(^cameraEnterPhotoAlbumCallblackBlock)( );


/** 是否隐藏相机进入相册按钮

 */

@property (nonatomic,assign) bool                           hiddenPhotoLib;


// faceU美颜设置

/**瘦脸 0.0~1.0     default 0.68

 */

@property (nonatomic , assign) float cheekThinning;



/**大眼 0.0~2.0     default 1.53

 */

@property (nonatomic , assign) float eyeEnlarging;



/**美白 0.0~1.0     default 0.48

 */

@property (nonatomic , assign) float colorLevel;


/**磨皮 1 2 3 4 5   default 3

 */

@property (nonatomic , assign) float blurLevel;


/** 瘦脸等级 0.0 ~ 1.0 默认1.0

 */

@property (nonatomic , assign) float faceShapeLevel;


/** 瘦脸类型 0.0 ~ 3.0 默认0.0

 */

@property (nonatomic , assign) float faceShape;


/*是否开启使用音乐录制. 如果需要切换音乐请设置好音乐下载路径,不设置则跳转到本地音乐界面 (editConfiguration.cloudMusicResourceURL)

 */

@property (nonatomic, assign) BOOL                  enableUseMusic;


/*传入需要录制时播放的音乐

 */

@property (nonatomic, strong) RDMusicInfo          * _Nullable musicInfo;


/*是否启用相机水印

 */

@property (nonatomic, assign) BOOL              enabelCameraWaterMark;

/*片头水印时长

 */

@property (nonatomic, assign) float             cameraWaterMarkHeaderDuration;


/*片尾水印时长

 */

@property (nonatomic, assign) float             cameraWaterMarkEndDuration;

/*相机水印更新画面回调

 *1:正方形录制,0:非正方形录制*/

 */

@property (nonatomic, copy) void (^cameraWaterProcessingCompletionBlock)(NSInteger type,RecordStatus status, UIView *waterMarkview ,float time);

3.4.2.3.1 启用faceU说明

1、 导入签权证书

2、 导入美颜基础资源:face_beautification.bundle、v3.bundle

3.4.2.3.1.1  开启faceU

rdVESDK.cameraConfiguration.enableFaceU = true;

3.4.2.3.1.2  启用签权证书

    rdVESDK.cameraConfiguration.faceUAuth = &g_faceuAuth_package;

rdVESDK.cameraConfiguration.lenFaceUAuth = sizeof(g_faceuAuth_package);

3.4.2.3.1.3  从网络加载faceUnity道具资源

rdVESDK.cameraConfiguration.enableNetFaceUnity  = true;

rdVESDK.cameraConfiguration.faceUURL = @"http://faceUnity道具资源下载地址";

自定义获取faceUnity道具的url方法,具体参见《3.16.1自定义faceU资源》。


3.5 录制视频

/** 录制视频 参数设置(cameraConfiguration)

 *  @param source        源视图控制器

 *  @param callbackBlock 完成录制回调(result :0 表示MV 1表示视频)

 *  @param imagebackBlock 拍照完成回调

 *  @param cancelBlock   取消录制回调

 */

- (void)videoRecordAutoSizeWithSourceController: (UIViewController*)source

                                  callbackBlock: (RdVERecordCallbackBlock)callbackBlock

                                 imagebackBlock: (RdVECallbackBlock)imagebackBlock

                                     faileBlock: (RdVEFailBlock)failBlock

        cancel: (RdVECancelBlock)cancelBlock;


3.6 编辑视频

/**   编辑短视频MV

 *

 *  @param viewController    源控制器

 *  @param urlAsset          视频源

 *  @param clipTimeRange     时间段

 *  @param crop              crop范围 默认:CGRectMake(0, 0, 1, 1)

 *  @param outputVideoPath   视频输出路径

 *  @param callbackBlock     完成编辑回调

 *  @param cancelBlock       取消编辑回调

 */

- (void)editVideoWithSuperController:(UIViewController *)viewController

                            urlAsset:(AVURLAsset *)urlAsset

                       clipTimeRange:(CMTimeRange )clipTimeRange

                                crop:(CGRect)crop

                          outputPath:(NSString *)outputVideoPath

                            callback:(RdVECallbackBlock )callbackBlock

cancel:(RdVECancelBlock )cancelBlock;


- (void)editVideoWithSuperController:(UIViewController *)viewController

                            urlAsset:(AVURLAsset *)urlAsset

                       clipTimeRange:(CMTimeRange )clipTimeRange

                                crop:(CGRect)crop

                           musicInfo:(RDMusicInfo *)musicInfo

                          outputPath:(NSString *)outputVideoPath

callback:(RdVECallbackBlock )callbackBlock

                        cancel:(RdVECancelBlock )cancelBlock;


/**   编辑视频(传入URL数组)

 *

 *  @param viewController    源控制器

 *  @param foldertype        缓存文件夹类型 (Documents、Library、Temp,None)

 *  @param appAlbumCacheName 需扫描的缓存文件夹名称

 *  @param urlsArray         视频/图片路径(NSMutableArray <NSURL*>)如:相册视频 assets-library://asset/asset...

 *  @param outputVideoPath   视频输出路径

 *  @param callbackBlock     完成编辑回调

 *  @param cancelBlock       取消编辑回调

 */

- (void)editVideoWithSuperController:(UIViewController *)viewController

                          foldertype:(FolderType)foldertype

                   appAlbumCacheName:(NSString *)appAlbumCacheName

                           urlsArray:(NSMutableArray *)urlsArray

                          outputPath:(NSString *)outputVideoPath

                            callback:(RdVECallbackBlock )callbackBlock

cancel:(RdVECancelBlock )cancelBlock;


- (void)editVideoWithSuperController:(UIViewController *)viewController

                          foldertype:(FolderType)foldertype

                   appAlbumCacheName:(NSString *)appAlbumCacheName

                           urlsArray:(NSMutableArray *)urlsArray

                           musicInfo:(RDMusicInfo *)musicInfo

                          outputPath:(NSString *)outputVideoPath

                            callback:(RdVECallbackBlock )callbackBlock

cancel:(RdVECancelBlock )cancelBlock;

/**   草稿箱

*/

- (void)editDraftWithSuperController:(UIViewController *)viewController

                          outputPath:(NSString *)outputVideoPath

                            callback:(RdVECallbackBlock)callbackBlock

                            failback:(RdVEFailBlock) failback

cancel:(RdVECancelBlock)cancelBlock;



3.7 自定义相册或是调用系统相册

实现代理方法:

/*

 *如果需要自定义相册则需要实现此函数

 */

- (void)selectVideoAndImageResult:(UINavigationController *)nav callbackBlock:(void (^)(NSMutableArray *lists))callbackBlock;


/*

 *如果需要自定义相册则需要实现此函数(添加视频)

 */

- (void)selectVideosResult:(UINavigationController *)nav callbackBlock:(void (^)(NSMutableArray *lists))callbackBlock;

/*

 *如果需要自定义相册则需要实现此函数(添加图片)

 */

- (void)selectImagesResult:(UINavigationController *)nav callbackBlock:(void (^)(NSMutableArray *lists))callbackBlock;


以系统相册为例:(需实现以下两个协议:UINavigationControllerDelegate, UIImagePickerControllerDelegate)

3.8 截取视频

/**  截取视频 通过传入视频对象 AVUrlAsset

 *  @param viewController               源控制器

 *  @param title                        导航栏标题

 *  @param backgroundColor              背景色

 *  @param cancelButtonTitle            取消按钮文字

 *  @param cancelButtonTitleColor       取消按钮标题颜色

 *  @param cancelButtonBackgroundColor  取消按钮背景色

 *  @param otherButtonTitle             完成按钮文字

 *  @param otherButtonTitleColor        完成按钮标题颜色

 *  @param otherButtonBackgroundColor   完成按钮背景色

 *  @param urlAsset                     数据源

 *  @param outputVideoPath              视频输出路径

 *  @param callbackBlock                截取完成回调

 *  @param failback                     截取失败回调

 *  @param cancelBlock                  取消截取回调

  */

- (void)trimVideoWithSuperController:(UIViewController *)viewController

                     controllerTitle:(NSString *) title

                     backgroundColor:(UIColor  *) backgroundColor

                   cancelButtonTitle:(NSString *) cancelButtonTitle

              cancelButtonTitleColor:(UIColor  *) cancelButtonTitleColor

         cancelButtonBackgroundColor:(UIColor  *) cancelButtonBackgroundColor

                    otherButtonTitle:(NSString *) otherButtonTitle

               otherButtonTitleColor:(UIColor  *) otherButtonTitleColor

          otherButtonBackgroundColor:(UIColor  *) otherButtonBackgroundColor

                            urlAsset:(AVURLAsset *) urlAsset

                          outputPath:(NSString *) outputVideoPath

                       callbackBlock:(RdVE_TrimAssetCallbackBlock) callbackBlock

                            failback:(RdVEFailBlock       ) failback

cancel:(RdVECancelBlock     ) cancelBlock;

/**  截取视频 通过传入路径 path

 *  @param viewController               源控制器

 *  @param title                        导航栏标题

 *  @param backgroundColor              背景色

 *  @param cancelButtonTitle            取消按钮文字

 *  @param cancelButtonTitleColor       取消按钮标题颜色

 *  @param cancelButtonBackgroundColor  取消按钮背景色

 *  @param otherButtonTitle             完成按钮文字

 *  @param otherButtonTitleColor        完成按钮标题颜色

 *  @param otherButtonBackgroundColor   完成按钮背景色

 *  @param assetPath                    数据源

 *  @param outputVideoPath              视频输出路径

 *  @param callbackBlock                截取完成回调

 *  @param failback                     截取失败回调

 *  @param cancelBlock                  取消截取回调

  */

- (void)trimVideoWithSuperController:(UIViewController *)viewController

                     controllerTitle:(NSString *) title

                     backgroundColor:(UIColor  *) backgroundColor

                   cancelButtonTitle:(NSString *) cancelButtonTitle

              cancelButtonTitleColor:(UIColor  *) cancelButtonTitleColor

         cancelButtonBackgroundColor:(UIColor  *) cancelButtonBackgroundColor

                    otherButtonTitle:(NSString *) otherButtonTitle

               otherButtonTitleColor:(UIColor  *) otherButtonTitleColor

          otherButtonBackgroundColor:(UIColor  *) otherButtonBackgroundColor

                           assetPath:(NSString *) assetPath

                          outputPath:(NSString *) outputVideoPath

                       callbackBlock:(RdVE_TrimVideoPathCallbackBlock) callbackBlock

                            failback:(RdVEFailBlock       ) failback

                              cancel:(RdVECancelBlock     ) cancelBlock;


/**设置截取返回类型

 * 此方法点击自定义弹框的按钮时才会被调用

 */

- (void)trimVideoWithType:(RDCutVideoReturnType )type;


/**截取视频 开始时间 总长

 */

- (void)Intercept:(NSString *)InPath

        atOutPath:(NSString *)OutPath

      atStartTime:(float) startTime

   atDurationTime:(float) DurationTime

         atAppkey:(NSString *)appKey

      atappSecret:(NSString *)appSecret

atvideoAverageBitRate:(float) videoAverageBitRate

atSuccessCancelBlock:(SuccessCancelBlock)successCancelBlock

atFailCancelBlock:(FailCancelBlock)failCancelBlock;


3.9 视频压缩

/**获取视频信息 字典 width height fps bitrate

 *

 */

- (NSDictionary *) getVideoInformation:(AVURLAsset *)urlAsset;


/** 压缩视频 参数设置(ExportConfiguration)

 *  @param size            压缩输出分辨率

 *  @param bitrate         压缩输出比特率

 *  @param progressBlock   压缩进度回调

 *  @param callbackBlock   压缩完成回调

 *  @param failBlock       压缩失败回调

 */

- (void)compressVideoAsset:(AVURLAsset *)urlAsset

                outputPath:(NSString *)outputPath

                 startTime:(CMTime )startTime

                   endTime:(CMTime )endTime

                outputSize:(CGSize) size

             outputBitrate:(float) bitrate

                supperView:(UIViewController *)supperView

             progressBlock:(void (^)(float progress))progressBlock

             callbackBlock:(void (^)(NSString *videoPath))callbackBlock

                      fail:(void (^)(NSError *error))failBlock;

/** 取消导出

 */

- (void) compressCancel;


3.10 照片电影

3.10.1 API实现(仿Quik)

- (void)pictureMovieWithSuperController_Theme:(UIViewController *)viewController

                                   UrlsArray:(NSMutableArray *)urlsArray

                                  outputPath:(NSString *)outputVideoPath

                                    callback:(RdVECallbackBlock )callbackBlock

                                      cancel:(RdVECancelBlock )cancelBlock;

3.10.2 AE模板

- (void)pictureMovieWithSuperController:(UIViewController *)viewController

                              UrlsArray:(NSMutableArray *)urlsArray

                             outputPath:(NSString *)outputVideoPath

                               callback:(RdVECallbackBlock )callbackBlock

                                 cancel:(RdVECancelBlock )cancelBlock;


3.11 创意搞怪小视频

3.11.1 AE模板(简影)

- (void)AEHomeWithSuperController:(UIViewController *)viewController

                       outputPath:(NSString *)outputVideoPath

                         callback:(RdVECallbackBlock )callbackBlock

                           cancel:(RdVECancelBlock )cancelBlock;

3.11.2 字说

- (void)aeTextAnimateWithSuperController:(UIViewController *)viewController

                              outputPath:(NSString *)outputVideoPath

                                callback:(RdVECallbackBlock )callbackBlock

                                  cancel:(RdVECancelBlock )cancelBlock;



3.12 多格

- (void)dogePuzzleWithSuperController:(UIViewController *)viewController

                                    UrlsArray:(NSMutableArray *)urlsArray

                                   outputPath:(NSString *)outputVideoPath

                                     callback:(RdVECallbackBlock )callbackBlock

cancel:(RdVECancelBlock )cancelBlock;


3.13 相册功能(选择视频或图片后返回选中资源)

/**选择视频或图片

 * @param viewController  源控制器

 * @param albumType 选择相册类型(仅选图片,仅选视频,两者皆可)

 * @param callbackBlock 相册选择完成返回一个NSURL数组 NSMutableArray <NSURL *> *List

 * @param cancelBlock 取消选择相册资源

 */

- (BOOL)onRdVEAlbumWithSuperController:(UIViewController *)viewController

                            albumType:(ALBUMTYPE)albumType

                            callBlock:(OnAlbumCallbackBlock) callbackBlock

                          cancelBlock:(RdVECancelBlock) cancelBlock;


3.14 导出视频中的音频

3.14.1 无界面

/** 从视频中提取音频

 *params: type                  输出音频类型,目前支持三种(AVFileTypeMPEGLayer3,AVFileTypeAppleM4A,AVFileTypeWAVE)

 *params: videoUrl              视频源地址

 *params: trimStart             从原始视频截取的开始时间 单位:秒 默认 0

 *params: duration              截取的持续时间 默认视频原始时长

 *params: outputFolder          输出文件存放的文件夹路径

 *params: samplerate            输出采样率

 *params: completionHandle      导出回调

 */

+ (void)video2audiowithtype:(AVFileType)type

                   videoUrl:(NSURL*)videoUrl

                  trimStart:(float)start

                   duration:(float)duration

           outputFolderPath:(NSString*)outputFolder

                 samplerate:(int )samplerate

                 completion:(void(^)(BOOL result,NSString*outputFilePath))completionHandle;

3.14.2 有界面

- (void)video2audiowithtype:(UIViewController *)viewController

               atAVFileType:(AVFileType)type

                   videoUrl:(NSURL*)videoUrl

           outputFolderPath:(NSString*)outputFolder

                 samplerate:(int )samplerate

                   callback:(RdVECallbackBlock )callbackBlock

cancel:(RdVECancelBlock )cancelBlock;


3.15 小功能

/** 单个媒体编辑

 *

 *  @param viewController    源控制器

 *  @param functionType      编辑类型

 *  @param urlArray          视频/图片路径如:相册视频 assets-library://asset/asset...

 *  @param outputVideoPath   视频输出路径

 *  @param callbackBlock     完成转码回调

 *  @param cancelBlock       取消转码回调

 */

- (void)singleMediaWithSuperController:(UIViewController *)viewController

                          functionType:(RDSingleFunctionType)functionType

                            outputPath:(NSString *)outputVideoPath

                              urlArray:(NSMutableArray <NSURL *>*)urlArray

                              callback:(RdVECallbackBlock)callbackBlock

                                cancel:(RdVECancelBlock)cancelBlock;


3.16 自定义资源

3.16.1 自定义faceU资源

获取人脸贴纸资源的url 需满足以下定义:

请求格式:

参数说明:

正常返回结果:

设置访问http域名白名单:

3.16.2  自定义MV资源

1、通过以下配置启用 MV, 并设置获取 MV 资源的 url

rdVESDK.editConfiguration.enableMV = true;

rdVESDK.editConfiguration.mvResourceURL   = @"http://**";

2、MV中的json配置参照文件:素材管理平台操作手册.doc

3、获取 MV 资源的 url 需满足以下定义:

请求格式:

参数说明:

正常返回结果:

3.16.3  自定义配乐资源

通过以下配置启用自定义配乐,并设置获取配乐资源的 url

rdVESDK.editConfiguration.enableMusic = true;

rdVESDK.editConfiguration.musicResourceURL= @"http:// **"; //若不设置 url 自动隐藏该功能

获取配乐资源的url 需满足以下定义:

请求格式:

参数说明:

正常返回结果:

3.16.4  自定义云音乐资源

通过以下配置启用自定义云音乐,并设置获取云音乐资源的url

rdVESDK.editConfiguration.enableMusic = true;

rdVESDK.editConfiguration. soundMusicTypeResourceURL= @"http:// **";

rdVESDK.editConfiguration.cloudMusicResourceURL= @"http:// **";//若不设置 url 自动隐藏该功能 

获取云音乐资源的url 需满足以下定义:

请求格式:

参数说明:

正常返回结果:

3.16.5 自定义字幕、贴纸资源

1、通过以下配置启用自定义字幕、贴纸,并设置获取字幕、贴纸资源的 url

rdVESDK.editConfiguration. enableSubtitle = true;

rdVESDK.editConfiguration. subtitleResourceURL= @"http:// **";//若不设置 url ,则使用默认地址

rdVESDK.editConfiguration. enableSticker= true;

rdVESDK.editConfiguration. effectResourceURL= @"http:// **";//若不设置 url ,则使用默认地址

2、json配置参照文件:素材管理平台操作手册.doc

3.16.6 自定义字体资源

1、设置获取字体资源的 url

rdVESDK.editConfiguration. fontResourceURL= @"http:// **";//若不设置 url ,则使用默认地址

3.16.7 自定义滤镜资源

1、通过以下配置启用自定义滤镜,并设置获取滤镜的 url

rdVESDK.editConfiguration. enableFilter= true;

rdVESDK.editConfiguration. filterResourceURL= @"http:// **";//若不设置 url ,则使用默认地址

3.16.8 自定义转场资源

1、通过以下配置启用自定义转场,并设置获取转场资源的 url

rdVESDK.editConfiguration. enableTransition= true;

rdVESDK.editConfiguration. transitionURL= @"http:// **";//若不设置 url ,则使用默认地址

3.16.9 自定义特效

1、通过以下配置启用自定义特效,并设置获取特效资源的 url

rdVESDK.editConfiguration. enableEffectsVideo = true;

rdVESDK.editConfiguration. specialEffectResourceURL = @"http:// **";//若不设置 url ,则使用默认地址


想要了解更多详细内容请联系QQ:45644590

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容