iOS短视频SDK提供了视频文件解析、视频缩略图获取工具以辅助用户更方便的编辑录制视频等。
版本支持
版本 | 是否支持 |
专业版 | 支持 |
标准版 | 支持 |
基础版 | 支持 |
相关类功能
类名 | 功能 |
工具解析核心类,解析视频、音频及文件相关信息。 | |
缩略图核心类,设置缩率图的裁剪范围、输出大小、开始取消等参数。 |
视频文件解析
视频文件解析的核心类为AliyunNativeParser类,通过该类可以解析出如下信息:
视频:视频流编码格式、视频宽高、开始时间、时长、码率、帧率、关键帧间隔、总帧数、格式、旋转角度等信息。
音频:音频流编码格式、开始时间、时长、总帧数、采样率、音频轨道数、码率、音频格式等信息。
文件:文件名称、开始时间、时长、文件格式等信息。
//1.初始化
AliyunNativeParser *parser = [[AliyunNativeParser alloc] initWithPath:videoPath];
//2.获取视频信息
//通过接口获取
NSInteger videoWidth = [parser getVideoWidth];
NSInteger videoHeight = [parser getVideoHeight];
//通过Key的方式获取
float videoDuration = [parser getValueForKey:ALIYUN_VIDEO_DURATION].floatValue;
NSInteger videoBitrate = [parser getValueForKey:ALIYUN_VIDEO_BIT_RATE].integerValue;
视频缩略图
既可通过视频缩略图的核心类AliyunThumbnailParser类获取缩略图,也可通过AliyunNativeParser类获取缩略图,通过这些类可以在视频轨道上展示每一帧图片的缩略图,通常在视频编辑或裁剪时需要用到。
使用AliyunNativeParser类获取
//1.初始化 self.parser = [[AliyunNativeParser alloc] initWithPath:videoPath]; //2.获取缩略图 //使用时间间隔获取接口 [self.parser loadThumbnailListWithDuration:1.0 imageWidth:100 complete:^(int errorCode, NSArray<UIImage *> *imageList) { }]; //使用时间数组获取接口 NSArray<NSNumber *> *timeList = @[@0,@1.0,@2.5,@6]; [self.parser loadThumbnailWithTimeList: timeList imageWidth:100 complete:^(int errorCode, NSArray<UIImage *> *imageList) { }];
说明获取缩略图是一个异步操作,过程中请保证AliyunNativeParser实例不被释放。
使用AliyunThumbnailParser类获取
//1.初始化
self.parser = [[AliyunThumbnailParser alloc]initWithPath:self.videoPath delegate:self];
//2.设置图片参数
//图片裁剪范围
[self.parser setCutFrame:CGRectMake(0, 0, 200, 200)];
//图片输出大小
CGFloat ouputSizeWidth = 200;
[self.parser setOutputSize:CGSizeMake(ouputSizeWidth, ouputSizeWidth)];
//3.设置缩略图的时间点
NSArray<NSNumber *> *timeList = @[@0,@1.0,@2.5,@6];
[self.parser addThumbnailTimeList:timeList];
//4.开始获取缩略图
[self.parser start];
//5.获取缩略图回调
// 获取出错,注意在子线程回调
- (void)thumbnailParser:(AliyunThumbnailParser *)parser onError:(int)code {
}
//获取某张图片出错,注意在子线程回调
- (void)thumbnailParser:(AliyunThumbnailParser *)parser onPicError:(int)code time:(float)time {
}
//获取到的图片,注意在子线程回调
- (void)thumbnailParser:(AliyunThumbnailParser *)parser onGetPicture:(UIImage *)image time:(float)time {
}
//获取图片完成,注意在子线程回调
- (void)thumbnailParserOnCompleted:(AliyunThumbnailParser *)parser {
}
文档内容是否对您有帮助?