通信电缆 网络设备 无线通信 云计算|大数据 显示设备 存储设备 网络辅助设备 信号传输处理 多媒体设备 广播系统 智慧城市管理系统 其它智慧基建产品
深圳市思创斯克电子有限公司
暂无信息 |
阅读:1640发布时间:2014-07-26
WINDOWS插件接口说明
( FOR WINDOWS2000/XP/2003 2014-04-06 1.20 版)
高清网络摄像机是基于标准的H.264 Main Profile @ Level 4.1算法的百万像素网络摄像机。它采用500万像素的逐行扫描图像传感器,支持YPbPr高清模拟输出,清晰度可以达到720TVL的广播级图像画质。支持30帧/秒实时720P+Full D1双码流编码,录像文件可使用标准解码器解码,支持常用播放软件直接播放。在相同码率下具有比MPEG-4倍增的画质,在同样的画面质量下,码率仅为MPEG-4的二分之一,是新一代数字监控产品的*选择。
高清网络摄像机系列SDK 分为三部分,分别为网络控制SDK 、网络播放SDK 、播放SDK,本文档专门描述网络播放SDK的附属插件使用说明 ,其他SDK请参照我公司相关文档。播放SDK是专门为该系列高清网络摄像机设计的播放文件接口程序,以动态连接库的形式
提供给应用软件,并同时附有演示程序及其源码,能有效地缩短应用软件的开发周期。
函数名称:BOOL ConnectA(LPCTSTR szAddress, long lPort, long iChannel, long iStream, LPCTSTR szUser, LPCTSTR szPassword)
功能描述: 连接视频。在调用该函数之前可以调用SetConnectType(long lType)函数连接类型,但对于高清摄像机而言只支持TCP连接,因此在连接高清摄像机时,SetConnectType函数调用无效。
参数说明:szAddress 设备的IP地址, 长度小于64字节。
lPort 设备连接端口,整数,默认值为6002,取值范围:0~65535。
iChannel 连接通道,默认值0 。
iStream 连接的码流类型,取0或1,0代表主码流1代码从码流。
szUser 登录用户名,长度小于32字节。
szPassword 登录密码 ,长度小于32字节。
返回值: 连接成功返回TRUE,否则返回FALSE。
调用范例:
连接IP为192.168.0.10的网络摄像机,端口为6002,用户名和密码均为system,连接主码流,则调用函数如下:
ConnectA(“192.168.0.10”, 6002, 0, 0, “system”, “system”);
函数名称:BOOL Disconnect()
功能描述:断开视频连接
参数说明:无
返 回 值:执行成功返回TRUE,否则返回FALSE。
函数名称:BOOL CapturePicture(LPCTSTR lpszFileName)
功能描述:实现视频抓图并保存为文件。
参数说明:lpszFileName 抓图后保存的文件全路径,长度小于系统规定的MAX_PATH。
返 回 值:执行成功返回TRUE,否则返回FALSE。
调用范例:
抓图保存为文件: d:\\test.bmp, 调用函数如下:
CapturePicture(“d:\\test.bmp”);
函数名称:BOOL BeginRecord(LPCTSTR filename)
功能描述:实现录像功能
参数说明:filename录像文件保存的全路径, 长度小于系统规定的MAX_PATH 。
返 回 值:执行成功返回TRUE,否则返回FALSE
调用范例:
启动录像,录像文件保存为: d:\\test.mkv, 调用函数如下:
BeginRecord(“d:\\test.mkv”);
函数名称:BOOL EndRecord()
功能描述:停止录像
参数说明:无
返 回 值:执行成功返回TRUE,否则返回FALSE
二、远程搜索和回放
该功能可以通过两种方式实现,实际应用中只需选择其中的一种:
(一) 调用函数PlayFromServer( LPCTSTR szTitle, LPCTSTR szIniFileName )
功能描述:调用该函数后,将弹出一个集搜索、回放、备份为一体的窗口,用户可以在该窗口上选择搜索的时间范围、录像文件类型,并可以对搜索出来的文件进行回放和下载。
参数说明:
szTitle : 对话框窗口的标题,调用者自己任意, 长度小于32字节。
szIniFileName: 对话框所使用的语言文件全路径名称,如果是英文该文件名称为NVS_File_EN.ini 如果为中文该文件名称为NVS_File_CN.ini。长度小于系统规定的MAX_PATH。
弹出的对话框如下图:
在调用 PlayFromServer函数前必须先调用函数Login(LPCTSTR szIp, short iPort, LPCTSTR szUser, LPCTSTR szPass, BOOL bSync),该函数说明如下:
功能描述:登录设备,在进行远程文件搜索和播放前必须先调用此函数。
参数说明:
szIp: 设备IP, 长度小于64字节。
iPort: 连接端口,默认为6002, 取值范围0~65535 。
szUser: 登录用户名, 长度小于32字节。
szPass:登录密码,长度小于32字节。
bSync:是否以同步方式登录,默认值为TRUE。
返 回 值:执行成功返回TRUE,否则返回FALSE
调用范例:
搜索和回放设备192.168.0.10上的录像文件,设备端口为6002,用户名和密码均为system, 则调用过程如下:
If( Login(”192.168.0.10”, 6002, “system”, “system”, TRUE))
{
PlayFromServer(“PlayBack”, “NVS_File_CN.ini”);
}
(二) 用户自己设计搜索和回放界面,具体功能则由下列函数实现
1. 登录函数: Login(LPCTSTR szIp, short iPort, LPCTSTR szUser, LPCTSTR szPass, BOOL bSync)
功能说明:该函数在调用其他函数之前调用,实现登录的设备。
参数说明:
szIp : 设备IP地址,长度小于64字节。
iPort : 设备端口,默认为6002,取值范围0~65535
szUser: 登录用户名, 长度小于32字节。
szPass: 登录密码, 长度小于32字节。
bSync: 是否以同步方式登录,默认设置为TRUE。
调用范例见*种方式Login的调用。
2、搜索远程录像文件
函数名称:void SearchFile(LPCTSTR lpszFilter, LPCTSTR lpszDate, long dwStartTime, long dwStopTime, short iChannel)
功能描述:搜索设备上符合搜索条件的录像文件
参数说明:
lpszFilter:搜索过滤条件字符串,如 “*.*”代表搜索所有
符合条件的文件, 长度小于128字节
lpszDate:文件录像的日期,格式为:YYYY-MM-DD,月份和日期不够两位数填0补齐,如:2009-02-10; 长度小于12字节。
dwStartTime: 搜索的起始时间,单位为分钟。
dwStopTime: 搜索的结束时间,单位为分钟。
iChannel: 搜索的通道号, 默认值为0 。
返 回 值:无
使用范例:
搜索192.168.2.245设备上2009年2月10日8点10分至9点10分*通道上的所有录像文件,假设登录用户名和密码均为 system,则调用过程为:
Login(“192.168.2.245”, 6002 , “system”,”system” ,TRUE);
SearchFile(“*.*”, “2009-02-10”,8*60+10, 9*60+10, 0);
搜索完毕后,文件保存在内存中,通过调用下面的GetRecordFile函数可以获取搜索到的文件名称。
3、获取搜索到的远程录像文件名称
函数名称:GetRecordFile()
功能说明:获取搜索到的录像文件,每调用一次,返回一个文件,当返回特定的字符串”-1”时,表示文件已经获取完毕。
参数说明: 无
返 回 值:返回文件名称,长度小于系统规定的MAX_PATH。
4、播放远程文件
函数名称:short PlayRemoteFile(LPCTSTR lpszFileName)
功能描述:播放的远程文件
参数说明:lpszFileName :通过GetRecordFile函数获取的远程文件名称,长度小于系统规定的MAX_PATH。
返 回 值:播放成功返回0,否则返回其他值。
调用范例:
假如搜索出来的远程录像文件名为09-03-20_N.mkv,如果要远程播放该文件则调用过程如下:
PlayRemoteFile(“09-03-20_N.mkv”);
5、下载远程文件
函数名称:int DownLoadRemoteFile(LPCTSTR lpszServerIp, LPCTSTR lpszSearchFile, LPCTSTR lpszNewFile)
功能描述:将设备中的录像文件下载到本地,该函数一般是在搜索出远程录像文件后再调用。
参数说明:
lpszServerip: 远程设备的IP地址,长度小于64字节。
lpszSearchFile: 准备下载的文件名称(从远程设备中搜索出来的文件名), 长度小于系统规定的MAX_PATH。
lpszNewFile : 保存到本地的文件名称,长度小于系统规定的MAX_PATH。
返 回 值:成功返回0,否则返回其他值。
调用范例:
假如从192.168.0.10设备上搜索出来的录像文件名称为09-03-20_N.mkv,如果要将该文件下载到本地D盘根目录下,保存的文件名为test.mkv, 则调用过程如下:
DownLoadRemoteFile(“192.168.0.10”, “09-03-20_N.mkv”, “D:\\test.mkv”);
6、获取下载进度
函数名称:long GetDownloadProgress()
功能描述:获取下载文件的进度
返 回 值: 下载进度完成的百分比,如:返回10表示下载完成了10%
7、本地回放函数
函数名称:BOOL Play( LPCTSTR fileName )
功能描述:播放本地文件
参数说明:fileName 播放的文件的全路径, 长度小于系统规定的MAX_PATH。
返 回 值:执行成功返回TRUE,否则返回FALSE
调用范例:
回放d:\\test.mkv文件,调用函数如下:
Play(“d:\\test.mkv”);
8、暂停回放
函数名称:BOOL Pause()
功能描述:暂停正在进行的播放,再次调用将恢复播放。
参数说明:无
返 回 值:执行成功返回TRUE,否则返回FALSE
9、单帧播放
函数名称:void StepFrame(BOOL bForward)
功能描述:播放单帧
参数说明:bForward TRUE:向后一帧;FALSE:向前一帧
返 回 值:无
10、设置播放速度
函数名称:void SetPlayRate(float fRate)
功能描述:设置播放速度
参数说明:fRate : 播放速度,如果为1这为正常播放,2为2倍速,依次类推
返 回 值:无
11、重新播放函数
函数名称:void Replay()
功能描述:重新播放文件
参数说明:无
返 回 值:无
12、得到打开的文件的总帧数
函数名称:long GetTotalLength ()
功能描述:读取打开的文件的总帧数,网络播放不支持
参数说明:无
返 回 值:打开的文件总帧数
13、得到当前播放位置函数
函数名称:long GetCurrentPosition ()
功能描述:读取当前的文件播放位置,必须要底层解码支持Seek功能才可以
参数说明:无
返 回 值:播放的位置,即播放了的帧数
14、设置当前播放位置函数
函数名称:BOOL PutCurrentPosition (long newVal)
功能描述:设置当前的文件播放位置,必须要底层解码支持Seek功能才可以
参数说明:newVal新的文件位置,即需要设置到的新的帧数
返 回 值:成功TRUE,失败FALSE
三、设备参数设置
函数名称:BOOL ConfigNvs(LPCTSTR szTitle, LPCTSTR szIniFileName)
功能描述:弹出设备参数设置对话框,调用该函数前须调用Login函数
参数说明:
szTitle: 对话框显示标题,由调用者自己任意一个字符串,长度小于32字节。
sziniFileName: 语言包文件名称,如果是要显示中文界面则为NVS_File_CN.ini, 如果显示英文则为NVS_File_EN.ini,长度应小于系统规定的MAX_PATH。
返回值:调用成功返回TRUE,否则返回FALSE。
调用范例:
如果需要对192.168.0.10设备进行远程参数设置,用户名和密码均为system,登录端口为6002,则调用过程如下:
If( Login(“192.168.0.10”, 6002 , “system”,”system” ,TRUE) )
{
ConfigNvs(“IPCSet”, “NVS_File_CN.ini”);
}
四、云台控制
函数名称::PtzContrl(long lOrder, long lStart, long lSpeed)
功能描述: 发送云台控制命令
参数说明: lOrder: 命令; lStart: 控制方式,0表示关闭,1表示启用; lSpeed :云台速度, 范围为1~255
返 回 值: 发送成功返回TRUE,否则返回FALSE
lOrder 的取值范围及调用范例:
调用范例:焦距以40 的速度变大,lOder = 11, lStart =1, lSpeed = 40
PtzContrl(11, 1, 40);
结束焦距变大的操作,lOder =11, lStart = 0, lSpeed = 40
PtzContrl(11, 0, 40)
调用范例:焦距以40 的速度变小,lOder = 12, lStart =1, lSpeed = 40
PtzContrl(12, 1, 40);
结束焦距变小的操作,lOder =12, lStart = 0, lSpeed = 40
PtzContrl(12, 0, 40)
(3) 焦点前调:lOrder = 13
调用范例:焦点以40 的速度前调,lOder = 13, lStart =1, lSpeed = 40
PtzContrl(13, 1, 40);
结束焦点前调的操作,lOder =13, lStart = 0, lSpeed = 40
PtzContrl(13, 0, 40)
(4) 焦点后调:lOrder = 14
调用范例:焦点以40 的速度后调,lOder = 14, lStart =1, lSpeed = 40
PtzContrl(14, 1, 40);
结束焦点后调的操作,lOder =14, lStart = 0, lSpeed = 40
PtzContrl(14, 0, 40)
调用范例:光圈以40 的速度放大,lOder = 15, lStart =1, lSpeed = 40
PtzContrl(15, 1, 40);
结束光圈放大的操作,lOder =15, lStart = 0, lSpeed = 40
PtzContrl(15, 0, 40)
(6) 光圈缩小:lOrder = 16
调用范例:光圈以40 的速度缩小,lOder = 16, lStart =1, lSpeed = 40
PtzContrl(16, 1, 40);
结束光圈缩小的操作,lOder =16, lStart = 0, lSpeed = 40
PtzContrl(16, 0, 40)
(7) 云台上仰: :lOrder = 21
调用范例:云台以40 的速度上仰,lOder = 21, lStart =1, lSpeed = 40
PtzContrl(21, 1, 40);
结束云台上仰的操作,lOder =21, lStart = 0, lSpeed = 40
PtzContrl(21, 0, 40)
(8) 云台下俯: :lOrder = 22
调用范例:云台以40 的速度下俯,lOder = 22, lStart =1, lSpeed = 40
PtzContrl(22, 1, 40);
结束云台下俯的操作,lOder =22, lStart = 0, lSpeed = 40
PtzContrl(22, 0, 40)
调用范例:云台以40 的速度左转,lOder = 23, lStart =1, lSpeed = 40
PtzContrl(23, 1, 40);
结束云台左转的操作,lOder =23, lStart = 0, lSpeed = 40
PtzContrl(23, 0, 40)
调用范例:云台以40 的速度右转,lOder = 24, lStart =1, lSpeed = 40
PtzContrl(24, 1, 40);
结束云台右转的操作,lOder =24, lStart = 0, lSpeed = 40
PtzContrl(24, 0, 40)
调用范例:云台以40 的速度转向右上方,lOder = 25, lStart =1, lSpeed = 40
PtzContrl(25, 1, 40);
结束云台转向右上方的操作,lOder =25, lStart = 0, lSpeed = 40
PtzContrl(25, 0, 40)
调用范例:云台以40 的速度转向右下方,lOder = 26, lStart =1, lSpeed = 40
PtzContrl(26, 1, 40);
结束云台转向右下方的操作,lOder =26, lStart = 0, lSpeed = 40
PtzContrl(26, 0, 40)
调用范例:云台以40 的速度转向左上方,lOder = 27, lStart =1, lSpeed = 40
PtzContrl(27, 1, 40);
结束云台转向左上方的操作,lOder =27, lStart = 0, lSpeed = 40
PtzContrl(27, 0, 40)
调用范例:云台以40 的速度转向左下方,lOder = 27, lStart =1, lSpeed = 40
PtzContrl(28, 1, 40);
结束云台转向左下方的操作,lOder =28, lStart = 0, lSpeed = 40
PtzContrl(28, 0, 40)
调用范例:云台以40 的速度左右自动扫描,lOder = 29, lStart =1, lSpeed = 40
PtzContrl(29, 1, 40);
结束云台左右自动扫描的操作,lOder =29, lStart = 0, lSpeed = 40
PtzContrl(29, 0, 40)
更详细的云台控制命令定义如下:
#define PTZ_REALTRANS 0 /* 透明云台数据传输 */
#define PTZ_LIGHT_PWRON 2 /* 接通灯光电源 */
#define PTZ_WIPER_PWRON 3 /* 接通雨刷开关 */
#define PTZ_FAN_PWRON 4 /* 接通风扇开关 */
#define PTZ_HEATER_PWRON 5 /* 接通加热器开关 */
#define PTZ_AUX_PWRON 6 /* 接通辅助设备开关 */
#define PTZ_ZOOM_IN 11 /* 焦距以速度SS变大(倍率变大) */
#define PTZ_ZOOM_OUT 12 /* 焦距以速度SS变小(倍率变小) */
#define PTZ_FOCUS_NEAR 13 /* 焦点以速度SS前调 */
#define PTZ_FOCUS_FAR 14 /* 焦点以速度SS后调 */
#define PTZ_IRIS_ENLARGE 15 /* 光圈以速度SS扩大 */
#define PTZ_IRIS_SHRINK 16 /* 光圈以速度SS缩小 */
#define PTZ_UP 21 /* 云台以SS的速度上仰 */
#define PTZ_DOWN 22 /* 云台以SS的速度下俯 */
#define PTZ_LEFT 23 /* 云台以SS的速度左转 */
#define PTZ_RIGHT 24 /* 云台以SS的速度右转 */
#define PTZ_RIGHTUP 25 /* 云台以SS的速度右上仰 */
#define PTZ_RIGHTDOWN 26 /* 云台以SS的速度右下仰 */
#define PTZ_LEFTUP 27 /* 云台以SS的速度左上仰 */
#define PTZ_LEFTDOWN 28 /* 云台以SS的速度左下仰 */
#define PTZ_AUTO 29 /* 云台以SS的速度左右自动扫描 */
#define PTZ_485INPUT 31 /* 485接收数据输入 */
#define PTZ_485OUTPUT 32 /* 485发送数据输出 */
#define PTZ_SET_PRESET 100 /* 设置预置点 */
#define PTZ_CLE_PRESET 101 /* 清除预置点 */
#define PTZ_GOTO_PRESET 102 /* 转到预置点*/
#define PTZ_STARTREC_TRACK 110 /* 开始录制轨迹 */
#define PTZ_STOPREC_TRACK 111 /*停止录制轨迹 */
#define PTZ_STARTRUN_TRACK 112 /*运行轨迹*/
#define PTZ_STOPRUN_TRACK 113 /*停止轨迹*/
#define PTZ_STARTREC_CRUISE 120 /*开始录制巡航*/
#define PTZ_STOPREC_CRUISE 121 /*停止录制巡航*/
#define PTZ_STARTRUN_CRUISE 122 /*运行巡航*/
#define PTZ_STOPRUN_CRUISE 123 /*停止巡航*/
五、透明传输接口
以下三个函数均可实现透明传输
1. PtzCommand(LPCTSTR lpszptz, long bytenum)
2. PtzCommandEx(LPCTSTR lpszptz, long bytenum)
3. PtzCommandEx1(LPCTSTR lpszptz, long bytenum)
参数说明:
lpszptz : 传输的缓冲
bytenum : 缓冲长度(以字节为单位)
六、云台控制开关
函数名称::PtzOpen(long iChannel)
功能描述:主动打开云台控制
参数说明:iChannel:为打开的通道号,0-*通道,1-第二通道
返 回 值:成功返回TRUE,否则返回FALSE
函数名称::PtzClose()
功能描述:主动关闭云台控制
参数说明:无
返 回 值:成功返回TRUE,否则返回FALSE
智慧城市网 设计制作,未经允许翻录必究 .
请输入账号
请输入密码
请输验证码
请输入你感兴趣的产品
请简单描述您的需求
请选择省份