iOS视频编辑SDK
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS视频编辑SDK相关的知识,希望对你有一定的参考价值。
IOS视频编辑SDK接入说明
一、名词解释
分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率。常见视频分辨率的有1080P即1920x1080,720P即1080x720,640x480等。
宽高比:视频分辨率的宽高比,常见的有16:9,4:3,1:1。锐动视频编辑SDK对各宽高比的视频都支持编辑,导出的默认分辨率是640x360,宽高比是16:9。
帧率:每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数。
码率: 数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。
素材:来自系统相机,其他app,电脑,网络的照片,音乐,视频等。
视频分割: 把视频分割为若干个片段,可用于从视频中截取一个或者多个精彩瞬间,或者删除不喜欢的片段,分割后的多个片段也可以用于重新调整顺序,视频合并等。
视频裁切: 从视频画面中裁切出来仅需要的部分,锐动视频编辑SDK针对手机竖屏拍摄的画面,支持动态调整裁切区域,帮助用户不同时间点选择自己需要的画面。
视频旋转:对视频进行90°,180°,270°旋转,一般用于矫正用户手机上录制的头像横置的视频。
视频镜像:对视频左右镜像。
视频变速:对视频播放速度调整,实现慢镜头或者快镜头效果。
视频配乐:选取本地或者网络音乐作为视频的背景音乐。
视频配音:通过micphone对视频配音。
视频字幕:使用文字标注视频。
视频滤镜:调整视频的画面颜色效果。
视频特效:在视频里面增加特效动画或声音
合并转场:两个视频片段之间的衔接效果。
主题(模版): 应用视频的整体效果方案。
二、XCode集成步骤
(一)、运行环境
sdk支持ios7.0或更高版本,兼容iPhone、iPad、iPod touch
(二)、 下载并导入SDK
1、申请APPKey 和 APPSecretkey
(1)、 登录http://www.rdsdk.com 注册用户
(2)、 登录注册好的用户
(3)、 进入视频云管理 点击(新增)获取应用的 appkey 、appsecret
2、添加静态库文件和头文件,和资源文件
(1)、直接将 libxpkCoreSdk文件夹下的文件导入工程。
(2)、设置头文件路径:
(3)、设置工程的方向
3、工程设置
添加系统依赖框架
CoreTelephony.framework, MobileCoreServices.framework
CoreGraphics.framework, CoreFoundation.framework,
Foundation.framework,Photos.framework,AssetsLibrart.framework
AVFoundation.framework ,libxml2.2.tbd,libz.1.2.5.tbd,libstdc.tbd
设置photos.frames、CoreFoundation.framework、Foundation.framework的status为Optional; 设置Https协议和Enable Bitcode
升级到10.0以后的系统得在info.plist中添加如下key
(三)、初始化SDK
注意:初始化之前请确定是否添加了libxpkCoreSdk文件夹下的所有文件
1、引入头文件
#import "XpkUISDK.h"//引入头文件
2、初始化
/**
* 初始化对象
* @param appkey appkey description
* @param appsecret appsecret description
* @param resultFailBlock 返回错误信息
* @return
*/
- (id)initWithAPPKey:(NSString *)appkey
APPSecret:(NSString *)appsecret
resultFail:(XpkFailBlock)resultFailBlock;
(四)录制视频
(一)、使用SDK截取录制视频
/**
* 视频录制(制定大小录制)
*
* @param source 源视图控制器
* @param postion 前/后置摄像头
* @param frameRate 帧率
* @param bitRate 码率
* @param size 录制视频尺寸
* @param record_Type 录制还是拍照
* @param outputPath 视频输出路径
* @param callbackBlock 完成录制回调
* @param cancelBlock 取消录制回调
*/
- (void)videoRecordWithSourceController: (UIViewController*)source
cameraPosition: (AVCaptureDevicePosition )postion
frameRate: (int32_t) frameRate
bitRate: (int32_t) bitRate
recordSize: (CGSize) size
Record_Type: (Record_Type)record_Type
outputPath: (NSString*)outputPath
videoPath: (XpkCallbackBlock)callbackBlock
cancel: (XpkCancelBlock)cancelBlock;
/**
* 自动选择录制合适尺寸
*
* @param source 源视图控制器
* @param postion 前/后置摄像头
* @param frameRate 帧率
* @param bitRate 码率
* @param record_Type 录制还是拍照
* @param outputPath 视频输出路径
* @param callbackBlock 完成录制回调
* @param cancelBlock 取消录制回调
*/
- (void)videoRecordAutoSizeWithSourceController: (UIViewController*)source
cameraPosition: (AVCaptureDevicePosition )postion
frameRate: (int32_t)frameRate
bitRate: (int32_t)bitRate
Record_Type: (Record_Type)record_Type
outputPath: (NSString*)outputPath
videoPath: (XpkCallbackBlock)callbackBlock
cancel: (XpkCancelBlock)cancelBlock;
/**
* 录制正方形视频
*
* @param source 源视图控制器
* @param postion 前/后置摄像头
* @param frameRate 帧率
* @param bitRate 码率
* @param record_Type 录制还是拍照
* @param outputPath 视频输出路径
* @param callbackBlock 完成录制回调
* @param cancelBlock 取消录制回调
*/
- (void)videoRecordWidthEqualToHeightWithSourceController: (UIViewController*)source
cameraPosition: (AVCaptureDevicePosition )postion
frameRate: (int32_t)frameRate
bitRate: (int32_t)bitRate
Record_Type: (Record_Type)record_Type
outputPath: (NSString*)outputPath
videoPath: (XpkCallbackBlock)callbackBlock
cancel: (XpkCancelBlock)cancelBlock;
(五)、编辑视频
1、使用SDK进入开始编辑视频
(1)、实例化XpkUiSDK对象两种方式任选其一
(1.1)设置编辑界面的方向,是否锁定方向
(1.11)(选择视频不需要扫描缓存文件)
/**
* 编辑视频
*
* @param viewController 源控制器
* @param assets 数据源(NSMutableArray[AVURLAsset])传nil 进入选择视频界面
* @param outputVideoPath 视频输出路径
* @param callbackBlock 完成编辑回调
* @param cancelBlock 取消编辑回调
*/
- (void)editVideoWithSuperController:(UIViewController *)viewController
assets:(NSMutableArray *)assets
outputPath:(NSString *)outputVideoPath
callback:(XpkCallbackBlock )callbackBlock
cancel:(XpkCancelBlock )cancelBlock;
(1.12)(选择视频需要扫描缓存文件)
/**
* 编辑视频(需扫描缓存文件夹)
*
* @param viewController 源控制器
* @param foldertype 缓存文件夹类型 (Documents、Library、Temp)
* @param appAlbumCacheName 需扫描的缓存文件夹名称
* @param assets 数据源(NSMutableArray[AVURLAsset])
* @param outputVideoPath 视频输出路径
* @param callbackBlock 完成编辑回调
* @param cancelBlock 取消编辑回调
*/
- (void)editVideoWithSuperController:(UIViewController *)viewController
foldertype:(FolderType)foldertype
appAlbumCacheName:(NSString *)appAlbumCacheName
assets:(NSMutableArray *)assets
outputPath:(NSString *)outputVideoPath
callback:(XpkCallbackBlock )callbackBlock
cancel:(XpkCancelBlock )cancelBlock;
(2)设置视频输出码率;
(3)可以添加水印:(可以省略)
(4)设置片尾:(可以省略)
@property (nonatomic,assign)BOOL endWaterPicDisabled; //是否禁用片尾
@property (nonatomic,assign)NSString *endWaterPicUserName;//设置片尾显示的用户名
(六)自定义相册或是调用系统相册
1、实现代理方法
- (void)selectVideoAndImageResult:(UINavigationController *)nav callbackBlock:(void (^)(NSArray *lists))callbackBlock;//添加视频和图片
- (void)selectVideosResult:(UINavigationController *)nav callbackBlock:(void (^)(NSArray *lists))callbackBlock; //添加视频
- (void)selectImagesResult:(UINavigationController *)nav callbackBlock:(void (^)(NSArray *lists))callbackBlock; //添加图片
以系统相册为例:(需实现以下两个协议:UINavigationControllerDelegate, UIImagePickerControllerDelegate)
进入系统相册:
相册选择完成:
(七)、视频截取
1、调用截取方法之前设置编辑界面的方向,是否锁定方向
/**
* 截取视频(真正的截取,回传截取过后的视频)
*
* @param viewController 源控制器
* @param controllerTitle 导航栏标题
* @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)cutVideoWithSuperController:(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:(Xpk_CallbackBlock ) callbackBlock
failback:(XpkFailBlock ) failback
cancel:(XpkCancelBlock ) cancelBlock;
/*
此参数点击自定义弹框的按钮时才会被调用
*/
- (void)cutVideo_withCutType:(RDCutVideoReturnType )type;
如果有自定义的提示框:
设置截取界面的两个截取时间值
(八)、分享视频
开发中
(九)、wifi分享视频
开发中
具体情况
iOS视频编辑SDK集视频拍摄和视频剪辑功能于一体,同时包含视频配音配乐、字幕特效、滤镜、转场等各种功能,全方位满足开发者的需求,并可以快速植入到APP中。编辑预览时支持智能硬件解码,选择视频时不需要转码,减少用户等待时间
。
SDK功能介绍:
1.拍摄
- 实时美颜
- 多段拍摄 一个视频可以分多段次拍摄,并支持回删
- 多种拍摄模式 支持长按拍摄、快速点击持续拍摄
- 定时拍 支持5秒内定时拍摄
- 摄像头切换 前、后摄像头自由切换,中间无卡顿
- 多比例支持 支持1:1 、9:16、16:9多个比例录制
- 变焦、对焦 通过相应手势可以缩放摄像头采集画面及清晰度(依赖硬件支持)
- 滤镜 内置主流滤镜,与编辑滤镜同步,支持扩展更多滤镜
- 照片 当前摄像头画面保存到图片
?截图
2.视频编辑
- 滤镜 内置主流滤镜,支持扩展更多滤镜
- 字幕、特效 字幕特效在指定位置,指定时间段显示; 字幕支持设置字体大小和颜色及背景图; 实时预览效果
- 配音、配乐 支持指定时间段添加配音; 支持配音、配乐与视频原音比例调节; 支持本地添加更多配乐
- 截取、分割 支持毫秒级截取、分割视频; 支持快速预览截取、分割后视频
- 调速 调整视频的播放速度,快放或者慢放
- 转场 支持多种转场; 支持随机转场、指定转场时长等扩展设置
- 其它编辑功能 支持多种比例裁剪; 支持90、180、270度旋转视频画面; 支持左右镜像、上下镜像; 支持输出比例调整; 支持横屏编辑; 支持文字版; 支持图片时长设置; 支持视频调序等
?截图
最新SDK下载(以下链接是最新的,github代码会稍有延迟):
功能试用:
您可以在Appstore搜索“秀拍客”,我们使用本SDK整合的app。目前很多国内外软件企业已经整合到他们的产品中,我们这里不方便进行罗列。
关于授权:
www.rdsdk.com 致力于专业的人做专业的事,降低客户的开发时间和开发成本,你只需要支付很少的费用,花上几个小时就能增加视频编辑功能。
开发文档:
洽谈咨询:
QQ群: 305128688
咨询电话: 4008989105
客服电话: 15313066905 (周一至周五 9:00-18:00)
客服邮箱:[email protected]
以上是关于iOS视频编辑SDK的主要内容,如果未能解决你的问题,请参考以下文章
RDVECore来自锐动的无UI,高度抽象化API的视频编辑SDK--IOS版
RDVECore来自锐动的无UI,高度抽象化API的视频编辑SDK--IOS版
如何使用 Swift 使用此代码片段为 iOS 应用程序初始化 SDK?