NV7000SDK文档格式.docx
《NV7000SDK文档格式.docx》由会员分享,可在线阅读,更多相关《NV7000SDK文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
5.intWINAPIGetTotalChannels();
获取系统内可使用的通道个数,如果返回小于系统中安装的通道数,表明有一DSP初始化失败;
6.intWINAPIGetTotalDSPs();
获取系统内正确安装的DSP个数,如果返回小于系统中安装的通道数,表明有一DSP初始化失败;
7.intWINAPIStartVideoPreview(HANDLEhChannelHandle,HWNDWndHandle,RECT*rect,
BOOLEANbOverlay,intVideoFormat,intFrameRate);
HANDLEhChannelHandle,通道句柄
HWNDWndHandle,窗口句柄
RECT*rect,窗口内的矩型区域
BOOLEANbOverlay,保留
intVideoFormat,保留
intFrameRate,保留
启动视频预览;
开始视频预览时,预览窗口背景色必须为RGB(255,0,255),详细见SDKDemo
正确为0;
8.intWINAPIStopVideoPreview(HANDLEhChannelHandle)
HANDLEhChannelInfo,通道句柄
停止视频预览;
9.intWINAPIUpdateOvelayWnd(HWNDhOverlayWnd);
hOevrlayWnd为视频预览的Overlay窗口;
更新overlay窗口,当overlay窗口句柄改变或尺寸,位置改变时调用,overlay窗口就是包含多路显示小窗口的大窗口。
overlay窗口必须有一个,多路显示小窗口必须包含再其内部。
10.intWINAPISetVideoPara(HANDLEhChannelHandle,COLORCONTROLenCtlType,DWORDdwValue);
//oldintWINAPISetVideoPara(HANDLEhChannelHandle,intBrightness,intContrast,//intSaturation,intHue)
HANDLEhChannelHandle,通道句柄
typedefenum{//@enumDecodercontroltypes
BRIGHTNESS=0,//亮度值
CONTRAST=1,//对比度
SATURATION=2,//饱和度
HUE=3,//色调
SHARPNESS=4//锐度
}COLORCONTROL;
intBrightness,亮度值(0—255)
intContrast,对比度(-128—127)
intSaturation,饱和度(-128—127)
intHue色调(-128—127)
intsharpness锐度(-8—7)
设置视频参数;
11.intWINAPIGetVideoPara(HANDLEhChannelHandle,int*Brightness,int*Contrast,int*Saturation,int*Hue);
//保留接口
HANDLEhChannelHandle,窗口句柄
int*Brightness,亮度指针值(0—255)
int*Contrast,对比度指针值(0—255)
int*Saturation,饱和度指针值(0—255)
int*Hue色调指针值(0—255)
得到视频参数;
12.intWINAPIGetVideoSignal(HANDLEhChannelHandle);
获得接入视频信号情况,用于视频丢失报警。
返回0时表明视频信号正常,否则有错误;
13.intWINAPIStartVideoCapture(HANDLEhChannelHandle,CAPMODELenCapMode=CAP_MPEG4_STREAM);
//oldintWINAPIStartVideoCapture(HANDLEhChannelHandle);
typedefenum
{
CAP_NULL_STREAM=0,//捕获无效
CAP_ORIGIN_STREAM=1,//原始流回调
CAP_MPEG4_STREAM=2,//MicrosoftMPEG-4VideoCodecV1
CAP_MPEG4_XVID_STREAM=3,//XVIDMPEG-4VideoCodec
CAP_MPE43_STREAM=4,//MicrosoftMPEG-4VideoCodecV3
CAP_MPE42_STREAM=5//MicrosoftMPEG-4VideoCodecV2
}CAPMODEL
使用回调函数来读取数据流;
启动数据截取。
14.intWINAPIStopVideoCapture(HANDLEhChannelHandle);
停止数据截取;
15.intWINAPIRegisterStreamReadCallback(HANDLEhChannelHandle,STREAM_READ_CALLBACKStreamReadCallback);
STREAM_READ_CALLBACKStreamReadCallback,数据流准备好时会调用该函数
typedefint(*STREAM_READ_CALLBACK)(ULONGchannelNumber,UCHAR*pStreamBuffer,
DWORDLength,intFrameType);
设置应用程序获得数据的回调函数;
16.intWINAPIReadStreamData(HANDLEhChannelHandle,void*DataBuf,DWORD*Length,int*FrameType);
//保留
HANDLEhChannelHandle,通道句柄
void*DataBuf,自定义的数据缓存区
DWORD*Length,输入:
缓冲的大小,输出:
一帧数据的长度
Int*FrameType,帧类型
读指定长度的数据流,当调用StartVideoCapture或StartMotionDetection
后,SDK线程会向已注册的用户窗口消息处理函数发送指定的消息,并提供消息
来源的通道号。
当用户程序收到该消息时,可调用本函数来读取数据,Length
在作为输入时必须提供缓冲的大小,ReadStreamData会判断缓冲是否足够,如
果缓冲足够大,则返回值为当前的读取的帧长度,否则返回错误;
17.HAVIWINAPICreateAVIFile(HANDLEhChannelHandle,char*FileName);
char*FileName,文件名
返回指定通道的文件句柄,单个通道可得到多个文件句柄用来在同一通道上记录多个录像文件;
成功返回文件句柄不成功返回NULL;
18.intWINAPIWriteFrameToAVIFile(HAVIhAviHandle,UCHAR*lpData,DWORDLength,intnFrameType);
HAVIhAviHandle,文件句柄
UCHAR*lpData,存放帧数据指针
DWORDLength,帧数据的长度
intnFrameType,帧的类型
读到帧数据后可以调用这个接口写文件注意此接口参数为文件句柄由CreateAVIFile返回;
成功返回0;
19.intWINAPICloseAVIFile(HAVIhAviHandle);
关闭指定的AVI文件注意此接口参数为文件句柄由CreateAVIFile返回;
成功返回0;
20.intWINAPISetVideoStandard(HANDLEhChannelHandle,UCHARVideoStandard);
//保留,自适应视频信号制式
HANDLEhDeviceHandle,通道句柄
UCHARVideoStandard,视频标准其定义如下:
#defineVIDEO_TYPE_NTSC0//NTSC制式
#defineVIDEO_TYPE_PAL1//PAL制式
设置输入视频信号制式PAL或NTSC制式,IME6400卡4个通道需设置相同的视频信号制式;
21.intWINAPISetEncodePictureType(HANDLEhChannelHandle,BYTEPicEncodeType);
//保留
BYTEPicEncodeType,帧类型见如下宏定义:
#definePICENCODETYPE_IP0x0//I-P帧码流包含I帧和P帧
#definePICENCODETYPE_I0x1//Ionly码流中只有I帧
设置编码帧类型,NV6000卡4个通道需设置相同的帧类型;
22.intWINAPISetIBPMode(HANDLEhChannelHandle,intKeyFrameIntervals,intBFrames,intPFrames,
intFrameRate,
BOOLbFrameRateReduction);
intKeyFrameIntervals,关键帧间隔
intBFrames,保留
intPFrames,保留
intFrameRate,帧率
BOOLbFrameRateReduction,设置视频捕获频率,默认为FALSE;
设置关键帧(I帧)间隔和帧率,返回:
注:
关键帧间隔解释:
关键帧为编码码流中采用帧内压缩的图像帧其特点是图像清晰度好但数据量大通常作为帧间编码的原始参考帧,关键帧间隔是连续的帧间编码的帧个数,因MPEG-4编码是有损压缩,关键帧的个数会影响图像质量,因此关键帧的间隔需要合理设置。
23.intWINAPISetBitrateControlMode(HANDLEhChannelHandle,intnBitMode);
intnBitMode,码率类型,见如下宏定义:
#defineBITRATE_CTL_MODE_VBR0//变码率
#defineBITRATE_CTL_MODE_CBR1//定码率
#defineBITRATE_CTL_MODE_HVBR2//可设上下限的变码率
设置码率的类型;
24.intWINAPISetXVIDQuality(HANDLEhChannelHandle,DWORDdwQuantizer,DWORDdwMotionPrecision);
//intWINAPISetDefaultQuant(HANDLEhChannelHandle,intIQuantVal,intPQuantVal,intBQuantVal);
保留,MicrosoftMPEG4CodecV1,V2,V3只能设置恒定码流,不能设置量化系数;
DWORDdwQuantizer:
1~31量化系数
DWORDdwMotionPrecision:
XVID编码运动精度0~6(0为最小运动精度)
intIQuantVal,量化系数(1–31)
intPQuantVal,保留
intBquantVal,保留
设置图像量化系数,系数越小图像质量越好建议设置在3-10之间;
25.intWINAPISetupBitrateControl(HANDLEhChannelHandle,ULONGMaxBps);
ULONGMaxBps,恒定码率值
设置恒定码率值;
26.intWINAPISetHybridBitRate(HANDLEhChannelHandle,DWORDdwLBitRate,DWORDdwHBitRate);
DWORDdwLBitRate,下限值KBPS
DWORDdwHBitRate,上限值KBPS
设置HVBR的码流码率范围,只有设置码率类型SetBitrateControlMode为BITRATE_CTL_MODE_HVBR
方式后才可以进行码率码流范围设置;
27.intWINAPISetXVIDCompressMode(HANDLEhChannelHandle,COMPRESSMODEenCompessMode);
SINGLE_PASS_MODE=0,//CBR恒定码流
PASS1_MODE=1,//VBR可变码流
}COMPRESSMODE;
//编码模式
设置恒定或可变码流编码;
28.intWINAPISetStreamType(HANDLEhChannelHandle,USHORTType);
USHORTType,流类型其定义如下:
#defineENCODINGTYPE_VIDEO0x01//视频流
#defineENCODINGTYPE_SYSTEM0x03//系统流包含音频和视频
设置编码流类型;
29.intWINAPIGetStreamType(HANDLEhChannelHandle,USHORT*StreamType);
USHORT*StreamType,流类型
获得编码流类型;
30.intWINAPISetVidCapSize(HANDLEhChannelHandle,DWORDdwWidth,DWORDdwHeight);
DWORDdwWidth,宽度
DWORDdwHeight,高度
设置编码的图像尺寸;
31.intWINAPIGetOriginalImage(HANDLEhChannelHandle,UCHAR*ImageBuf,ULONG*Size);
HANDLEhChannelHandle,通道句柄
UCHAR*ImageBuf,原始图像指针
ULONG*Size,原始图像大小(注:
调用前是imagebuf的大小,调用后是实际图像所使用的字节数)
获得原始图像数据;
32.intWINAPISaveYUVToBmpFile(char*FileName,unsignedchar*yuv,ULONGSize);
char*FileName,BMP文件名
unsignedchar*yuv,原始图像数据指针
ULONGSize,获得的原始图像的大小
将由GetOriginalImage获得的原始图像数据保存为BMP文件;
intWINAPISaveToJpegFile(HANDLEhChannelHandle,LPCTSTRlpFileName,DWORDdwQuality);
HANDLEhChannelHandle,通道句柄
LPCTSTRlpFileName,Jpeg文件名
DWORDdwQuality,Jpeg文件图像质量(default=80)
获取图像数据保存为Jpeg文件;
intWINAPISaveToBmpFile(HANDLEhChannelHandle,char*FileName);
char*FileName,BMP文件名
获取图像数据保存为BMP文件;
33.intWINAPISetPreviewOsdLogoDisplayMode(HANDLEhChannelHandle,OSD_LOGO_PARA*osd_logo);
OSD_LOGO_PARA*osd_logo,指向osdlogo参数结构指针其定义如下:
typedefstruct{
BOOLshow_date;
//是否显示日期时间
USHORTdate_x;
//日期时间X坐标
USHORTdate_y;
//日期时间Y坐标
BOOLshow_channel;
//是否显示通道字符串
USHORTchannel_x;
//通道字符串X坐标
USHORTchannel_y;
//通道字符串Y坐标
BYTEch_tag[10];
//通道字符串最长10个字符
BOOLshow_logo;
//是否显示LOGO
USHORTlogo_x;
//LOGO的X坐标
USHORTlogo_y;
//LOGO的Y坐标
USHORTfont_height;
//字体高度>
=0
USHORTfont_width;
//字体宽度>
DWORDfont_mode;
//字体模式保留
DWORDfont_color;
//字体颜色RGB值其定义见wingdi.h
}OSD_LOGO_PARA,*POSD_LOGO_PARA;
设置预览OSDLOGO显示模式;
34.intWINAPISetOsdLogoDisplayMode(HANDLEhChannelHandle,OSD_LOGO_PARAosd_logo);
OSD_LOGO_PARA*osd_logo,指向osdlogo参数结构指针其定义同上
设置录像OSDLOGO显示模式;
35.intWINAPIStartMotionDetection(HANDLEhChannelHandle);
启动运动检测,运动检测信息会通过数据回调函数传送,用户程序发现是PktMotionDetection帧类型时,直接处理运动检测信息
36.intWINAPIStopMotionDetection(HANDLEhChannelHandle);
停止运动检测;
37.intWINAPIAdjustMotionDetectionPrecision(HANDLEhChannelHandle,intiGrade);
HANDLEhChannelHandle,通道句柄intiGrade,运动分析灵敏度(0-63)
设置运动检测灵敏度,值越小越灵敏;
38.intWINAPIMotionAnalyzer(HANDLEhChannelHandle,char*MotionData,int*iResult);
char*MotionData,指向运动监测帧数据的地址
int*iResult,指向运动检测分析结果是一个数组大小由SetupMotionDetection的
numberOfAreas指定如果某数组单元的值为0