美摄SDK For iOS
3.14.0
|
Mimo模板数据由info.json进行组织,使用时对info.json文件进行解析,然后按照获取的信息进行视频内容添加。
具体添加内容:
A、添加镜头(注:shot,分为普通镜头和空镜头。空镜头指json 中已经预定好指定素材的镜头,即用户无法对此镜头进行选素材操作)。
B、添加时间线特效。
C、添加clip 特效等。
最后形成一个合乎预期效果的时间线,通过时间线转换成视频。
Mimo 具体规范,可参考设计同事给定的范例文档。
完成内容如下:
A、用户在此界面选定某个模版应用,并跳转至相册界面选择相应素材。
B、在此界面完成具体模板json转model操作。
C、在相册界面根据model信息(如,镜头数量)选择素材。
D、完成对clipArr(不包含空镜头)中元素的初步处理,如指定该镜头对应的选定素材及其素材时长等相关信息。
对单个镜头素材trimIn\trimOut进行编辑。
在此界面创建timeline, 按照模版信息添加素材及特效。
转码视频:如果镜头对应选择素材为视频素材,而且该镜头包含reverse或repeat字段,需要对该视频素材进行转码操作。
调用NvsMediaFileConvertor接口转码,接口如下:
- (int64_t)convertMeidaFile:(NSString *)srcFilePath outputFile:(NSString *)outputFilePath isReverseConvert:(bool)isReverse fromPosition:(int64_t)from toPosition:(int64_t)to options:(NSMutableDictionary *)options;
镜头变速的两种情况:
A、针对镜头内speed 数组不为空,需进行变速操作。
B、如果所选素材指定trimIn与 trimOut不够镜头时长限制,需进行变速操作。
两种情形封装接口如下:
- (void)multiSpeedWithModel:(NvShotModel *)editDataModel videoTrack:(NvsVideoTrack *)videoTrack totalTime:(int64_t)totalTime modelIndex:(int)index - (void)noneSpeedWithModel:(NvShotModel *)editDataModel videoTrack:(NvsVideoTrack *)videoTrack totalTime:(int64_t)totalTime modelIndex:(int)index
注意:sdk 最小支持变速为 1/16.0。
时间线特效:按照模板信息对非镜头内特效(滤镜、复合字幕、贴纸等)添加。
注:使用特效之前,应首先确保该特效已经正确安装。
安装素材调用NvsAssetPackageManager下的方法。
接口如下:
- (NvsAssetPackageManagerError)installAssetPackage:(NSString *)assetPackageFilePath license:(NSString *)licenseFilePath type:(NvsAssetPackageType)type sync:(BOOL)synchronous assetPackageId:(NSMutableString *)assetPackageId;
镜头内特效:按照是否存在变速分为添加时间线特效和添加clip特效两种。 注:其中因变速导致的一个镜头分割为多个clip的情况,应将这些clip之间的转场设为空。
组合字幕字体:组合字幕可应用指定字体效果。使用字体之前,首先对字体注册。
字体注册示例代码:
NSString *fontFamily = [self.streamingContext registerFontByFilePath:[fontPath stringByAppendingPathComponent:path]];
片段水印:开启或关闭片段结尾水印。即添加和删除模板指定动态水印。
转场特效:视频转场需要在片段数据处理完后单独处理,否则无效!