短视频SDK提供了裁剪模块,支持对视频按时长、画幅裁剪,对音频按时长裁剪,对图片按画幅裁剪。
相关类功能
名称 | 功能 |
---|---|
AliyunCrop | 裁剪功能核心类 |
说明
- AliyunCrop实例对象必须是成员变量,不能是局部变量。
- 裁剪模块专业版、标准版、基础版均支持所有功能。
视频、音乐裁剪
- 初始化
配置项 配置实例 调用初始化方法创建裁剪对象 /** @param error 错误码 */ - (instancetype)initWithDelegate:(id<AliyunCropDelegate>)delegate;
设置视频、音乐输入文件路径 @property (nonatomic, copy) NSString *inputPath;
设置视频、音乐输出文件路径 @property (nonatomic, copy) NSString *outputPath;
说明 如果输出文件路径是多级目录,请确保目录已经创建。 - 参数配置
配置项 配置实例 设置输出视频分辨率 @property (nonatomic, assign) CGSize outputSize;
设置裁剪时间起点(秒) @property (nonatomic, assign) float startTime;
设置裁剪时间终点(秒) @property (nonatomic, assign) float endTime;
设置裁剪模式 /** 裁剪音乐时无需设置 */ @property (nonatomic, assign) AliyunCropCutMode cropMode;
设置视频裁剪有效区域 裁剪区域rect中x,y,width,height值的计算方法:设定视频左上角为原点O(0,0),横向为x轴,纵向为y轴,假设视频裁剪区域为Z。rect中x值为Z区域左上角的顶点相对于原点O的x轴像素值,y值为Z区域左上角的顶点相对于原点O的y轴像素值,w值为裁剪区域Z的宽度像素值,h值为裁剪区域Z的高度像素值。
/** 裁剪音乐时无需设置 */ @property (nonatomic, assign) CGRect rect;
设置视频质量 默认值:AliyunVideoQualityMedium。
/** 裁剪音乐时无需设置 */ @property (nonatomic, assign) AliyunVideoQuality videoQuality;
设置编码方式 硬编速度更快,软编清晰度更高。
/** 编码方式0软编 1硬编 默认硬编 */ @property (nonatomic, assign) int encodeMode;
设置帧率 默认值为25。
/** 裁剪音乐时无需设置 */ @property (nonatomic, assign) int fps;
设置关键帧间隔 默认值为5。
@property (nonatomic, assign) int gop;
设置码率(bps) /** 裁剪音乐时无需设置 */ @property (nonatomic, assign) int bitrate;
设置背景颜色(视频填充模式) /** 裁剪音乐时无需设置 */ @property (nonatomic, strong) UIColor *fillBackgroundColor;
- 裁剪控制
配置项 配置实例 开始裁剪 - (int)startCrop;
取消裁剪 - (void)cancel;
- 监听裁剪回调delegate需要实现AliyunCropDelegate协议来监听裁剪回调,回调接口如下表所示。
配置项 配置实例 裁剪失败回调 /** @param progress 当前进度 0~1 */ - (void)cropOnError:(int)error;
裁剪进度回调 - (void)cropTaskOnProgress:(float)progress;
裁剪完成回调 - (void)cropTaskOnComplete;
主动取消或退后台时回调 - (void)cropTaskOnCancel;
图片裁剪
短视频SDK提供了图片裁剪功能,核心类AliyunImageCrop。
- 初始化
创建AliyunImageCrop对象,完成初始化。
- 参数配置
配置项 配置实例 设置待裁剪图片 @property (nonatomic, strong) UIImage *originImage;
设置输出图片分辨率 @property (nonatomic, assign) CGSize outputSize;
(可选)设置图片裁剪模式 /** 0:填充模式;1:裁剪模式 */ @property (nonatomic, assign) AliyunImageCropMode cropMode;
(可选)设置裁剪区域(像素) 仅适用于裁剪模式。例如:一张200x200像素的图片 ,cropRect可设置为 (0,0,100,100)。
@property (nonatomic, assign) CGRect cropRect;
(可选)设置背景颜色(照片填充模式) @property (nonatomic, strong) UIColor *fillBackgroundColor;
- 裁剪控制生成图片
- (UIImage *)generateImage;
说明 返回裁剪后的图片,如果裁剪失败,返回nil。
示例代码
- 裁剪一段视频
self.crop = [[AliyunCrop alloc] initWithDelegate:self]; self.crop.inputPath = `待裁剪视频文件地址`; self.crop.outputPath = `裁剪输出的视频文件地址`; self.crop.cropMode = AliyunCropModeScaleAspectCut; self.crop.outputSize = CGSizeMake(540, 540);//输出的视频分辨率为540*540 self.crop.rect = CGRectMake(0, 0, 320, 320); //这里可以认为在当前视频上画了一个裁剪框(要保持视频画面不被裁剪需要设置宽为输入视频宽,高为输输入视频的高),裁剪框大小和输出视频的分辨率大小需保持固定比,否定可能变形。 self.crop.startTime = 0.0; self.crop.endTime = 5.0; self.crop.fillBackgroundColor = [UIColor greenColor]; //填充模式下填充的背景颜色 [self.crop startCrop]; //开始裁剪视频
- 裁剪一段音乐
self.crop = [[AliyunCrop alloc] initWithDelegate:self]; self.crop.inputPath = `待裁剪音乐文件地址`; self.crop.outputPath = `裁剪输出的音乐文件地址`; self.crop.startTime = 0.0; self.crop.endTime = 5.0;[self.crop startCrop]; //开始裁剪音乐
在文档使用中是否遇到以下问题
更多建议
匿名提交