功能介绍
短视频SDK提供视频合拍功能,可支持多视频拼接合成,核心类AliyunMixRecorder和AliyunMixComposer。
版本差异
版本 | 功能描述 |
---|---|
专业版 | 支持所有功能。 |
标准版 | 支持所有功能。 |
基础版 | 不支持。 |
相关类功能
名称 | 功能 |
---|---|
AliyunMixRecorder | 合拍功能核心类,能快速实现合拍。 |
AliyunMixComposer | 合拍功能核心类,能对多段视频进行拼接合成。 |
概念解释
在以下文档介绍中将提及一些特殊概念,为方便开发者理解,预先对概念做一些讲解。
- 合拍功能(AliyunMixRecorder)视频合拍从产品功能层面看,就是两路视频(一路来自样本视频,一路来自设备摄像头采集),按照指定的布局模式(左右分屏,上下分屏,画中画等)进行合成,合成出来的视频每一帧画面将会同时包含两路视频的画面,而合拍视频的音频部分则采用样本视频的音频。以下为范例视图,实际上SDK内部支持开发者自己组织布局,关于如何布局将在后面讲述。
- 轨道(AliyunMixTrack)
在概念1中提及的两路视频在SDK中被抽象为两个轨道:A轨道和B轨道,A轨放设备采集的视频,B轨放样本视频,用轨道抽象有利于开发者理解轨道布局的概念。
- 轨道布局(CGRect:trackDisplayFrame)在iOS上,轨道创建时带有trackDisplayFrame位置属性。代表轨道在最终画面上占据的位置大小,其左上角为(0,0)原点,和系统的坐标系行为一致。如下示例图:
上图中:最终导出的分辨率为640×640,A轨道位置为(0,0,320,640),B轨道位置为(320,0,320,640),在轨道范围上可以加视频。
录制合拍(AliyunMixRecorder)
AliyunMixRecorder提供了快捷的录制和播放画面并存的能力。比如左边部分画面是摄像头采集,右边部分是播放视频。
初始化设置
- 初始化创建AliyunMixRecorder对象,完成初始化。
/** 初始化方法 @param param 媒体信息 @param outputSize 最终的合成分辨率 @return 合拍对象 */ - (instancetype)initWithMediaInfo:(AliyunMixMediaInfoParam *)param outputSize:(CGSize)outputSize;
- 对AliyunMixMediaInfoParam对象描述了合拍的窗口,摄像头窗口的位置大小,样本播放视频的位置大小。具体的解释如下:
/** 合拍窗口View 必须设置 */ @property(nonatomic, strong) UIView *outputSizeView; /** 合拍样本视频的窗口大小 内部根据此frame在outputSizeView上展示样本播放窗口 */ @property(nonatomic, assign) CGRect mixVideoViewFrame; /** 合拍摄像头采集窗口的大小 内部根据此frame在outputSizeView上展示采集窗口 */ @property(nonatomic, assign) CGRect previewViewFrame; /** 合拍摄像头录制的视频分辨率 */ @property(nonatomic, assign) CGSize previewVideoSize; /** 参与合拍的视频路径 */ @property(nonatomic, copy) NSString *mixVideoFilePath; /** 参与合拍的视频路径 */ @property(nonatomic, copy) NSString *mixVideoFilePath; /** 参与合拍的视频开始时间 */ @property(nonatomic, assign) CGFloat streamStartTime; /** 参与合拍的视频结束时间 */ @property(nonatomic, assign) CGFloat streamEndTime;
AliyunMixRecorder类的其他接口和普通录制的接口类似。通过此接口实现的合拍流程和普通录制的流程也相似。
开启预览视图
配置项 | 配置实例 |
---|---|
开启预览 |
|
停止预览 |
|
销毁对象 |
|
录制视频
配置项 | 配置实例 |
---|---|
开始录制一段视频 |
|
停止录制一段视频 |
|
说明 startRecording和stopRecording需要成对出现。
其他参数设置
与录制模块的参数设置一致,更多信息,请参见视频录制。
在文档使用中是否遇到以下问题
更多建议
匿名提交