美摄SDK For iOS
3.14.0
|
流媒体上下文 更多...
#import <NvsStreamingContext.h>
类方法 | |
(void) | + getSdkVersion:minorVersion:revisionNumber: |
获取美摄SDK的版本信息 更多... | |
(void) | + setDebugLevel: |
设置Debug的级别 更多... | |
(void) | + setSaveDebugMessagesToFile: |
设置是否将SDK的调试信息写入到文件中,在/Library/Application Support/log/路径下每天会生成一个文件,例如:meishesdklog(2023-01-17).log,如果需要删除文件用户需要自己删除这个目录,美摄sdk不会主动删除. 更多... | |
(void) | + setDebugMessagesToStdOut: |
设置是否将SDK的调试信息写入到标准输出 更多... | |
(void) | + setDebugLogDelegate: |
(BOOL) | + verifySdkLicenseFile: |
验证SDK授权文件。注意:授权文件接口必须在NvsStreamingContext初始化之前调用。 更多... | |
(NvsStreamingContext *) | + sharedInstance |
获取流媒体上下文的唯一实例 更多... | |
(NvsStreamingContext *) | + sharedInstanceWithFlags: |
获取流媒体上下文的唯一实例。详细了解参见4k视频编辑专题 更多... | |
(void) | + destroyInstance |
销毁流媒体上下文实例。 更多... | |
(int) | + hasARModule |
检测当前SDK是否含有AR模块 更多... | |
(BOOL) | + initHumanDetection:licenseFilePath:features: |
初始化人体检测机制, 只初始化一次 更多... | |
(BOOL) | + initHumanDetection:licenseFilePath:features:options: |
初始化人体检测机制, 只初始化一次 更多... | |
(BOOL) | + initHumanDetectionExt:licenseFilePath:features: |
初始化人体检测扩展机制,必须先调用initHumanDetection 更多... | |
(BOOL) | + initHumanDetectionExt:licenseFilePath:features:options: |
初始化人体检测扩展机制,必须先调用initHumanDetection 更多... | |
(BOOL) | + setupHumanDetectionData:dataFilePath: |
初始化人体检测数据包 更多... | |
(void) | + closeHumanDetection |
关闭人体检测机制 更多... | |
(NSString *) | + getLogFileDirectory |
获取日志文件所在路径 更多... | |
(BOOL) | + functionalityAuthorised: |
验证某项功能是否可用。 更多... | |
(void) | + setSpecialCameraDeviceType: |
设置特殊的Camera 的设备类型。 更多... | |
(void) | + setMaxCafCacheMemorySize: |
设置caf的最大缓存。 更多... | |
(void) | + setMaxImageReaderCount: |
设置max image reader 最大个数。 更多... | |
(void) | + setFxPluginBundlePathList: |
设置特效插件路径。 更多... | |
(void) | + setMaxAudioReaderCount: |
设置 audio reader 最大个数。 更多... | |
(void) | + setMaxReaderCount: |
设置 file reader 最大个数。 更多... | |
(void) | + setMaxHardwareVideoDecodeErrorCount: |
设置最大视频硬件解码错误次数,默认80. 如果超过这个次数会切换到软件解码器 更多... | |
(void) | + setMaxSoftReaderCount: |
设置软件的 file reader 最大个数。 更多... | |
(void) | + setMaxIconReaderCount: |
设置 icon reader 最大个数。 更多... | |
(void) | + setStreamingPoolSizeInByte: |
设置max image reader 最大个数。 更多... | |
(void) | + setMaxEditCaptionCachedContextCount: |
设置编辑时缓存的caption context 最大个数。 更多... | |
(void) | + setMaxCompileCaptionCachedContextCount: |
设置导出时缓存的caption context 最大个数。 更多... | |
属性 | |
id< NvsStreamingContextDelegate > | delegate |
id< NvsStreamingContextWebDelegate > | webDelegate |
NvsAssetPackageManager * | assetPackageManager |
包管理器 更多... | |
float | compileVideoBitrateMultiplier |
生成视频码率倍乘系数 更多... | |
float | recordVideoBitrateMultiplier |
录制视频码率倍乘系数 更多... | |
BOOL | defaultCaptionFade |
默认字幕是否为淡入淡出 更多... | |
id< NvsImageGrabberDelegate > | imageGrabberDelegate |
NSMutableDictionary * | compileConfigurations |
生成时间线配置,设置一次即一直生效。NSMutableDictionary中关键字的值请参见 生成时间线的配置 例如:NSMutableDictionary *config = [[NSMutableDictionary alloc] init]; [config setValue:[NSNumber numberWithInteger:15] forKey:NVS_COMPILE_GOP_SIZE]; // 设置为1即是生成全I帧视频 [config setValue:[NSNumber numberWithInteger:10000000] forKey:NVS_COMPILE_BITRATE]; // 10M bps [config setValue:[NSNumber numberWithInteger:256000] forKey:NVS_COMPILE_AUDIO_BITRATE]; // 设置音频码率为256Kbps [config setValue:[NSNumber numberWithBool:YES] forKey:NVS_COMPILE_LOSSLESS_AUDIO]; // 设置生成无损音频 [config setValue:[NSNumber numberWithBool:YES] forKey:NVS_COMPILE_OPTIMIZE_FOR_NETWORK_USE]; // 设置索引表前置 NvsRational videoFps = {12, 1}; [config setValue:[NSData dataWithBytes:&videoFps length:sizeof(NvsRational)] forKey:NVS_COMPILE_VIDEO_FPS]; // 设置帧速率FPS _streamingContext.compileConfigurations = config; 取消设置并恢复默认方式例如:[_streamingContext.compileConfigurations setValue:nil forKey:NVS_COMPILE_GOP_SIZE]; 更多... | |
流媒体上下文
流媒体上下文类可视作整个SDK框架的入口。开发过程中,NvsStreamingContext类提供了静态sharedInstance()接口创建流上下文的唯一实例。 通过这个实例对象,我们可以开启采集设备录制视频,添加采集视频特效,设置拍摄时的各项参数,包括自动聚焦,自动曝光调节,开关换补光灯等。 同时,还能够创建时间线,并将时间线与实时预览窗口(Live Window)连接起来,实时预览播放已经拍摄完成的视频。整个视频制作完成后,要销毁流媒体上下文的对象实例。 带特效拍摄时,添加素材资源包(采集特效包,场景资源包等),都得先安装,安装成功后获取packageId才能使用,而内建采集特效(builtin)只需获取特效名称即可使用。
sdk接口中凡是需要传入资源、授权等文件路径时一定是全路径。
- (NvsCaptureAnimatedSticker *) addCustomCaptureAnimatedSticker: | (int64_t) | inPoint | |
duration: | (int64_t) | duration | |
animatedStickerPackageId: | (NSString *) | animatedStickerPackageId | |
customImagePath: | (NSString *) | customImagePath | |
在拍摄上添加自定义动画贴纸
inPoint | 自定义动画贴纸在时间线上的入点(单位微秒) |
duration | 自定义动画贴纸的显示时长(单位微秒) |
animatedStickerPackageId | 自定义动画贴纸包Id |
customImagePath | 自定义动画贴纸图像路径(可以是jpg、png图像,或者美摄sdk内部支持的动态caf格式图像) |
- (NvsCaptureVideoFx *) appendBeautyCaptureVideoFx |
- (NvsCaptureAudioFx *) appendBuiltinCaptureAudioFx: | (NSString *) | audioFxName |
追加一个内建音频特效
audioFxName | 音频特效名。获取音频特效名称,请参见getAllBuiltinCaptureAudioFxNames()或内建特效名称列表。 |
- (NvsCaptureVideoFx *) appendBuiltinCaptureVideoFx: | (NSString *) | videoFxName |
追加一个内建视频特效
videoFxName | 视频特效名。获取视频特效名称,请参见getAllBuiltinCaptureVideoFxNames()或内建特效名称列表。 |
- (NvsCaptureAnimatedSticker *) appendCaptureAnimatedSticker: | (int64_t) | offsetTime | |
duration: | (int64_t) | duration | |
animatedStickerPackageId: | (NSString *) | animatedStickerPackageId | |
追加一个动画贴纸
offsetTime | 动画贴纸的偏移时间。 |
duration | 动画贴纸的持续时间。 |
animatedStickerPackageId | 动画贴纸包Id。 |
- (NvsCaptureCaption *) appendCaptureCaption: | (NSString *) | captionText | |
offsetTime: | (int64_t) | offsetTime | |
duration: | (int64_t) | duration | |
captionStylePackageId: | (NSString *) | captionStylePackageId | |
追加一个字幕
captionText | 字幕的文字 |
offsetTime | 字幕的偏移时间。 |
duration | 字幕的持续时间。 |
captionStylePackageId | 字幕样式包Id,不存在的话,可以传空字符串或者null |
- (NvsCaptureCompoundCaption *) appendCaptureCompoundCaption: | (int64_t) | offsetTime | |
duration: | (int64_t) | duration | |
compoundCaptionPackageId: | (NSString *) | compoundCaptionPackageId | |
追加一个复合字幕
offsetTime | 复合字幕的偏移时间。 |
duration | 复合字幕的持续时间。 |
compoundCaptionPackageId | 复合字幕包Id。 |
- (NvsCaptureCaption *) appendCaptureModularCaption: | (NSString *) | captionText | |
offsetTime: | (int64_t) | offsetTime | |
duration: | (int64_t) | duration | |
追加一个模块字幕
captionText | 字幕的文字 |
offsetTime | 字幕的偏移时间。 |
duration | 字幕的持续时间。 |
- (NvsCaptureVideoFx *) appendCustomCaptureVideoFx: | (id< NvsCustomVideoFxRenderer >) | customVideoFxRender |
追加自定义采集视频特效
customVideoFxRender | 用户实现的自定义视频特效渲染器接口 |
- (NvsCaptureVideoFx *) appendPackagedCaptureVideoFx: | (NSString *) | videoFxPackageId |
追加一个包裹视频特效
videoFxPackageId | 视频特效包裹ID |
- (BOOL) applyCaptureScene: | (NSString *) | captureSceneId |
对采集设备应用拍摄场景资源包
captureSceneId | 拍摄场景资源包的ID |
- (BOOL) applyCaptureScene: | (NSString *) | captureSceneId | |
captureSceneInfo: | (NvsCaptureSceneInfo *) | info | |
对采集设备应用拍摄场景资源包
captureSceneId | 拍摄场景资源包的ID |
info | 待替换的资源信息 |
- (long) calcDurationAfterCurvesVariableSpeed: | (NSString *) | curvesString |
- (void) cancelAutoFocus |
取消正在进行中的自动聚焦
- (unsigned int) captureDeviceCount |
采集设备的数量
- (void) clearCachedResources: | (BOOL) | asynchronous |
清除缓存资源
asynchronous | 是否异步 |
- (void) clearCachedResources: | (BOOL) | asynchronous | |
flags: | (int) | flags | |
清除缓存资源
asynchronous | 是否异步 |
flags | 清除缓存标志,如无特殊需求请填写0。请参见 NvsClearCacheFlag。 |
+ (void) closeHumanDetection |
关闭人体检测机制
- (BOOL) compilePassthroughTimeline: | (NvsTimeline *) | timeline | |
outputFilePath: | (NSString *) | outputFilePath | |
compileConfigurations: | (NSMutableDictionary *) | configurations | |
flags: | (int) | flags | |
将时间线中视频轨道0上的视频片段直通生成一个视频,不处理滤镜、多轨和嵌套时间线,如果有图片则失败
timeline | 时间线对象 |
outputFilePath | 生成输出的文件路径 |
configurations | 时间线配置,只支持添加NVS_COMPILE_CREATION_TIME、NVS_COMPILE_OPTIMIZE_FOR_NETWORK_USE、NVS_COMPILE_METADATADESCRIPTION |
flags | 生成文件输出的特殊标志,如果没有特殊需求,请填写0。 |
- (BOOL) compileTimeline: | (NvsTimeline *) | timeline | |
startTime: | (int64_t) | startTime | |
endTime: | (int64_t) | endTime | |
outputFilePath: | (NSString *) | outputFilePath | |
videoResolutionGrade: | (NvsCompileVideoResolutionGrade) | videoResolutionGrade | |
videoBitrateGrade: | (NvsCompileVideoBitrateGrade) | videoBitrateGrade | |
compileConfigurations: | (NSMutableDictionary *) | compileConfigurations | |
flags: | (int) | flags | |
时间线生成视频文件
timeline | 时间线 |
startTime | 开始时间(单位微秒)。startTime取值范围在[0,timeline.duration - 1],传入其他值无效。 |
endTime | 结束时间(单位微秒)。endTime取值范围在(startTime,timeline.duration],同样传入其他值无效。 |
outputFilePath | 生成视频输出的文件路径。注意: 目前只支持输出.mov格式的文件 |
videoResolutionGrade | 生成视频输出的分辨率级别 |
videoBitrateGrade | 生成视频输出的码率。视频输出码率级别分为低码率,中等码率,高等码率。视频生成具体码率值跟生成视频的分辨率有关,这里以1280 * 720p为例,计算出不同码率级别对应的近似值, NvsCompileBitrateGradeLow级别值为2.2Mbps,NvsCompileBitrateGradeMedium级别值为3.3Mbps,NvsCompileBitrateGradeHigh级别值为6Mbps。 |
compileConfigurations | 时间线配置 NSMutableDictionary中关键字的值请参见 生成时间线的配置 |
flags | 生成视频输出的特殊标志。请参见 NvsStreamingEngineCompileFlag |
- (BOOL) compileTimeline: | (NvsTimeline *) | timeline | |
startTime: | (int64_t) | startTime | |
endTime: | (int64_t) | endTime | |
outputFilePath: | (NSString *) | outputFilePath | |
videoResolutionGrade: | (NvsCompileVideoResolutionGrade) | videoResolutionGrade | |
videoBitrateGrade: | (NvsCompileVideoBitrateGrade) | videoBitrateGrade | |
flags: | (int) | flags | |
时间线生成视频文件
timeline | 时间线 |
startTime | 开始时间(单位微秒)。startTime取值范围在[0,timeline.duration - 1],传入其他值无效。 |
endTime | 结束时间(单位微秒)。endTime取值范围在(startTime,timeline.duration],同样传入其他值无效。 |
outputFilePath | 生成视频输出的文件路径。注意: 目前只支持输出.mov格式的文件 |
videoResolutionGrade | 生成视频输出的分辨率级别 |
videoBitrateGrade | 生成视频输出的码率。视频输出码率级别分为低码率,中等码率,高等码率。视频生成具体码率值跟生成视频的分辨率有关,这里以1280 * 720p为例,计算出不同码率级别对应的近似值, NvsCompileBitrateGradeLow级别值为2.2Mbps,NvsCompileBitrateGradeMedium级别值为3.3Mbps,NvsCompileBitrateGradeHigh级别值为6Mbps。 |
flags | 生成视频输出的特殊标志。请参见 NvsStreamingEngineCompileFlag |
- (BOOL) connectCapturePreviewWithLiveWindow: | (NvsLiveWindow *) | liveWindow |
- (BOOL) connectCapturePreviewWithVideoFrameReceiver: | (NvsVideoFrameReceiver *) | receiver |
连接采集预览和视频帧接收器
receiver | 视频帧接收器 |
- (BOOL) connectTimeline: | (NvsTimeline *) | timeline | |
withLiveWindow: | (NvsLiveWindow *) | liveWindow | |
连接时间线和实时预览窗口
timeline | 时间线 |
liveWindow | 实时预览窗口 |
- (BOOL) connectTimeline: | (NvsTimeline *) | timeline | |
withVideoFrameReceiver: | (NvsVideoFrameReceiver *) | receiver | |
连接时间线和视频帧接收器
timeline | 时间线 |
receiver | 视频帧接收器 |
- (NvsStreamingContext *) createAuxiliaryStreamingContext: | (int) | flags |
创建辅助流媒体上下文对象
flags | 流媒体上下文创建标志 |
- (NvsTimeline *) createTimeline: | (NSString *) | templateId | |
templateFootages: | (NSArray< NvsTemplateFootageInfo * > *) | templateFootages | |
用模板资源创建时间线
templateId | 模板资源uuid |
templateFootages | 模板资源里footage的对应信息 |
- (NvsTimeline *) createTimeline: | (NSString *) | templateId | |
templateFootages: | (NSArray< NvsTemplateFootageInfo * > *) | templateFootages | |
flags: | (int) | flags | |
用模板资源创建时间线
templateId | 模板资源uuid |
templateFootages | 模板资源里footage的对应信息 |
flags | 创建时间线的特殊标志,如果没有特殊需求,请填写0。请参见NvsCreateTimelineTypeFlag |
- (NvsTimeline *) createTimeline: | (NSString *) | templateId | |
templateFootages: | (NSArray< NvsTemplateFootageInfo * > *) | templateFootages | |
flags: | (int) | flags | |
videoFps: | (NvsRational *) | videoFps | |
audioEditRes: | (NvsAudioResolution *) | audioEditRes | |
用模板资源创建时间线
templateId | 模板资源uuid,必须先安装模板 |
templateFootages | 模板资源里footage的对应信息 |
flags | 创建时间线的特殊标志,如果没有特殊需求,请填写0。请参见创建时间线标志 |
videoFps | 视频帧率,最大60fps |
audioEditRes | 音频解析度(指定采样率、采样格式及声道数)。对于音频编辑解析度,传入的采样率值支持两种:44100与48000。支持单声道和立体声 |
- (NvsTimeline *) createTimeline: | (NvsVideoResolution *) | videoEditRes | |
videoFps: | (NvsRational *) | videoFps | |
audioEditRes: | (NvsAudioResolution *) | audioEditRes | |
创建时间线
videoEditRes | 视频编辑解析度(指定视频宽高及像素比)。对于视频编辑解析度,在传入对应参数值时,目前要求传入的图像宽度值是4的倍数,高度值是2的倍数。注:如果创建NvsStreamingContext单例对象,支持4k视频编辑,则视频编辑解析度里的imageWidth * imageHeight不能高于3840*2160像素,否则视频编辑解析度里的imageWidth * imageHeight不能高于1920 * 1080像素。 |
videoFps | 视频帧率,最高60fps |
audioEditRes | 音频编辑解析度(指定采样率、采样格式及声道数)。对于音频编辑解析度,传入的采样率值支持两种:44100与48000,支持单声道和双声道 |
- (NvsTimeline *) createTimeline: | (NvsVideoResolution *) | videoEditRes | |
videoFps: | (NvsRational *) | videoFps | |
audioEditRes: | (NvsAudioResolution *) | audioEditRes | |
bitDepth: | (NvsVideoResolutionBitDepth) | depth | |
flags: | (int) | flags | |
创建时间线
videoEditRes | 视频编辑解析度(指定视频宽高及像素比)。对于视频编辑解析度,在传入对应参数值时,目前要求传入的图像宽度值是4的倍数,高度值是2的倍数。注:如果创建NvsStreamingContext单例对象,支持4k视频编辑,则视频编辑解析度里的imageWidth * imageHeight不能高于3840*2160像素,否则视频编辑解析度里的imageWidth * imageHeight不能高于1920 * 1080像素。 |
videoFps | 视频帧率,最高60fps |
audioEditRes | 音频编辑解析度(指定采样率、采样格式及声道数)。对于音频编辑解析度,传入的采样率值支持两种:44100与48000,支持单声道和双声道 |
bitDepth | 时间线视频的位深度,目前支持8bit, 16bit float,和auto |
flags | 创建时间线的特殊标志,如果没有特殊需求,请填写0。请参见NvsCreateTimelineTypeFlag |
- (NvsTimeline *) createTimeline: | (NvsVideoResolution *) | videoEditRes | |
videoFps: | (NvsRational *) | videoFps | |
audioEditRes: | (NvsAudioResolution *) | audioEditRes | |
flags: | (int) | flags | |
创建时间线
videoEditRes | 视频编辑解析度(指定视频宽高及像素比)。对于视频编辑解析度,在传入对应参数值时,目前要求传入的图像宽度值是4的倍数,高度值是2的倍数。注:如果创建NvsStreamingContext单例对象,支持4k视频编辑,则视频编辑解析度里的imageWidth * imageHeight不能高于3840*2160像素,否则视频编辑解析度里的imageWidth * imageHeight不能高于1920 * 1080像素。 |
videoFps | 视频帧率,最高60fps |
audioEditRes | 音频编辑解析度(指定采样率、采样格式及声道数)。对于音频编辑解析度,传入的采样率值支持两种:44100与48000,支持单声道和双声道 |
flags | 创建时间线的特殊标志,如果没有特殊需求,请填写0。请参见NvsCreateTimelineTypeFlag |
- (NvsVideoFrameRetriever *) createVideoFrameRetriever: | (NSString *) | videoFilePath |
创建视频帧提取对象
videoFilePath | 原始视频文件路径 |
- (void) destoryAuxiliaryStreamingContext: | (NvsStreamingContext *) | auxContext |
+ (void) destroyInstance |
销毁流媒体上下文实例。
- (float) detectEngineRenderFramePerSecond |
从流媒体上下文中获取引擎当前的渲染速度,只在startCapturePreview和playbackTimeline之后有效。
- (int) detectVideoFileKeyframeInterval: | (NSString *) | videoFilePath |
探测视频文件的I帧间距
videoFilePath | 视频文件的路径 |
- (BOOL) exportProjectInfo: | (NSString *) | projectUuid | |
timeline: | (NvsTimeline *) | timeline | |
requestedAspectRatio: | (int) | requestedAspectRatio | |
输出项目包的信息
projectUuid | 项目资源包ID |
timeline | 时间线对象 |
requestedAspectRatio | 所需的项目画幅比例,一般和timeline的画幅比例一致.请参见资源包画幅比例 |
- (BOOL) exportTemplateInfo: | (NSString *) | templateUuid | |
timeline: | (NvsTimeline *) | timeline | |
requestedAspectRatio: | (int) | requestedAspectRatio | |
输出模版包的信息
templateUuid | 模版资源包ID |
timeline | 时间线对象 |
requestedAspectRatio | 所需的模版画幅比例,一般和timeline的画幅比例一致.请参见模板资源包画幅比例 |
+ (BOOL) functionalityAuthorised: | (NSString *) | sdkFunctionName |
验证某项功能是否可用。
sdkFunctionName | sdk功能的名字 |
- (BOOL) generateProjectPackage: | (NSString *) | projectUuid | |
innerAssetDir: | (NSString *) | innerAssetDir | |
projectOutputDir: | (NSString *) | projectOutputDir | |
生成项目包
projectUuid | 项目资源包ID |
innerAssetDir | 项目内部资源文件夹路径 |
projectOutputDir | 项目资源包的输出路径 |
- (BOOL) generateTemplatePackage: | (NSString *) | templateUuid | |
innerAssetDir: | (NSString *) | innerAssetDir | |
templateOutputDir: | (NSString *) | templateOutputDir | |
生成模版包
templateUuid | 模版资源包ID |
innerAssetDir | 模版内部资源文件夹路径 |
templateOutputDir | 模版资源包的输出路径 |
- (BOOL) getAECEnabled |
获取回声消除是否开启。
- (NSArray *) getAllBuiltinAudioFxNames |
- (NSArray *) getAllBuiltinCaptureVideoFxNames |
- (NSArray *) getAllBuiltinVideoFxNames |
- (NSArray *) getAllBuiltinVideoTransitionNames |
获取全部内嵌视频转场名称
- (NvsFxDescription *) getAudioFxDescription: | (NSString *) | fxName |
- (NvsAVFileInfo *) getAVFileInfo: | (NSString *) | avFilePath |
获取文件的音视频信息,如果文件格式不支持,则返回null
avFilePath | 文件路径 |
- (NvsAVFileInfo *) getAVFileInfo: | (NSString *) | avFilePath | |
extraFlag: | (int) | extraFlag | |
withError: | (NSMutableString *) | errString | |
获取音视频文件的详细信息
avFilePath | 音视频文件的路径 |
extraFlag | 获取音视频文件的详细信息的特殊标识。请参见获取音视频信息时的特殊标识 |
errString | 如果当前函数返回为null, 当前参数有意义, 返回具体的错误信息。 |
- (NvsAVFileInfo *) getAVFileInfoExtra: | (NSString *) | avFilePath | |
extraFlag: | (int) | extraFlag | |
获取文件的音视频信息,如果文件格式不支持,则返回null
avFilePath | 文件路径 |
extraFlag | 音视频信息特殊标识。请参见音视频信息flag |
- (NSString *) getBeautyVideoFxName |
- (NvsCaptureAnimatedSticker *) getCaptureAnimatedStickerByIndex: | (unsigned int) | captureStikcerIndex |
获得采集动画贴纸
captureStikcerIndex | 动画贴纸索引 |
- (unsigned int) getCaptureAnimatedStickerCount |
获得采集动画贴纸的数量
- (NvsCaptureAudioFx *) getCaptureAudioFxByIndex: | (unsigned int) | captureAudioFxIndex |
获得采集音频特效
captureAudioFxIndex | 音频特效索引 |
- (unsigned int) getCaptureAudioFxCount |
获得采集音频特效的数量
- (NvsCaptureCaption *) getCaptureCaptionByIndex: | (unsigned int) | captureCaptionIndex |
获得采集字幕
captureStikcerIndex | 字幕索引 |
- (unsigned int) getCaptureCaptionCount |
获得采集字幕的数量
- (NvsCaptureCompoundCaption *) getCaptureCompoundCaptionByIndex: | (unsigned int) | captureCaptionIndex |
获得采集复合字幕
captureStikcerIndex | 复合字幕索引 |
- (unsigned int) getCaptureCompoundCaptionCount |
获得采集复合字幕的数量
- (NvsCaptureDeviceCapability *) getCaptureDeviceCapability: | (unsigned int) | catpureDeviceIndex |
获取采集设备的能力描述对象
catpureDeviceIndex | 采集设备索引 |
- (NvsSize) getCapturePreviewVideoSize: | (unsigned int) | catpureDeviceIndex |
获取采集预览视频分辨率
catpureDeviceIndex | 采集设备索引 |
- (NvsCaptureVideoFx *) getCaptureVideoFxByIndex: | (unsigned int) | captureVideoFxIndex |
- (unsigned int) getCaptureVideoFxCount |
获得采集视频特效的数量
- (float) getColorGainForSDRToHDR |
获取在SDR向HDR转换时候色彩增益
- (NSString *) getCurrentCaptureSceneId |
取得当前拍摄场景资源包的ID
- (unsigned int) getCustomCompileVideoHeight |
获取当前自定义的生成视频高度。
- (NSString *) getDefaultThemeEndingLogoImageFilePath |
- (NSString *) getDefaultVideoTransitionName |
- (EAGLSharegroup *) getEAGLSharegroup |
从流媒体上下文中获取引擎所用的EAGLSharegroup对象
- (int) getEngineHDRCaps |
获取引擎的HDR能力
- (float) getExposureBias |
- (NvsCameraFlashMode) getFlashMode |
获取当前闪光灯模式
- (NSArray*) getFontInfoByFilePath: | (NSString *) | fontFilePath |
获取字体文件中字体信息
fontFilePath | 字体文件路径 |
+ (NSString *) getLogFileDirectory |
获取日志文件所在路径
+ (void) getSdkVersion: | (int *) | majorVersion | |
minorVersion: | (int *) | minorVersion | |
revisionNumber: | (int *) | revisionNumber | |
获取美摄SDK的版本信息
majorVersion | 主版本号 |
minorVersion | 次版本号 |
revisionNumber | 修订版本号 |
- (NvsStreamingEngineState) getStreamingEngineState |
获取引擎状态
- (int64_t) getTimelineCurrentPosition: | (NvsTimeline *) | timeline |
取得时间线当前时间位置,单位为微秒
timeline | 时间线 |
- (NvsFxDescription *) getVideoFxDescription: | (NSString *) | fxName |
- (VideoStabilizationFlag) getVideoStabilization |
- (float) getZoomFactor |
- (UIImage *) grabImageFromTimeline: | (NvsTimeline *) | timeline | |
timestamp: | (int64_t) | timestamp | |
proxyScale: | (const NvsRational *) | proxyScale | |
获取时间线某一时间戳的图像。详细情况参见视频帧图像提取专题
timeline | 欲获取图像的时间线对象 |
timestamp | 欲获取图像的时间戳(单位是微秒)。timestamp取值范围在[0,timeline.duration - 1]。传入其他值无效,grabImageFromTimeline会返回nil。 |
proxyScale | 代理缩放比例,填写nil表示使用默认比例1:1 |
- (UIImage *) grabImageFromTimeline: | (NvsTimeline *) | timeline | |
timestamp: | (int64_t) | timestamp | |
proxyScale: | (const NvsRational *) | proxyScale | |
flags: | (int) | flags | |
获取时间线某一时间戳的图像。详细情况参见视频帧图像提取专题
timeline | 欲获取图像的时间线对象 |
timestamp | 欲获取图像的时间戳(单位是微秒)。timestamp取值范围在[0,timeline.duration - 1]。传入其他值无效,grabImageFromTimeline会返回nil。 |
proxyScale | 代理缩放比例,填写nil表示使用默认比例1:1 |
flags | 引擎定位的特殊标志。请参见 NvsStreamingEngineSeekFlag |
- (BOOL) grabImageFromTimelineAsync: | (NvsTimeline *) | timeline | |
timestamp: | (int64_t) | timestamp | |
proxyScale: | (const NvsRational *) | proxyScale | |
flags: | (int) | flags | |
获取时间线某一时间戳的图像。详细情况参见视频帧图像提取专题 这个函数是内部异步调用,需要保证在获取到图像之前不会调用SeekTimeline(),如果在调用这个函数之后调用SeekTimeline的函数有可能收不到图像的回调,可以在这个函数之后调用Stop保证Grab image能执行成功
timeline | 欲获取图像的时间线对象 |
timestamp | 欲获取图像的时间戳(单位微秒)。timestamp取值范围在[0,timeline.duration - 1]。传入其他值无效,grabImageFromTimeline会返回null。 |
proxyScale | 代理缩放比例 |
flags | 引擎定位的特殊标志。具体参见引擎定位标识 |
+ (int) hasARModule |
检测当前SDK是否含有AR模块
+ (BOOL) initHumanDetection: | (NSString *) | modelFilePath | |
licenseFilePath: | (NSString *) | licenseFilePath | |
features: | (int) | features | |
初始化人体检测机制, 只初始化一次
modelFilePath | 模型文件路径 |
licenseFilePath | 授权文件路径 |
features | 人体检测特征标志字段。请参见人体检测特征标志 |
+ (BOOL) initHumanDetection: | (NSString *) | modelFilePath | |
licenseFilePath: | (NSString *) | licenseFilePath | |
features: | (int) | features | |
options: | (NSMutableDictionary *) | options | |
初始化人体检测机制, 只初始化一次
+ (BOOL) initHumanDetectionExt: | (NSString *) | modelFilePath | |
licenseFilePath: | (NSString *) | licenseFilePath | |
features: | (int) | features | |
初始化人体检测扩展机制,必须先调用initHumanDetection
modelFilePath | 模型文件路径 |
licenseFilePath | 授权文件路径 |
features | 人体检测特征标志字段。请参见人体检测特征标志 |
+ (BOOL) initHumanDetectionExt: | (NSString *) | modelFilePath | |
licenseFilePath: | (NSString *) | licenseFilePath | |
features: | (int) | features | |
options: | (NSMutableDictionary *) | options | |
- (NvsCaptureVideoFx *) insertBeautyCaptureVideoFx: | (unsigned int) | insertPosition |
- (NvsCaptureAudioFx *) insertBuiltinCaptureAudioFx: | (NSString *) | audioFxName | |
withInsertPosition: | (unsigned int) | insertPosition | |
插入一个内建音频特效
audioFxName | 音频特效名。获取音频特效名称,请参见getAllBuiltinCaptureAudioFxNames()或内建特效名称列表。 |
insertPosition | 插入位置,是指特效的渲染顺序 |
- (NvsCaptureVideoFx *) insertBuiltinCaptureVideoFx: | (NSString *) | videoFxName | |
withInsertPosition: | (unsigned int) | insertPosition | |
插入一个内建视频特效
videoFxName | 视频特效名。获取视频特效名称,请参见getAllBuiltinCaptureVideoFxNames()或内建特效名称列表。 |
insertPosition | 插入位置,是指特效的渲染顺序 |
- (NvsCaptureAnimatedSticker *) insertCaptureAnimatedSticker: | (int64_t) | offsetTime | |
duration: | (int64_t) | duration | |
animatedStickerPackageId: | (NSString *) | animatedStickerPackageId | |
insertPosition: | (unsigned int) | insertPosition | |
追加一个动画贴纸
offsetTime | 动画贴纸的偏移时间。 |
duration | 动画贴纸的持续时间。 |
animatedStickerPackageId | 动画贴纸包Id。 |
insertPosition | 插入位置. |
- (NvsCaptureCaption *) insertCaptureCaption: | (NSString *) | captionText | |
offsetTime: | (int64_t) | offsetTime | |
duration: | (int64_t) | duration | |
captionStylePackageId: | (NSString *) | captionStylePackageId | |
insertPosition: | (unsigned int) | insertPosition | |
插入一个字幕
captionText | 字幕的文字 |
offsetTime | 字幕的偏移时间。 |
duration | 字幕的持续时间。 |
captionStylePackageId | 字幕样式包Id,不存在的话,可以传空字符串或者null |
insertPosition | 插入位置. |
- (NvsCaptureCompoundCaption *) insertCaptureCompoundCaption: | (int64_t) | offsetTime | |
duration: | (int64_t) | duration | |
compoundCaptionPackageId: | (NSString *) | compoundCaptionPackageId | |
insertPosition: | (unsigned int) | insertPosition | |
插入一个复合字幕
offsetTime | 复合字幕的偏移时间。 |
duration | 复合字幕的持续时间。 |
compoundCaptionPackageId | 复合字幕包Id。 |
insertPosition | 插入位置. |
- (NvsCaptureCaption *) insertCaptureModularCaption: | (NSString *) | captionText | |
offsetTime: | (int64_t) | offsetTime | |
duration: | (int64_t) | duration | |
insertPosition: | (unsigned int) | insertPosition | |
插入一个模块字幕
captionText | 字幕的文字 |
offsetTime | 字幕的偏移时间。 |
duration | 字幕的持续时间。 |
insertPosition | 插入位置. |
- (NvsCaptureAnimatedSticker *) insertCustomCaptureAnimatedSticker: | (int64_t) | offsetTime | |
duration: | (int64_t) | duration | |
animatedStickerPackageId: | (NSString *) | animatedStickerPackageId | |
customImagePath: | (NSString *) | customImagePath | |
insertPosition: | (unsigned int) | insertPosition | |
插入一个动画贴纸
offsetTime | 动画贴纸的偏移时间。 |
duration | 动画贴纸的持续时间。 |
animatedStickerPackageId | 动画贴纸包Id。 |
customImagePath | 自定义动画贴纸图像路径(可以是jpg、png图像,或者美摄sdk内部支持的动态caf格式图像) |
insertPosition | 插入位置. |
- (NvsCaptureVideoFx *) insertCustomCaptureVideoFx: | (id< NvsCustomVideoFxRenderer >) | customVideoFxRender | |
withInsertPosition: | (int) | insertPosition | |
插入自定义采集视频特效
customVideoFxRender | 用户实现的自定义视频特效渲染器接口 |
insertPosition | 插入位置,是指特效的渲染顺序 |
- (NvsCaptureVideoFx *) insertPackagedCaptureVideoFx: | (NSString *) | videoFxPackageId | |
withInsertPosition: | (unsigned int) | insertPosition | |
插入一个包裹视频特效
videoFxPackageId | 视频特效包裹ID |
insertPosition | 插入位置,是指特效的渲染顺序 |
- (BOOL) isBlackFrame: | (UIImage *) | image |
检测是否是纯黑色的图片。
待检测的image |
- (BOOL) isCaptureDeviceBackFacing: | (unsigned int) | catpureDeviceIndex |
是否为后置采集设备
catpureDeviceIndex | 采集设备索引 |
- (BOOL) isCompilingPaused |
- (BOOL) isFlashOn |
- (BOOL) isPlaybackPaused |
- (BOOL) isRecordingPaused |
- (NvsTimeline *) loadProject: | (NSString *) | projectId | |
resourceDir: | (NSString *) | resourceDir | |
用项目资源创建时间线
projectId | 项目uuid |
resourceDir | 项目资源文件夹路径 |
- (BOOL) pauseCompiling |
- (BOOL) pausePlayback |
- (BOOL) pauseRecording |
暂停录制采集信号。暂停录制之后再继续录制会录制到同一个媒体文件中。注意:只有不使用系统内置recorder时才能暂停录制!
- (BOOL) playbackTimeline: | (NvsTimeline *) | timeline | |
startTime: | (int64_t) | startTime | |
endTime: | (int64_t) | endTime | |
proxyScale: | (const NvsRational *) | proxyScale | |
preload: | (BOOL) | preload | |
flags: | (int) | flags | |
播放时间线
timeline | 时间线 |
startTime | 开始时间(单位是微秒)。startTime取值范围在[0,timeline.duration - 1]。传入其他值无效,playbackTimeline会返回No导致无法开启播放。 |
endTime | 结束时间(单位是微秒)。如果endTime值传入是负值,则默认播放到视频末尾。 |
proxyScale | 代理缩放比例 |
preload | 是否预先加载 |
flags | 预览的特殊标志,如无特殊需求,请填写0。请参见 NvsStreamingEnginePlaybackFlag |
- (BOOL) playbackTimeline: | (NvsTimeline *) | timeline | |
startTime: | (int64_t) | startTime | |
endTime: | (int64_t) | endTime | |
videoSizeMode: | (NvsVideoPreviewSizeMode) | videoSizeMode | |
preload: | (BOOL) | preload | |
flags: | (int) | flags | |
播放时间线
timeline | 时间线 |
startTime | 开始时间(单位是微秒)。startTime取值范围在[0,timeline.duration - 1]。传入其他值无效,playbackTimeline会返回No导致无法开启播放。 |
endTime | 结束时间(单位是微秒)。如果endTime值传入是负值,则默认播放到视频末尾。 |
videoSizeMode | 图像预览模式 |
preload | 是否预先加载 |
flags | 预览的特殊标志,如无特殊需求,请填写0。请参见 NvsStreamingEnginePlaybackFlag |
- (BOOL) preloadEffectResources |
预加载特技资源
- (NSString*) registerFontByFilePath: | (NSString *) | fontFilePath |
获取字体文件的fontFamily
fontFilePath | 字体文件路径 |
- (void) removeAllCaptureAnimatedSticker |
- (void) removeAllCaptureAudioFx |
- (void) removeAllCaptureCaption |
移除所有采集字幕
- (void) removeAllCaptureCompoundCaption |
移除所有采集复合字幕
- (void) removeAllCaptureVideoFx |
移除所有采集视频特效
- (BOOL) removeCaptureAnimatedSticker: | (unsigned int) | captureAnimagedStickerIndex |
对移除特定索引值的采集动画贴纸
captureVideoFxIndex | 动画贴纸索引 |
- (BOOL) removeCaptureAudioFx: | (unsigned int) | captureAudioFxIndex |
对移除特定索引值的采集音频特效
captureVideoFxIndex | 音频特效索引 |
- (BOOL) removeCaptureCaption: | (unsigned int) | captureCaptionIndex |
对移除特定索引值的采集字幕
captureCompoundCaptionIndex | 字幕贴纸索引 |
- (BOOL) removeCaptureCompoundCaption: | (unsigned int) | captureCompoundCaptionIndex |
对移除特定索引值的采集复合字幕
captureCompoundCaptionIndex | 复合字幕索引 |
- (BOOL) removeCaptureVideoFx: | (unsigned int) | captureVideoFxIndex |
对移除特定索引值的采集视频特效
captureVideoFxIndex | 视频特效索引 |
- (void) removeCurrentCaptureScene |
- (BOOL) removeTimeline: | (NvsTimeline *) | timeline |
- (void) removeUserWatermarkForCapture |
移除为视频采集添加的用户水印。
- (BOOL) resumeCompiling |
- (BOOL) resumePlayback |
- (BOOL) resumeRecording |
- (NvsColor) sampleColorFromCapturedVideoFrame: | (CGRect) | sampleRect |
对采集设备的视频帧内容进行采样
sampleRect | 采样的矩形区域,坐标为实时预览窗口的自身坐标系 |
- (BOOL) seekTimeline: | (NvsTimeline *) | timeline | |
timestamp: | (int64_t) | timestamp | |
proxyScale: | (const NvsRational *) | proxyScale | |
flags: | (int) | flags | |
定位某一时间戳的图像
timeline | 时间线 |
timestamp | 时间戳(单位是微秒)。timestamp取值范围在[0,timeline.duration - 1]。传入其他值无效,seekTimeline会返回No,导致无法开启定位。 |
proxyScale | 代理缩放比例 |
flags | 引擎定位的特殊标志。请参见 NvsStreamingEngineSeekFlag |
- (BOOL) seekTimeline: | (NvsTimeline *) | timeline | |
timestamp: | (int64_t) | timestamp | |
videoSizeMode: | (NvsVideoPreviewSizeMode) | videoSizeMode | |
flags: | (int) | flags | |
定位某一时间戳的图像
timeline | 时间线 |
timestamp | 时间戳(单位是微秒)。timestamp取值范围在[0,timeline.duration - 1]。传入其他值无效,seekTimeline会返回No,导致无法开启定位。 |
videoSizeMode | 图像预览模式 |
flags | 引擎定位的特殊标志。请参见 NvsStreamingEngineSeekFlag |
- (BOOL) sendAudioSamplesToCapturePreview: | (CMSampleBufferRef) | data |
输入buffer给采集设备预览
data | 输入buffer的数据和相应信息。 |
- (BOOL) sendBufferToCapturePreview: | (const NvsVideoFrameInfo *) | data |
输入buffer给采集设备预览
data | 输入buffer的数据和相应信息。仅支持NV12格式的数据 |
- (void) setAECEnabled: | (BOOL) | enable |
设置是否开启回声消除。注意:每次startCapturePreview都会将此设置为关闭状态,也就是说如果要使用回声消除功能每次启动预览后需要再次启用它。
enable | 是否开启回声消除。 |
- (void) setAudioOutputDeviceVolume: | (float) | volume |
设置音频输出设备音量
volume | 新的音量 取值范围[0,1] |
- (void) setAudioSampleInfoForCallback: | (NvsCapturedAudioSampleInfo *) | info |
设置需要回调的采集音频信息
info | 采集音频信息 |
- (void) setAudioVUMeterEnabled: | (BOOL) | enable |
设置是否输出音频输出的DB值
enable | 是否输出 |
- (void) setCaptureFps: | (int) | fps |
设置采集帧率。
fps | 每秒钟的帧数量 |
- (void) setColorGainForSDRToHDR: | (float) | gain |
- (void) setCustomCompileVideoHeight: | (unsigned int) | videoHeight |
设置自定义的生成视频高度。
在生成时视频时,设置生成视频的分辨率高度级别为NvsCompileVideoResolutionGradeCustom 就可以使用自定义的生成视频高度。但是请注意,为了保证视频生成成功,美摄SDK会对高度进行适当的对齐, 因此最终生成的视频高度不一定就是这里设置的高度!
videoHeight | 自定义的生成视频高度 |
+ (void) setDebugLevel: | (NvsDebugLevel) | debugLevel |
设置Debug的级别
debugLevel | 的级别 |
+ (void) setDebugLogDelegate: | (id< NvsStreamingContextDebugLogDelegate >) | debugLogDelegate |
+ (void) setDebugMessagesToStdOut: | (BOOL) | debugMessagesToStdOut |
设置是否将SDK的调试信息写入到标准输出
debugMessagesToStdOut | 是否将SDK的调试信息写入标准输出 |
- (void) setDefaultAudioTransitionName: | (NSString *) | name |
- (void) setDefaultImageClipDuration: | (int64_t) | defaultImageClipDuration |
设置缺省图像片段持续时长
defaultImageClipDuration | 图像片段持续时长 |
- (BOOL) setDefaultThemeEndingLogoImageFilePath: | (NSString *) | logoImageFilePath |
设置默认主题logo图片路径
logoImageFilePath | logo图片文件路径 |
- (void) setEnableAudioSampleNotify: | (BOOL) | enable |
设置是否输出音频sample
enable | 是否输出 |
- (void) setExposureBias: | (float) | exposureBias |
+ (void) setFxPluginBundlePathList: | (NSArray *) | list |
设置特效插件路径。
特效插件路径数组 |
- (void) setImageReaderCount: | ("Use +setMaxImageReaderCount:") | ||
(macos(10.3, 10.11)) | |||
(ios(7.0, 8.0)) | API_DEPRECATED | ||
设置image reader 最大个数。
image | reader 最大个数 |
+ (void) setMaxAudioReaderCount: | (int) | count |
设置 audio reader 最大个数。
audio | reader 最大个数 |
+ (void) setMaxCafCacheMemorySize: | (int) | maxMemorySize |
设置caf的最大缓存。
maxMemorySize | 最大缓存 |
+ (void) setMaxCompileCaptionCachedContextCount: | (int) | count |
设置导出时缓存的caption context 最大个数。
缓存的caption | context 最大个数 |
+ (void) setMaxEditCaptionCachedContextCount: | (int) | count |
设置编辑时缓存的caption context 最大个数。
缓存的caption | context 最大个数 |
+ (void) setMaxHardwareVideoDecodeErrorCount: | (int) | count |
设置最大视频硬件解码错误次数,默认80. 如果超过这个次数会切换到软件解码器
count | 数量。 |
+ (void) setMaxIconReaderCount: | (int) | count |
设置 icon reader 最大个数。
icon | reader 最大个数 |
+ (void) setMaxImageReaderCount: | (int) | count |
设置max image reader 最大个数。
max | image reader 最大个数 |
+ (void) setMaxReaderCount: | (int) | count |
设置 file reader 最大个数。
file | reader 最大个数 |
+ (void) setMaxSoftReaderCount: | (int) | count |
设置软件的 file reader 最大个数。
soft | file reader 最大个数 |
+ (void) setSaveDebugMessagesToFile: | (BOOL) | saveDebugMessagesToFile |
设置是否将SDK的调试信息写入到文件中,在/Library/Application Support/log/路径下每天会生成一个文件,例如:meishesdklog(2023-01-17).log,如果需要删除文件用户需要自己删除这个目录,美摄sdk不会主动删除.
saveDebugMessagesToFile | 是否将SDK的调试信息写入到文件中 |
+ (void) setSpecialCameraDeviceType: | (NSString *) | specialCameraType |
设置特殊的Camera 的设备类型。
specialCameraType | 特殊设备类型 |
+ (void) setStreamingPoolSizeInByte: | (int) | maxMemorySize |
设置max image reader 最大个数。
max | image reader 最大个数 |
- (void) setTemplate: | (NSString *) | templateUuid | |
customResourceDir: | (NSString *) | customResourceDir | |
设置模版自定义资源所在文件夹
templateUuid | 模版资源包ID |
customResourceDir | 模版资源文件夹路径 |
- (BOOL) setThemeEndingEnabled: | (BOOL) | enable |
- (void) setTimeline: | (NvsTimeline *) | timeline | |
scaleForSeek: | (double) | secondsPerPixel | |
设置时间线的比例尺(单位是秒/像素)以便进行scrubbing检测。 使用者应该在每个设置了(NvsStreamingEngineSeekFlag_AllowFastScrubbing)标志的seek操作之前调用此方法。
timeline | 时间线 |
secondsPerPixel | 比例尺(单位是秒/像素) |
+ (BOOL) setupHumanDetectionData: | (int) | dataType | |
dataFilePath: | (NSString *) | dataFilePath | |
- (void) setUserWatermarkForCapture: | (NSString *) | watermarkFilePath | |
displayWidth: | (int) | displayWidth | |
displayHeight: | (int) | displayHeight | |
opacity: | (float) | opacity | |
position: | (NvsTimelineWatermarkPosition) | position | |
marginX: | (int) | marginX | |
marginY: | (int) | marginY | |
为视频采集添加用户水印
watermarkFilePath | 水印文件的路径,须为PNG或JPG文件 |
displayWidth | 水印在视频预览画面中显示的宽度,为0则使用图片文件的宽度 |
displayHeight | 水印在视频预览画面中显示的高度,为0则使用图片文件的高度 |
opacity | 水印的不透明度, 取值范围 0~1 |
position | 水印的位置,请参见 NvsTimelineWatermarkPosition |
marginX | 水印在X方向的边距 |
marginY | 水印在Y方向的边距 |
- (void) setVideoStabilization: | (VideoStabilizationFlag) | flags |
- (void) setZoomFactor: | (float) | zoomFactor |
+ (NvsStreamingContext *) sharedInstance |
+ (NvsStreamingContext *) sharedInstanceWithFlags: | (NvsStreamingContextFlag) | flags |
- (void) startAutoExposure: | (CGPoint) | pointOfInterest |
启动自动曝光调节
pointOfInterest | 曝光调节点 |
- (void) startAutoFocus: | (CGPoint) | focusPointOfInterest |
- (BOOL) startBufferCapturePreview: | (unsigned int) | width | |
height: | (unsigned int) | height | |
fps: | (const NvsRational *) | fps | |
rotation: | (int) | rotation | |
flipHorizontally: | (BOOL) | flipHorizontally | |
启动输入buffer模式的采集设备预览
width | 输入buffer的宽 |
height | 输入buffer的高 |
fps | 输入buffer的帧率 |
rotation | 输入buffer的图像旋转角度。请参见 输入buffer的图像旋转角度 |
flipHorizontally | 是否需要水平翻转 |
- (BOOL) startCapturePreview: | (unsigned int) | captureDeviceIndex | |
videoResGrade: | (NvsVideoCaptureResolutionGrade) | videoResGrade | |
flags: | (int) | flags | |
aspectRatio: | (const NvsRational *) | aspectRatio | |
启动采集设备预览
captureDeviceIndex | 采集设备索引 |
videoResGrade | 视频采集分辨率级别。视频分辨率等级是指录制时所拍摄视频短边(即可能是宽度或者是高度)的分辨率值,根据视频横纵比aspectRatio(值为nil则由系统采集设备来决定横纵比)计算得到另一边(即可能是宽度或者是高度)的值。 其包括三种级别,分别是LOW,MEDIUM,HIGH,前置摄像头依次对应480p,540p,720p,后置摄像头依次对应540p,720p,1080p。如果有用户想自定义录制视频的等级, 例如540 * 960,则需要拍摄等横纵比的视频,通过创建宽高依次是540和960的时间线,编辑然后生成。生成时,生成分辨率高度等级里面没有960p的等级,因此需要在生成前调用 setCustomCompileVideoHeight()接口来自定义高度,然后调用生成接口compileTimeline(),生成高度级别设置为NvsCompileVideoResolutionGradeCustom即可。实例代码如下: NvsVideoResolution videoEditRes; videoEditRes.imageWidth = 540; videoEditRes.imageHeight = 960; videoEditRes.imagePAR = (NvsRational){1, 1}; NvsRational videoFps = {25, 1}; NvsAudioResolution audioEditRes; audioEditRes.sampleRate = 48000; audioEditRes.channelCount = 2; audioEditRes.sampleFormat = NvsAudSmpFmt_S16; self.timeline = [_context createTimeline:&videoEditRes videoFps:&videoFps audioEditRes:&audioEditRes]; [_context setCustomCompileVideoHeight:960]; [self.context compileTimeline:self.timeline startTime:0 endTime:self.timeline.duration outputFilePath:videoPath videoResolutionGrade:NvsCompileVideoResolutionGradeCustom videoBitrateGrade:NvsCompileBitrateGradeMedium flags:0]; |
flags | 标志字段,如无特殊需求请填写0。请参见 NvsStreamingEngineCaptureFlag。每个Flag应用场景如下: NvsStreamingEngineCaptureFlag_GrabCapturedVideoFrame用于视频抠像; NvsStreamingEngineCaptureFlag_StrictPreviewVideoSize与NvsStreamingEngineCaptureFlag_CaptureBuddyHostVideoFrame结合用于人脸检测; NvsStreamingEngineCaptureFlag_DontCaptureAudio用于视频直播,不采集音频流,一般不常用。 |
aspectRatio | 预览视频横纵比,传入nil则由系统采集设备来决定横纵比 |
- (void) startContinuousFocus |
启动连续聚焦
- (BOOL) startRecording: | (NSString *) | outputFilePath |
- (BOOL) startRecording: | (NSString *) | outputFilePath | |
withFlags: | (int) | flags | |
启动录制采集设备信号。请参见视频录制方式
outputFilePath | 录制文件的路径。注意: 我们建议输出.mov格式的文件 |
flags | 标志字段,如无特殊需求请填写0。请参见 NvsStreamingEngineRecordingFlag |
- (BOOL) startRecording: | (NSString *) | outputFilePath | |
withFlags: | (int) | flags | |
withRecordConfigurations: | (NSMutableDictionary *) | withRecordConfigurations | |
启动录制采集设备信号。请参见视频录制方式
outputFilePath | 录制文件的路径。注意: 我们建议输出.mov格式的文件 |
flags | 标志字段,如无特殊需求请填写0。请参见 NvsStreamingEngineRecordingFlag |
withRecordConfigurations | 录制视频配置。NSMutableDictionary中关键字的值请参见 录制视频配置 例如:NSMutableDictionary *config = [[NSMutableDictionary alloc] init]; [config setValue:[NSNumber numberWithInteger:15] forKey:NVS_RECORD_GOP_SIZE]; // 设置为1即是生成全I帧视频 [config setValue:[NSNumber numberWithInteger:10000000] forKey:NVS_RECORD_BITRATE]; // 10M bps |
- (BOOL) startRecordingWithFx: | (NSString *) | outputFilePath |
启动采集设备的录制,录制的内容包含所有的特效处理效果。
注意:如果特效处理过于复杂可能会导致录制的视频丢帧,所以使用这个方法一定要慎重,要确保特效的处理对于当前 手机是完全可以实时处理的。请参见视频录制方式
outputFilePath | 录制文件的路径。我们建议输出.mov格式的文件 |
- (BOOL) startRecordingWithFx: | (NSString *) | outputFilePath | |
withFlags: | (int) | flags | |
启动采集设备的录制,录制的内容包含所有的特效处理效果。
注意:如果特效处理过于复杂可能会导致录制的视频丢帧,所以使用这个方法一定要慎重,要确保特效的处理对于当前 手机是完全可以实时处理的。请参见视频录制方式
outputFilePath | 录制文件的路径。我们建议输出.mov格式的文件 |
flags | 标志字段,如无特殊需求请填写0。请参见 NvsStreamingEngineRecordingFlag |
- (BOOL) startRecordingWithFx: | (NSString *) | outputFilePath | |
withFlags: | (int) | flags | |
withRecordConfigurations: | (NSMutableDictionary *) | withRecordConfigurations | |
启动录制采集设备信号。请参见视频录制方式
outputFilePath | 录制文件的路径。注意: 我们建议输出.mov格式的文件 |
flags | 标志字段,如无特殊需求请填写0。请参见 NvsStreamingEngineRecordingFlag |
withRecordConfigurations | 录制视频配置。NSMutableDictionary中关键字的值请参见 录制视频配置 例如:NSMutableDictionary *config = [[NSMutableDictionary alloc] init]; [config setValue:[NSNumber numberWithInteger:15] forKey:NVS_RECORD_GOP_SIZE]; // 设置为1即是生成全I帧视频 [config setValue:[NSNumber numberWithInteger:10000000] forKey:NVS_RECORD_BITRATE]; // 10M bps |
- (void) stop |
停止引擎
- (void) stop: | (int) | flags |
- (void) stopRecording |
结束录制采集设备信号
- (BOOL) takePicture: | (int) | flags |
以最接近预览比例的摄像头的最大分辨率拍摄一张照片
flags | 拍照的标志,目前没有使用, 值为0 |
- (void) toggleFlash: | (BOOL) | on |
- (void) toggleFlashMode: | (NvsCameraFlashMode) | mode |
+ (BOOL) verifySdkLicenseFile: | (NSString *) | sdkLicenseFilePath |
验证SDK授权文件。注意:授权文件接口必须在NvsStreamingContext初始化之前调用。
sdkLicenseFilePath | SDK授权文件路径 |
|
readatomicassign |
包管理器
|
readwritenonatomicassign |
生成时间线配置,设置一次即一直生效。NSMutableDictionary中关键字的值请参见 生成时间线的配置 例如:NSMutableDictionary *config = [[NSMutableDictionary alloc] init]; [config setValue:[NSNumber numberWithInteger:15] forKey:NVS_COMPILE_GOP_SIZE]; // 设置为1即是生成全I帧视频 [config setValue:[NSNumber numberWithInteger:10000000] forKey:NVS_COMPILE_BITRATE]; // 10M bps [config setValue:[NSNumber numberWithInteger:256000] forKey:NVS_COMPILE_AUDIO_BITRATE]; // 设置音频码率为256Kbps [config setValue:[NSNumber numberWithBool:YES] forKey:NVS_COMPILE_LOSSLESS_AUDIO]; // 设置生成无损音频 [config setValue:[NSNumber numberWithBool:YES] forKey:NVS_COMPILE_OPTIMIZE_FOR_NETWORK_USE]; // 设置索引表前置 NvsRational videoFps = {12, 1}; [config setValue:[NSData dataWithBytes:&videoFps length:sizeof(NvsRational)] forKey:NVS_COMPILE_VIDEO_FPS]; // 设置帧速率FPS _streamingContext.compileConfigurations = config; 取消设置并恢复默认方式例如:[_streamingContext.compileConfigurations setValue:nil forKey:NVS_COMPILE_GOP_SIZE];
|
readwritenonatomicassign |
生成视频码率倍乘系数
|
readwritenonatomicassign |
默认字幕是否为淡入淡出
|
readwritenonatomicweak |
|
readwritenonatomicweak |
|
readwritenonatomicassign |
录制视频码率倍乘系数
|
readwritenonatomicweak |