|
美摄SDK For iOS
3.14.4
|
时间线,编辑场景的时间轴实体 更多...
#import <NvsTimeline.h>
属性 | |
| NvsVideoResolution | videoRes |
| 视频解析度(图像宽高及横纵比) 更多... | |
| NvsAudioResolution | audioRes |
| 音频解析度(采样率、采样格式及通道数) 更多... | |
| NvsRational | videoFps |
| 视频帧率 更多... | |
| int64_t | duration |
| 时间线的时长(单位微秒) 更多... | |
| int64_t | audioFadeOutDuration |
| 音频淡出时长(单位微秒) 更多... | |
时间线,编辑场景的时间轴实体
时间线由轨道组成,可视作一系列音视频轨道的集合。在时间线上可添加或者移除多条视频轨道和音轨轨道,多条轨道之间是相互叠加合成的关系。 当编辑视频时,根据需要还会添加上时间线字幕,主题以及相应的动画贴纸,以制作出美观的视频。另外,添加素材资源包(主题包,动画贴纸包,字幕样式包,时间线特效包等), 都得先安装,安装成功后获取packageId才能使用,而内建时间线特效(builtin)只需获取特效名称即可使用。
| - (NvsTimelineAnimatedSticker *) addAnimatedSticker: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| animatedStickerPackageId: | (NSString *) | animatedStickerPackageId | |
在时间线上添加动画贴纸
| inPoint | 动画贴纸在时间线上的入点(单位微秒) |
| duration | 动画贴纸的显示时长(单位微秒) |
| animatedStickerPackageId | 动画贴纸包Id |
| - (NvsTimelineVideoFx *) addBuiltinTimelineVideoFx: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| videoFxName: | (NSString *) | videoFxName | |
在时间线上添加内嵌的时间线视频特效
| inPoint | 时间线视频特效在时间线上的入点(单位微秒) |
| duration | 时间线视频特效显示的时长(单位微秒) |
| videoFxName | 内嵌的时间线视频特效名字 |
| - (NvsTimelineCaption *) addCaption: | (NSString *) | captionText | |
| inPoint: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| captionStylePackageId: | (NSString *) | captionStylePackageId | |
在时间线上添加字幕
| captionText | 字幕的文字 |
| inPoint | 字幕在时间线上的起点(单位微秒) |
| duration | 字幕显示时长(单位微秒) |
| captionStylePackageId | 字幕样式包Id,不存在的话,可以传空字符串或者nil |
| - (NvsTimelineCompoundCaption *) addCompoundCaption: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| compoundCaptionPackageId: | (NSString *) | compoundCaptionPackageId | |
在时间线上添加字幕
| captionText | 字幕的文字 |
| inPoint | 字幕在时间线上的起点(单位微秒) |
| duration | 字幕显示时长(单位微秒) |
| captionStylePackageId | 字幕样式包Id,不存在的话,可以传空字符串或者nil |
| - (NvsTimelineAnimatedSticker *) addCustomAnimatedSticker: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| animatedStickerPackageId: | (NSString *) | animatedStickerPackageId | |
| customImagePath: | (NSString *) | customImagePath | |
在时间线上添加自定义动画贴纸
| inPoint | 自定义动画贴纸在时间线上的入点(单位微秒) |
| duration | 自定义动画贴纸的显示时长(单位微秒) |
| animatedStickerPackageId | 自定义动画贴纸包Id |
| customImagePath | 自定义动画贴纸图像路径(可以是jpg、png图像,或者美摄sdk内部支持的动态caf格式图像) |
| - (NvsTimelineAnimatedSticker *) addCustomPanoramicAnimatedSticker: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| animatedStickerPackageId: | (NSString *) | animatedStickerPackageId | |
| customImagePath: | (NSString *) | customImagePath | |
在时间线上添加自定义全景图动画贴纸
| inPoint | 动画贴纸在时间线上的起点(单位微秒) |
| duration | 动画贴纸的显示时长(单位微秒) |
| animatedStickerPackageId | 动画贴纸资源包ID |
| customImagePath | 自定义动画贴纸图像路径(可以是jpg、png图像,或者美摄sdk内部支持的动态caf格式图像) |
| - (NvsTimelineVideoFx *) addCustomTimelineVideoFx: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| customVideoFxRender: | (id< NvsCustomVideoFxRenderer >) | customVideoFxRender | |
在时间线上添加自定义时间线视频特效
| inPoint | 时间线视频特效在时间线上的入点(单位微秒) |
| duration | 时间线视频特效的时长(单位微秒) |
| customVideoFxRender | 用户实现的自定义视频特效渲染器接口 |
| - (NvsTimelineCaption *) addModularCaption: | (NSString *) | captionText | |
| inPoint: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
在时间线上添加模块字幕
| captionText | 字幕的文字 |
| inPoint | 字幕在时间线上的起点(单位微秒) |
| duration | 字幕显示时长(单位微秒) |
| - (NvsTimelineVideoFx *) addPackagedTimelineVideoFx: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| videoFxPackageId: | (NSString *) | videoFxPackageId | |
在时间线上添加资源包形式的时间线视频特效
| inPoint | 时间线视频特效在时间线上的入点(单位微秒) |
| duration | 时间线视频特效显示的时长(单位微秒) |
| videoFxPackageId | 时间线视频特效资源包Id |
| - (NvsTimelineAnimatedSticker *) addPanoramicAnimatedSticker: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| animatedStickerPackageId: | (NSString *) | animatedStickerPackageId | |
在时间线上添加全景图动画贴纸
| inPoint | 动画贴纸在时间线上的起点(单位微秒) |
| duration | 动画贴纸的显示时长(单位微秒) |
| animatedStickerPackageId | 动画贴纸资源包ID |
| - (NvsTimelineCaption *) addPanoramicCaption: | (NSString *) | captionText | |
| inPoint: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| captionStylePackageId: | (NSString *) | captionStylePackageId | |
在时间线上添加全景图字幕
| captionText | 字幕的文字 |
| inPoint | 字幕在时间线上的入点(单位微秒) |
| duration | 字幕的显示时长(单位微秒) |
| captionStylePackageId | 字幕样式包Id,不存在的话,可以传空字符串或者nil |
| - (NvsTimelineCompoundCaption *) addPanoramicCompoundCaption: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| compoundCaptionPackageId: | (NSString *) | compoundCaptionPackageId | |
在时间线上添加VR复合字幕
| inPoint | 字幕在时间线上的起点(单位微秒) |
| duration | 字幕显示时长(单位微秒) |
| captionStylePackageId | 字幕样式包Id,不存在的话,可以传空字符串或者null |
| - (NvsTimelineGraphCompositor *) addTimelineGraphCompositor: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| graphDescStr: | (NSString *) | graphDescStr | |
在时间线上添加一个图式合成器
| inPoint | 图式合成器在时间线上的入点(单位微秒) |
| duration | 图式合成器的时长(单位微秒) |
| graphDescStr | 图式合成器的描述信息 |
| - (NvsTimelineGraphCompositor *) addTimelineGraphCompositor: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| graphDescStr: | (NSString *) | graphDescStr | |
| buddyTrackIndex: | (int) | buddyTrackIndex | |
在时间线上添加一个图式合成器, 从3.12.0开启废弃
| inPoint | 图式合成器在时间线上的入点(单位微秒) |
| duration | 图式合成器的时长(单位微秒) |
| graphDescStr | 图式合成器的描述信息 |
| buddyTrackIndex | 伴侣视频帧轨道序号 |
| - (bool) addWatermark: | (NSString *) | watermarkFilePath | |
| displayWidth: | (int) | displayWidth | |
| displayHeight: | (int) | displayHeight | |
| opacity: | (float) | opacity | |
| position: | (int) | position | |
| marginX: | (int) | marginX | |
| marginY: | (int) | marginY | |
添加水印
| watermarkFilePath | 水印文件的路径,须为PNG、JPG、CAF文件 |
| displayWidth | 水印在timeline中显示的宽度,为0则使用图片文件的宽度 |
| displayHeight | 水印在timeline中显示的高度,为0则使用图片文件的高度 |
| opacity | 水印的不透明度, 取值范围 0~1 |
| position | 水印的位置,请参见 NvsTimelineWatermarkPosition |
| marginX | 水印在X方向的边距 |
| marginY | 水印在Y方向的边距 |
| - (NvsAudioTrack *) appendAudioTrack |
| - (NvsVideoTrack *) appendVideoTrack |
| - (BOOL) applyTheme: | (NSString *) | themeId |
对当前时间线应用主题(主题是相对于整个时间线而言)
对于主题,可能包含有片头或片尾,或片头片尾都有,也有可能都没有。应用含有片头或片尾的主题时,片头和片尾都被视作一个clip,从而导致clip数量的增加。使用此接口时请注意判断片段的数量。
| themeId | 主题包裹的id(如果themeId为空字符串或者nil,将会移除当前的主题) |
| - (bool) applyThemeTemplate: | (NSString *) | templateId |
应用自适应时长模版.
| templateId | 模板uuid |
| - (unsigned int) audioTrackCount |
| - (BOOL) changeVideoBitDepth: | (NvsVideoResolutionBitDepth) | newBitDepth |
改变时间线的视频位深度
| newBitDepth | 新的位深度 |
| - (BOOL) changeVideoSize: | (int) | videoWidth | |
| videoHeight: | (int) | videoHeight | |
改变时间线的视频尺寸
注意:如果当前时间线已经被连接到了一个SurfaceTexture上,那么请在改变时间线的视频尺寸之前 先断开当前时间线与SurfaceTexture的连接,改变视频尺寸后再重现连接那个SurfaceTexture!
| videoWidth | 新的视频宽度(目前要求传入的图像宽度值是4的倍数) |
| videoHeight | 新的视频高度(目前要求传入的图像高度值是2的倍数) |
| - (unsigned int) creationFlags |
获取创建timeline的标志
| - (void) deleteWatermark |
删除已添加的水印
| - (void) enableRenderOrderByZValue: | (BOOL) | enable |
开启使用Z值作为渲染顺序 重要提示:参与排序的有时间线字幕,复合字幕,模块字幕,动画贴纸和时间线滤镜 如果同一种类型中的Z值是相同的,和没有开启这个属性的排序方式是一致的 如果不同类型的Z值是相同的,排列顺序为:时间线滤镜->动画贴纸->时间线字幕(包含模块字幕)->复合字幕
| enable | 是否开启 |
| - (NSArray *) getAnimatedStickersByTimelinePosition: | (int64_t) | timelinePos |
根据时间线上的位置获得动画贴纸列表
| timelinePos | 时间线上的位置(单位微秒) |
| - (NvsAudioTrack *) getAudioTrackByIndex: | (unsigned int) | trackIndex |
通过索引获取音频轨道
| trackIndex | 音频轨道索引 |
| - (NSArray<NvsCaptionBoundingVerticesInfo*>*) getCaptionsBoundingVerticesRecursively: | (NvsBoundingType) | boundingType | |
| timelinePosition: | (int64_t) | timelinePosition | |
递归获取该时间线下所有字幕的外框顶点坐标(不包含复合字幕)
| timelinePostion | 当前时间线时间。 |
| - (NSArray *) getCaptionsByTimelinePosition: | (int64_t) | timelinePos |
根据时间线上的位置获得字幕列表
| timelinePos | 时间线上的位置(单位微秒) |
| - (NSArray<NvsTimelineCompoundCaption*> *) getCompoundCaptionsByTimelinePosition: | (int64_t) | timelinePos |
根据时间线上的位置获得复合字幕列表
| timelinePos | 时间线上的复合位置(单位微秒) |
| - (int) getCreationFlags |
获取创建timeline的flag NvsCreateTimelineTypeFlag
| - (NSString *) getCurrentThemeId |
| - (NvsTimelineAnimatedSticker *) getFirstAnimatedSticker |
获取时间线上第一个动画贴纸
| - (NvsTimelineCaption *) getFirstCaption |
| - (NvsTimelineCompoundCaption *) getFirstCompoundCaption |
| - (NvsTimelineGraphCompositor *) getFirstTimelineGraphCompositor |
获取时间线上第一个图式合成器
| - (NvsTimelineVideoFx *) getFirstTimelineVideoFx |
获取时间线上第一个时间线视频特效
| - (NvsTimelineAnimatedSticker *) getLastAnimatedSticker |
| - (NvsTimelineCaption *) getLastCaption |
获取时间线上的最后一个字幕
| - (NvsTimelineCompoundCaption *) getLastCompoundCaption |
| - (NvsTimelineGraphCompositor *) getLastTimelineGraphCompositor |
获取时间线上最后一个图式合成器
| - (NvsTimelineVideoFx *) getLastTimelineVideoFx |
获取时间线上最后一个时间线视频特效
| - (NvsTimelineAnimatedSticker *) getNextAnimatedSticker: | (NvsTimelineAnimatedSticker *) | animatedSticker |
| - (NvsTimelineCaption *) getNextCaption: | (NvsTimelineCaption *) | caption |
| - (NvsTimelineCompoundCaption *) getNextCompoundCaption: | (NvsTimelineCompoundCaption *) | caption |
获取时间线上的当前复合字幕的前一个复合字幕
| caption | 时间线上当前复合字幕对象 |
| - (NvsTimelineGraphCompositor *) getNextTimelineGraphCompositor: | (NvsTimelineGraphCompositor *) | graphCompositor |
获取时间线上某个图式合成器的下一个图式合成器
| graphCompositor | 图式合成器对象 |
| - (NvsTimelineVideoFx *) getNextTimelineVideoFx: | (NvsTimelineVideoFx *) | videoFx |
获取时间线上某个时间线视频特效的下一个时间线视频特效
| videoFx | 时间线视频特效对象 |
| - (NSArray *) getPlaybackRateControl |
| - (NvsTimelineAnimatedSticker *) getPrevAnimatedSticker: | (NvsTimelineAnimatedSticker *) | animatedSticker |
| - (NvsTimelineCaption *) getPrevCaption: | (NvsTimelineCaption *) | caption |
| - (NvsTimelineCompoundCaption *) getPrevCompoundCaption: | (NvsTimelineCompoundCaption *) | caption |
获取时间线上的当前复合字幕的前一个复合字幕
| caption | 时间线上当前复合字幕对象 |
| - (NvsTimelineGraphCompositor *) getPrevTimelineGraphCompositor: | (NvsTimelineGraphCompositor *) | graphCompositor |
获取时间线上某个图式合成器的前一个图式合成器
| graphCompositor | 图式合成器 |
| - (NvsTimelineVideoFx *) getPrevTimelineVideoFx: | (NvsTimelineVideoFx *) | videoFx |
获取时间线上某个时间线视频特效的前一个时间线视频特效
| videoFx | 时间线视频特效对象 |
| - (void) getThemeMusicVolumeGain: | (float *) | leftVolumeGain | |
| rightVolumeGain: | (float *) | rightVolumeGain | |
| - (NvsTimelineGraphCompositor *) getTimelineGraphCompositorByTimelinePosition: | (int64_t) | timelinePos |
根据时间线上的位置获得图式合成器
| timelinePos | 时间线上的位置(单位微秒) |
| - (NSArray *) getTimelineVideoFxByTimelinePosition: | (int64_t) | timelinePos |
根据时间线上的位置获得时间线视频特效列表
| timelinePos | 时间线上的位置(单位微秒) |
| - (NSArray<NvsClipBoundingVerticesInfo*>*) getVideoClipBoundingVerticesRecursively: | (int64_t) | timelinePosition |
递归获取该时间线下所有片段的外框顶点坐标
| timelinePostion | 当前时间线时间。 |
| - (NvsVideoTrack *) getVideoTrackByIndex: | (unsigned int) | trackIndex |
通过索引获取视频轨道
| trackIndex | 视频轨道索引 |
| - (NvsAudioTrack *) insertAudioTrack: | (unsigned int) | clipIndex |
插入音频轨道
| trackIndex | 插入后轨道的索引,如果传入小于0或者大于当前轨道数量的index,会在当前轨道数量的最后插入 |
| - (NvsVideoTrack *) insertVideoTrack: | (unsigned int) | clipIndex |
插入视频轨道
| trackIndex | 插入后轨道的索引,如果传入小于0或者大于当前轨道数量的index,会在当前轨道数量的最后插入 |
| - (BOOL) isRenderOrderByZValueEnabled |
是否开启使用Z值作为渲染顺序
| - (BOOL) moveVideoTrackIndex: | (unsigned int) | srcTrackIndex | |
| dstTrackIndex: | (unsigned int) | dstTrackIndex | |
移动视频轨道。移动之后,所有视频轨道会从0开始重新设置index
| srcTrackIndex | 原视频轨道索引 |
| dstTrackIndex | 目标视频轨道索引 |
| - (NvsTimelineAnimatedSticker *) removeAnimatedSticker: | (NvsTimelineAnimatedSticker *) | animatedSticker |
移除时间线上的动画贴纸
| animatedSticker | 要移除的动画贴纸对象 |
| - (BOOL) removeAudioTrack: | (unsigned int) | trackIndex |
移除音频轨道
| trackIndex | 音频轨道索引 |
| - (NvsTimelineCaption *) removeCaption: | (NvsTimelineCaption *) | caption |
移除时间线上的字幕
| caption | 要移除的时间线字幕对象 |
| - (NvsTimelineCompoundCaption *) removeCompoundCaption: | (NvsTimelineCompoundCaption *) | caption |
移除时间线上的复合字幕
| caption | 要移除的时间线复合字幕对象 |
| - (void) removeCurrentTheme |
| - (void) removeTimelineEndingLogo |
移除已添加的timeline结尾的logo特效
| - (NvsTimelineGraphCompositor *) removeTimelineGraphCompositor: | (NvsTimelineGraphCompositor *) | graphCompositor |
移除时间线上的图式合成器
| graphCompositor | 要移除的图式合成器对象 |
| - (NvsTimelineVideoFx *) removeTimelineVideoFx: | (NvsTimelineVideoFx *) | videoFx |
移除时间线上的时间线视频特效
| videoFx | 要移除的时间线视频特效对象 |
| - (BOOL) removeVideoTrack: | (unsigned int) | trackIndex |
移除视频轨道
| trackIndex | 视频轨道索引 |
| - (void) setCaptionBoundingRectInActualMode: | (BOOL) | isActualBoundingRect |
设置字幕的边框为文字的实际包络大小
| isActualBoundingRect | 是否显示实际包络大小 |
| - (void) setPlaybackRateControl: | (NSArray *) | arrayPlaybackRateControlRegion |
| - (void) setThemeMusicVolumeGain: | (float) | leftVolumeGain | |
| rightVolumeGain: | (float) | rightVolumeGain | |
设置主题音乐音量
| leftVolumeGain | 左声道,取值范围[0,8),建议是[0,3],如果超过3,可能会破音 |
| rightVolumeGain | 右声道,取值范围[0,8),建议是[0,3],如果超过3,可能会破音 |
| - (void) setThemeTitleCaptionText: | (NSString *) | text |
| - (void) setThemeTrailerCaptionText: | (NSString *) | text |
| - (bool) setTimelineEndingLogo: | (NSString *) | logoFilePath | |
| displayWidth: | (unsigned int) | displayWidth | |
| displayHeight: | (unsigned int) | displayHeight | |
| centerX: | (int) | centerX | |
| centerY: | (int) | centerY | |
设置timeline结尾的Logo特效,时长是1s钟
| logoFilePath | logo文件的路径,须为PNG、JPG、CAF文件 |
| displayWidth | logo在timeline中显示的宽度,为0则使用图片文件的宽度 |
| displayHeight | logo在timeline中显示的高度,为0则使用图片文件的高度 |
| centerX | logo中心点在X方向的位置 |
| centerY | logo中心点在Y方向的位置 |
| - (bool) setWatermarkOpacity: | (float) | opacity |
| - (unsigned int) videoTrackCount |
|
readwritenonatomicassign |
音频淡出时长(单位微秒)
|
readatomicassign |
音频解析度(采样率、采样格式及通道数)
|
readatomicassign |
时间线的时长(单位微秒)
|
readatomicassign |
视频帧率
|
readatomicassign |
视频解析度(图像宽高及横纵比)
1.8.18