锐动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 TARGETS的Deployment Info仅勾选竖屏(Portrait),横屏(LandscapeLeft、LandscapeRight)不勾选:

l IOS10适配

在 Info.plist 中 添 加 NSCameraUsageDescription 、

NSMicrophoneUsageDescription、NSPhotoLibraryUsageDescription、NSAppleMusicUsageDescription。

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

时间: 2024-10-16 20:38:25

锐动IOS带UI视频编辑SDK的相关文章

RDVECore来自锐动的无UI,高度抽象化API的视频编辑SDK

1 编写目的 预期读者: 有视频编辑开发经验或者无经验的,打算或者正在使用"锐动IOS版RDVECore"的相关工程师. iOS软件工程师. 产品经理. QA 2 名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1080x720,640x480等. 帧率:每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数. 码率: 数据传输时单位时间传送的数据位数,一般我们用的

RDVECore来自锐动的无UI,高度抽象化API的视频编辑SDK--IOS版

1 编写目的 预期读者: 有视频编辑开发经验或者无经验的,打算或者正在使用"锐动IOS版RDVECore"的相关工程师. iOS软件工程师. 产品经理. QA 2 名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1080x720,640x480等. 帧率:每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数. 码率: 数据传输时单位时间传送的数据位数,一般我们用的

锐动视频编辑SDK接入说明

锐动视频编辑SDK集视频拍摄和视频剪辑功能于一体,同时包含视频配音配乐.字幕特效.滤镜.转场等各种功能,全方位满足开发者的需求,并可以快速植入到APP中.编辑预览时支持智能硬件解码,选择视频时不需要转码,减少用户等待时间. 一.运行环境 Android 4.1(api 16)以上: 处理器:双核 1GHz以上CPU(目前只支持ARM CPU, X86.MIPS暂不支持):推荐四核1.2GHz以上CPU 内存:1 GB以上: 二.注册申请AppKey和APPSECRET 1. 登录http://w

Android视频编辑SDK--RDVECore来自锐动的无UI,高度抽象化API

RDVECore功能概述 RDVECore是锐动推出的无UI,高度抽象化API的视频编辑SDK,支持以下功能: 1.1 丰富的编辑功能 RDVECore包含了丰富的基础功能,对于编辑中的视频.图片.音乐有各种 处理方式,并且可以根据实际的业务需求,进行搭配组合,所有处理都可以精确 到毫秒级,达到最专业的的要求,主要功能如下: · MV MV根据配置资源进行混合以及动画,增强短视频效果 · 滤镜 RDVEUISdk本身提供丰富的滤镜效果让开发者进行选择,同时用户还可以根据自己的需求进行滤镜扩展.

iOS视频编辑SDK

IOS视频编辑SDK接入说明 一.名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1080x720,640x480等. 宽高比:视频分辨率的宽高比,常见的有16:9,4:3,1:1.锐动视频编辑SDK对各宽高比的视频都支持编辑,导出的默认分辨率是640x360,宽高比是16:9. 帧率:每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数. 码率: 数据传输时单位时间传送的

集成视频编辑SDK流程

一.运行环境 Android 4.1(api 16)以上: 处理器:双核 1GHz以上CPU(目前只支持ARM CPU, X86.MIPS暂不支持):推荐四核1.2GHz以上CPU 内存:1 GB以上: 二.注册申请AppKey和APPSECRET 1. 登录http://www.rdsdk.com 注册用户 2. 登录注册好的用户 3. 进入视频云管理 点击(新增)获取应用的 appkey .appsecret 三.下载并导入SDK 1. Android Studio 导入xpkUISdk 点

关于视频编辑SDK的接入说明

一.运行环境 Android 4.1(api 16)以上: 处理器:双核 1GHz以上CPU(目前只支持ARM CPU, X86.MIPS暂不支持):推荐四核1.2GHz以上CPU 内存:1 GB以上: 二.注册申请AppKey和APPSECRET 1. 登录http://www.rdsdk.com 注册用户 2. 登录注册好的用户 3. 进入视频云管理 点击(新增)获取应用的 appkey .appsecret 三.下载并导入SDK 1. Android Studio 导入xpkUISdk 点

LanSoEditor_common ---android平台的视频编辑SDK

当前版本是LanSoEditor-v1.4 主要使用在音视频的: 裁剪,剪切,分离,合并,转换,拼接,水印,叠加,混合,转码等场合; 我们是针对android平台对ffmpeg做了硬件加速优化,经过多款手机的测试,优化性能大概提升4倍左右 我们在项目中提供了大约30个常用的方法并写了详细的说明注释,基本满足一般视频编辑的需求 我们另外提供了扩展接口,您完全可以根据强大的ffmpeg命令来扩展您需要的功能 此SDK采用低价收费授权,公司性质的合作,为了您项目更好的进行,欢迎和我们联系.谢谢! 下载

马蜂窝视频编辑框架设计及在 iOS 端的业务实践

(马蜂窝技术公众号原创内容,ID: mfwtech) 熟悉马蜂窝的朋友一定知道,点击马蜂窝 App 首页的发布按钮,会发现发布的内容已经被简化成「图文」或者「视频」. 长期以来,游记.问答.攻略等图文形式的形态一直是马蜂窝发展的优势所在.将短视频提升至与图文并列的位置,是因为对于今天的移动互联网用户来说,内容更真实直观.信息密度更大.沉浸感更强的短视频已经成为刚需.为了使旅游用户拥有更好的内容交互体验,丰富和完整原有的内容生态体系,马蜂窝加码了对短视频领域的布局. 现在,每天都会有大量短视频在马