iOS视频编辑SDK

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS视频编辑SDK相关的知识,希望对你有一定的参考价值。

IOS视频编辑SDK接入说明

一、名词解释

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

二、XCode集成步骤

 

(一)、运行环境

        sdk支持ios7.0或更高版本,兼容iPhoneiPadiPod 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.frameworkPhotos.frameworkAssetsLibrart.framework

AVFoundation.framework libxml2.2.tbdlibz.1.2.5.tbdlibstdc.tbd

设置photos.framesCoreFoundation.frameworkFoundation.frameworkstatusOptional; 设置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        缓存文件夹类型 DocumentsLibraryTemp)

 *  @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代码会稍有延迟):

SDK下载请单击

功能试用:

您可以在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?

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

在 Facebook iOS SDK 4.4 上分享视频

Android 短视频SDK