文档首页 > > 短视频解决方案> 短视频SDK> iOS SDK> 特效

特效

分享
更新时间: 2019/08/02 GMT+08:00

视频录制完成后,在后续制作中,经常会使用到几种特效,分别是视频特效(NvsVideoFx),音频特效(NvsAudioFx),时间线视频特效(NvsTimelineVideoFx)。

视频特效

视频特效是使用在视频片段上的,每个视频片段可以添加若干个视频特效。视频特效包括内嵌视频特效,包裹视频特效,美颜特效。

//添加内嵌视频特效         
[videoClip appendBuiltinFx:fxName];
//添加包裹特效         
[videoClip appendPackagedFx:_videoFxPackageId];
//添加美颜特效         
[videoClip appendBeautyFx];
//移除指定索引值的特效         
[videoClip removeFx:0];
//清除所有特效         
[videoClip removeAllFx];

音频特效

音频特效是使用在音频片段上的,每个音频片段可以添加若干个音频特效。

//添加音频特效         
[audioClip appendFx:fxName];
//移除指定索引的音频特效         
[audioClip removeFx:0];

时间线视频特效

时间线视频特效就是在时间线上使用的一种特效,包含内嵌特效和包裹特效。时间线上可以添加若干个时间线视频特效。

添加时间线特效

//添加时间线特效
//添加内建时间线特效   
for (unsigned int i = 0; i < _videoTrack.clipCount; i++) {             
    NvsVideoClip *videoClip = [_videoTrack getClipWithIndex:i];             
    [_timeline addBuiltinTimelineVideoFx:videoClip.inPoint duration:videoClip.outPoint - videoClip.inPoint videoFxName:_fxName];       
    }       
//添加包裹时间线特效         
 for (unsigned int i = 0; i < _videoTrack.clipCount; i++) {             
   NvsVideoClip *videoClip = [_videoTrack getClipWithIndex:i];             
   [_timeline addPackagedTimelineVideoFx:videoClip.inPoint duration:videoClip.outPoint - videoClip.inPoint videoFxPackageId:_fxPackageId];       
  }

获取时间线特效

  //获取时间线上第一个时间线视频特效         
- (NvsTimelineVideoFx *)getFirstTimelineVideoFx;         
//获取时间线上最后一个时间线视频特效         
- (NvsTimelineVideoFx *)getLastTimelineVideoFx;         
//获取时间线上某个时间线视频特效的前一个时间线视频特效         
- (NvsTimelineVideoFx *)getPrevTimelineVideoFx:(NvsTimelineVideoFx *)videoFx;         
//获取时间线上某个时间线视频特效的下一个时间线视频特效        
 - (NvsTimelineVideoFx *)getNextTimelineVideoFx:(NvsTimelineVideoFx *)videoFx;         
//根据时间线上的位置获得时间线视频特效,返回当前位置时间线视频特效对象的数组             
//获取的时间线视频特效数组排序规则: 添加时入点不同,按入点的先后顺序排列;添加时入点相同,按添加时间线视频特效的先后顺序排列。 
 - (NSArray *)getTimelineVideoFxByTimelinePosition:(int64_t)timelinePos;

改变时间线特效的入出点

 //改变时间线视频特效在时间线上的入点         
- (int64_t)changeInPoint:(int64_t)newInPoint;         
//改变时间线视频特效在时间线上的出点        
 - (int64_t)changeOutPoint:(int64_t)newOutPoint;         
//改变时间线视频特效在时间线上的位置(入点和出点同时偏移offset值)         
- (void)movePosition:(int64_t)offset;
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区