AliyunMixComposer提供了对多个视频进行拼接的能力,属于底层实现类,能够实现多视频同画面效果,比如左右分屏、画中画、九宫格等效果。
AliyunMixStream(视频流)
视频流是指具体用来合成拼接的视频,将加入到视频轨道中。
初始化及参数设置
/**
合成的回调delegate
*/
@property(nonatomic, weak) id<AlivcMixComposerDelegate> delegate;
/**
视频最终导出分辨率 必须设置
*/
@property(nonatomic, assign) CGSize outputSize;
/**
视频最终导出路径 必须设置
*/
@property(nonatomic, copy) NSString *outputPath;
/**
码率 bps
*/
@property(nonatomic, assign) NSInteger bitrate;
/**
视频质量
*/
@property(nonatomic, assign) AliyunVideoQuality videoQuality;
/**
帧率,这里指的是平均帧率 默认:30
*/
@property(nonatomic, assign) CGFloat fps;
/**
关键帧间隔 默认:5
*/
@property(nonatomic, assign) NSInteger gop;
创建视频轨道
配置项 | 配置实例 |
---|---|
创建轨道 |
|
指定参考时长 |
|
指定参考音轨 |
|
添加视频流
AliyunMixStream对象解析:
/**
视频文件路径
*/
@property(nonatomic, copy) NSString *filePath;
/**
可选参数
视频在所在轨道上展示的视频本身的裁剪范围,在裁剪模式下可用
*/
@property(nonatomic, assign) CGRect innerCropFrame;
/**
视频在轨道上播放的开始时间
单位:秒
*/
@property(nonatomic, assign) CGFloat streamStartTime;
/**
视频在轨道上播放的结束时间
单位:秒
*/
@property(nonatomic, assign) CGFloat streamEndTime;
/**
视频在轨道上的内容填充模式
分为填充模式和裁剪模式
*/
@property(nonatomic, assign) AlivcContentMode mode;
添加视频流
/**
向该轨道加入视频
@param stream视频
*/
- (void)addStream:(AliyunMixStream *)stream;
合成、暂停、恢复和取消
配置项 | 配置实例 |
---|---|
开始合成 |
|
暂停合成 |
|
恢复合成 |
|
取消合成 |
|
代码示例
AliyunMixComposer *mixComposer = [[AliyunMixComposer alloc] init];
mixComposer.outputPath = self.outputPath;
mixComposer.outputSize = CGSizeMake(720,720);
mixComposer.fps = 30;
mixComposer.bitrate = 10000000;
mixComposer.videoQuality = AliyunVideoQualityHight;
mixComposer.gop = 5;
mixComposer.delegate = (id)self;
AliyunMixTrack *recordTrack = [mixComposer createTrack:CGRectMake(0,0,360,720)];
NSString *videoPath = [videoAbsPaths objectAtIndex:idx];
AliyunMixStream *recordStream = [[AliyunMixStream alloc] init];
recordStream.filePath = videoPath;
recordStream.mode = AlivcContentModeScaleAspectFit;
[recordTrack addStream:recordStream];
AliyunMixTrack *playerTrack = [mixComposer createTrack:CGRectMake(360,0,360,720)];
AliyunMixStream *playerStream = [[AliyunMixStream alloc] init];
playerStream.filePath = mixVideoFilePath;
playerStream.mode = AlivcContentModeScaleAspectFit;
[playerTrack addStream:playerStream];
[mixComposer setOutputAudioReferenceTrack:playerTrack];
[mixComposer start];
在文档使用中是否遇到以下问题
更多建议
匿名提交