移动端
WINDOWS插件接口说明
  • 关键词:WINDOWS插件接口说明,操作指南,高清摄像机DEMO操作指南
  • 资料类型:jpg
  • 上传时间:2014-07-28
  • 上传人:深圳市思创斯克电子有限公司 进入展台
  • 下载次数:1577
  • 需要积分:0

点击此处下载资料

资料简介

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是专门为该系列高清网络摄像机设计的播放文件接口程序,以动态连接库的形式

提供给应用软件,并同时附有演示程序及其源码,能有效地缩短应用软件的开发周期。

 

  • 视频预览
    1. 视频连接函数

函数名称: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”);

  1. 断开视频连接函数

函数名称:BOOL  Disconnect()

功能描述:断开视频连接

参数说明:无

        返 回 值:执行成功返回TRUE,否则返回FALSE。

  1. 抓图函数

  函数名称:BOOL CapturePicture(LPCTSTR lpszFileName)

功能描述:实现视频抓图并保存为文件。

参数说明:lpszFileName  抓图后保存的文件全路径,长度小于系统规定的MAX_PATH。

        返 回 值:执行成功返回TRUE,否则返回FALSE。

        调用范例:

       抓图保存为文件: d:test.bmp, 调用函数如下:

       CapturePicture(“d:test.bmp”);

         

  1. 录像函数

 函数名称:BOOL BeginRecord(LPCTSTR filename)

功能描述:实现录像功能

参数说明:filename录像文件保存的全路径, 长度小于系统规定的MAX_PATH 。

        返 回 值:执行成功返回TRUE,否则返回FALSE

        调用范例:

        启动录像,录像文件保存为: d:test.mkv, 调用函数如下:

        BeginRecord(“d:test.mkv”);

  1. 停止录像函数

 函数名称: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 的取值范围及调用范例:

  1. 焦距变大: lOrder = 11

调用范例:焦距以40 的速度变大,lOder = 11, lStart =1, lSpeed = 40

PtzContrl(11, 1, 40);

结束焦距变大的操作,lOder =11, lStart = 0, lSpeed = 40

PtzContrl(11, 0, 40)

  1. 焦距变小: lOrder = 12

调用范例:焦距以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)

  1. 光圈放大:lOrder = 15

调用范例:光圈以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)

  1. 云台左转: lOrder = 23

调用范例:云台以40 的速度左转,lOder = 23, lStart =1, lSpeed = 40

PtzContrl(23, 1, 40);

结束云台左转的操作,lOder =23, lStart = 0, lSpeed = 40

PtzContrl(23, 0, 40)

  1. 云台右转: lOrder = 24

调用范例:云台以40 的速度右转,lOder = 24, lStart =1, lSpeed = 40

PtzContrl(24, 1, 40);

结束云台右转的操作,lOder =24, lStart = 0, lSpeed = 40

PtzContrl(24, 0, 40)

 

  1. 云台转向右上方: lOrder = 25

调用范例:云台以40 的速度转向右上方,lOder = 25, lStart =1, lSpeed = 40

PtzContrl(25, 1, 40);

结束云台转向右上方的操作,lOder =25, lStart = 0, lSpeed = 40

PtzContrl(25, 0, 40)

  1. 云台转向右下方: lOrder = 26

调用范例:云台以40 的速度转向右下方,lOder = 26, lStart =1, lSpeed = 40

PtzContrl(26, 1, 40);

结束云台转向右下方的操作,lOder =26, lStart = 0, lSpeed = 40

PtzContrl(26, 0, 40)

 

  1. 云台转向左上方: lOrder = 27

调用范例:云台以40 的速度转向左上方,lOder = 27, lStart =1, lSpeed = 40

PtzContrl(27, 1, 40);

结束云台转向左上方的操作,lOder =27, lStart = 0, lSpeed = 40

PtzContrl(27, 0, 40)

  1. 云台转向左下方: lOrder = 28

调用范例:云台以40 的速度转向左下方,lOder = 27, lStart =1, lSpeed = 40

PtzContrl(28, 1, 40);

结束云台转向左下方的操作,lOder =28, lStart = 0, lSpeed = 40

PtzContrl(28, 0, 40)

  1. 云台左右自动扫描: lOrder = 29

调用范例:云台以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

版权与免责声明: 凡本网注明“来源:智慧城市网”的所有作品,均为浙江兴旺宝明通网络有限公司-智慧城市网合法拥有版权或有权使用的作品,未经本网授权不得转载、摘编或利用其它方式使用上述作品。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:智慧城市网www.afzhan.com”。违反上述声明者,本网将追究其相关法律责任。

本网转载并注明自其它来源(非智慧城市网www.afzhan.com)的作品,目的在于传递更多信息,并不代表本网赞同其观点或和对其真实性负责,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品第一来源,并自负版权等法律责任。

编辑精选

更多

本站精选

更多

名企推荐

更多

浙公网安备 33010602000006号