海康SDK包可以从海康的官网上下载到。

海康SDK可用于开发海康相机,海康DVR等,主要分两块,取码流模块,解码模块;大华的SDK跟海康的类似。

1 取码流模块。

主要函数解释如下:

// 打开
NET_DVR_Init :初始化SDK,初始化SOCKET等。
NET_DVR_Login_V30 :登陆,建立业务链路。
NET_DVR_SetAudioMode:设置声卡模式,是独占,还是共享。
NET_DVR_RealPlay:开始点播视频。
NET_DVR_OpenSoundShare:共享模式下开启声音。
NET_DVR_SetRealDataCallBack:设置码流回调,在回调函数里就能得到码流。

NET_DVR_SetStandardDataCallBack用于捕获实时码流数据(标准码流)。回调的第一个包是40个字节的文件头,供后续解码使用,之后回调的是标准码流(含12字节的RTP头)。此函数目前仅支持对于支持RTSP协议取流的设备的标准码流回调。
NET_DVR_GetDVRConfig:登陆以后可以获取设备的配置信息。
//关闭
NET_DVR_StopRealPlay:关闭视频点播。
NET_DVR_Logout_V30:退出登陆。
NET_DVR_Cleanup:反初始化。
NET_DVR_GetLastError:得到错误号。

2 解码模块

解码后的分辨率主要为yuv420,yv12.

主要函数的解码如下:

PlayM4_GetPort:获取未使用的通道号,起始位101,上限为500,估计是支持同时解码400路。
PlayM4_SetStreamOpenMode:设置流播放模式。有流模式(会尽量保证实时性,防止数据阻塞,而且数据检查严格),文件模式(跟流模式相反)。
PlayM4_FreePort:释放已使用的通道号。
PlayM4_CloseStream:关闭流,估计是释放为解码准备的BUF。
PlayM4_SetDecCallBack:设置解码后的回调。
PlayM4_Play:开始解码。
PlayM4_PlaySoundShare:以共享方式打开声音。
PlayM4_InputData:输入数据。
AnalyzeDataInputData:分析码流根式。
PlayM4_Stop:停止解码。
PlayM4_CloseStream:关闭流,估计是释放BUF。
PlayM4_StopSoundShare:关闭声音。

3 调用DEMO 

参见海康SDK的DEMO。

4遇到的问题

1.录像有音频,但解码后没有音频回调。
答:
可能1:确保配置成音视频混合。
可能2: PlayM4_PlaySoundShare(lPort); PlayM4_Play(lPort, NULL);改成: PlayM4_Play(lPort, NULL);PlayM4_PlaySoundShare(lPort);
2.用解码前回调录的视频,解码后有跳帧。
答:解码前加上  PlayM4_CheckDiscontinuousFrameNum(m_nChannelID,FALSE);
3.PlayM4_InputData()之后出现错误“buffer is overflow”。
答:设置的buf过小,PlayM4_OpenStream设置BUF的大小改成6*1024*1024。

4.时间戳是什么时候打的?

答:实时流,解码前数据可能是多包,打时间戳不合适,解码后的时间戳是数据编码时的时间戳;如果是录像,解码后的时间戳是打的相对时间戳。

附:

/*******************海康全局错误码 begin**********************/ 
#define NET_DVR_NOERROR      0 //没有错误
#define NET_DVR_PASSWORD_ERROR     1 //用户名密码错误
#define NET_DVR_NOENOUGHPRI     2 //权限不足
#define NET_DVR_NOINIT       3 //没有初始化
#define NET_DVR_CHANNEL_ERROR     4 //通道号错误,比如输入-1通道
#define NET_DVR_OVER_MAXLINK     5 //连接到DVR的客户端个数超过最大
#define NET_DVR_VERSIONNOMATCH    6 //版本不匹配
#define NET_DVR_NETWORK_FAIL_CONNECT  7 //连接服务器失败
#define NET_DVR_NETWORK_SEND_ERROR   8 //向服务器发送失败
#define NET_DVR_NETWORK_RECV_ERROR   9 //从服务器接收数据失败
#define NET_DVR_NETWORK_RECV_TIMEOUT  10 //从服务器接收数据超时
#define NET_DVR_NETWORK_ERRORDATA   11 //传送的数据有误
#define NET_DVR_ORDER_ERROR     12 //调用次序错误
#define NET_DVR_OPERNOPERMIT    13 //无此权限
#define NET_DVR_COMMANDTIMEOUT    14 //DVR命令执行超时
#define NET_DVR_ERRORSERIALPORT    15 //串口号错误
#define NET_DVR_ERRORALARMPORT    16 //报警端口错误
#define NET_DVR_PARAMETER_ERROR    17  //参数错误
#define NET_DVR_CHAN_EXCEPTION    18 //服务器通道处于错误状态
#define NET_DVR_NODISK      19 //没有硬盘
#define NET_DVR_ERRORDISKNUM    20 //硬盘号错误
#define NET_DVR_DISK_FULL     21 //服务器硬盘满
#define NET_DVR_DISK_ERROR     22 //服务器硬盘出错
#define NET_DVR_NOSUPPORT     23 //服务器不支持
#define NET_DVR_BUSY      24 //服务器忙
#define NET_DVR_MODIFY_FAIL     25 //服务器修改不成功
#define NET_DVR_PASSWORD_FORMAT_ERROR  26 //密码输入格式不正确
#define NET_DVR_DISK_FORMATING    27 //硬盘正在格式化,不能启动操作
#define NET_DVR_DVRNORESOURCE    28 //DVR资源不足
#define NET_DVR_DVROPRATEFAILED    29  //DVR操作失败
#define NET_DVR_OPENHOSTSOUND_FAIL    30  //打开PC声音失败
#define NET_DVR_DVRVOICEOPENED     31  //服务器语音对讲被占用
#define NET_DVR_TIMEINPUTERROR    32  //时间输入不正确
#define NET_DVR_NOSPECFILE     33  //回放时服务器没有指定的文件
#define NET_DVR_CREATEFILE_ERROR   34 //创建文件出错
#define NET_DVR_FILEOPENFAIL    35  //打开文件出错
#define NET_DVR_OPERNOTFINISH    36  //上次的操作还没有完成
#define NET_DVR_GETPLAYTIMEFAIL    37  //获取当前播放的时间出错
#define NET_DVR_PLAYFAIL     38  //播放出错
#define NET_DVR_FILEFORMAT_ERROR   39  //文件格式不正确
#define NET_DVR_DIR_ERROR     40 //路径错误
#define NET_DVR_ALLOC_RESOURCE_ERROR  41  //资源分配错误
#define NET_DVR_AUDIO_MODE_ERROR   42 //声卡模式错误
#define NET_DVR_NOENOUGH_BUF    43 //缓冲区太小
#define NET_DVR_CREATESOCKET_ERROR    44 //创建SOCKET出错
#define NET_DVR_SETSOCKET_ERROR    45 //设置SOCKET出错
#define NET_DVR_MAX_NUM      46 //个数达到最大
#define NET_DVR_USERNOTEXIST    47 //用户不存在
#define NET_DVR_WRITEFLASHERROR    48  //写FLASH出错
#define NET_DVR_UPGRADEFAIL     49  //DVR升级失败
#define NET_DVR_CARDHAVEINIT    50  //解码卡已经初始化过
#define NET_DVR_PLAYERFAILED    51 //调用播放库中某个函数失败
#define NET_DVR_MAX_USERNUM     52  //设备端用户数达到最大
#define NET_DVR_GETLOCALIPANDMACFAIL  53  //获得客户端的IP地址或物理地址失败
#define NET_DVR_NOENCODEING     54 //该通道没有编码
#define NET_DVR_IPMISMATCH     55 //IP地址不匹配
#define NET_DVR_MACMISMATCH     56 //MAC地址不匹配
#define NET_DVR_UPGRADELANGMISMATCH   57 //升级文件语言不匹配
#define NET_DVR_MAX_PLAYERPORT    58 //播放器路数达到最大
#define NET_DVR_NOSPACEBACKUP    59 //备份设备中没有足够空间进行备份
#define NET_DVR_NODEVICEBACKUP    60 //没有找到指定的备份设备
#define NET_DVR_PICTURE_BITS_ERROR   61 //图像素位数不符,限24色
#define NET_DVR_PICTURE_DIMENSION_ERROR  62 //图片高*宽超限, 限128*256
#define NET_DVR_PICTURE_SIZ_ERROR   63 //图片大小超限,限100K
#define NET_DVR_LOADPLAYERSDKFAILED   64 //载入当前目录下Player Sdk出错
#define NET_DVR_LOADPLAYERSDKPROC_ERROR  65 //找不到Player Sdk中某个函数入口
#define NET_DVR_LOADDSSDKFAILED    66 //载入当前目录下DSsdk出错
#define NET_DVR_LOADDSSDKPROC_ERROR      67 //找不到DsSdk中某个函数入口
#define NET_DVR_DSSDK_ERROR     68 //调用硬解码库DsSdk中某个函数失败
#define NET_DVR_VOICEMONOPOLIZE    69 //声卡被独占
#define NET_DVR_JOINMULTICASTFAILED   70 //加入多播组失败
#define NET_DVR_CREATEDIR_ERROR    71 //建立日志文件目录失败
#define NET_DVR_BINDSOCKET_ERROR   72 //绑定套接字失败
#define NET_DVR_SOCKETCLOSE_ERROR   73 //socket连接中断,此错误通常是由于连接中断或目的地不可达
#define NET_DVR_USERID_ISUSING       74 //注销时用户ID正在进行某操作
#define NET_DVR_SOCKETLISTEN_ERROR   75 //监听失败
#define NET_DVR_PROGRAM_EXCEPTION   76 //程序异常
#define NET_DVR_WRITEFILE_FAILED   77 //写文件失败
#define NET_DVR_FORMAT_READONLY    78  //禁止格式化只读硬盘
#define NET_DVR_WITHSAMEUSERNAME      79  //用户配置结构中存在相同的用户名
#define NET_DVR_DEVICETYPE_ERROR            80  /*导入参数时设备型号不匹配*/
#define NET_DVR_LANGUAGE_ERROR              81  /*导入参数时语言不匹配*/
#define NET_DVR_PARAVERSION_ERROR           82  /*导入参数时软件版本不匹配*/
#define NET_DVR_IPCHAN_NOTALIVE             83  /*预览时外接IP通道不在线*/
#define NET_DVR_RTSP_SDK_ERROR    84 /*加载高清IPC通讯库StreamTransClient.dll失败*/
#define NET_DVR_CONVERT_SDK_ERROR   85 /*加载转码库失败*/
#define NET_DVR_IPC_COUNT_OVERFLOW   86  /*超出最大的ip接入通道数*/
#define NET_DVR_MAX_ADD_NUM                 87  /*添加标签(一个文件片段64)等个数达到最大*/
#define NET_DVR_PARAMMODE_ERROR             88 //图像增强仪,参数模式错误(用于硬件设置时,客户端进行软件设置时错误值)
#define NET_DVR_CODESPITTER_OFFLINE   89 //视频综合平台,码分器不在线
#define NET_DVR_BACKUP_COPYING    90  //设备正在备份
#define NET_DVR_CHAN_NOTSUPPORT             91  // 通道不支持该操作
#define NET_DVR_CALLINEINVALID              92  // 高度线位置太集中或长度线不够倾斜
#define NET_DVR_CALCANCELCONFLICT           93  // 取消标定冲突,如果设置了规则及全局的实际大小尺寸过滤
#define NET_DVR_CALPOINTOUTRANGE            94  // 标定点超出范围
#define NET_DVR_FILTERRECTINVALID           95  // 尺寸过滤器不符合要求
#define NET_DVR_DDNS_DEVOFFLINE             96  //设备没有注册到ddns上
#define NET_DVR_DDNS_INTER_ERROR            97  //DDNS 服务器内部错误
#define NET_DVR_ALIAS_DUPLICATE    150 //别名重复  //2011-08-31 通过别名或者序列号来访问设备的新版本ddns的配置

设备sdk--海康,大华SDK相关推荐

  1. 海康/大华SDK视频智能分析安防监控系统EasyCVR集成iframe播放分屏出现滚动条原因排查

    TSINGSEE青犀视频开发的视频平台都是支持集成的,尤其是EasyGBS.EasyCVR这样的平台,由于其协议的特性,非常适合在点位比较多且分散的场景下部署以及集成到现有平台当中. 有个建筑工地项目 ...

  2. LiveVISGAT1400视图库服务-支持海康大华华为宇视天地伟业等设备视图库接入使用说明

    LiveVISGAT1400视图库服务-支持海康大华华为宇视天地伟业等设备视图库接入使用说明 LiveVIS GAT1400视图库服务安装使用说明 1.服务说明 1.1.安装包说明 1.2.视图库服务 ...

  3. LiveGBS国标GB/T28181流媒体平台接入GB28181设备作为下级支持级联到共享到海康大华宇视等第三方国标平台支持对接政务公安内网国标视频平台

    LiveGBS国标GB/T28181流媒体平台接入GB28181设备作为下级支持级联到共享到海康大华宇视等第三方国标平台支持对接政务公安内网国标视频平台 1.什么是GB/T28181级联 2.搭建GB ...

  4. LiveGBS流媒体平台GB/T28181常见问题-海康大华宇视华为NVR摄像头无法注册到国标平台看不到设备的时候如何抓包及排查

    LiveGBS常见问题-海康大华宇视华为NVR摄像头无法注册到平台国标平台看不到设备的时候如何抓包及排查 1.设备注册后查看不到 1.1.防火墙排查 1.2.端口排查 1.3.IP地址排查 1.4.设 ...

  5. LiveGBS流媒体平台GB/T28181功能-作为上级平台对接海康大华华为宇视等下级平台监控摄像机NVR硬件执法仪等GB28181设备

    LiveGBS作为上级平台对接海康大华华为宇视等下级平台监控摄像机NVR硬件执法仪等GB28181设备 1.背景说明 2.部署国标平台 2.1.安装使用说明 2.2.服务器网络环境 2.3.信令服务配 ...

  6. 安防RTSP协议摄像头实现WEB端无插件直播流媒体服务EasyNVR实现海康大华宇视摄像头网页播放的方法

    背景分析:微信直播的兴起 进入移动互联网时代以来,企业微信公众号已成为除官网以外非常重要的宣传渠道,当3.2亿直播用户与9亿微信用户的势能累加,在微信上开启直播已成为越来越多企业的必然选择. Easy ...

  7. java接口方式调用海康大华摄像机预览。

    客户有海康和大华的监控设备,没有买各类安防平台,国标方式需要预留给其他需要接入的系统,得兼容高版本chrome,询问了大华的客服人员,最后选择了该方案进行解决,记录下曲折的过程.延迟大约10秒的样子, ...

  8. 海康大华等安防摄像机采用通用RTSP协议流转RTMP推送至Web无插件播放展示的流程方法

    行业现状 中国互联网化的进程已经越来越快了,各个行业都在进行着互联网化的改造,流媒体.音视频,作为跑在互联网上最大量级的数据类型,其从编码方式到传输协议到终端兼容都成为各家标准抢占的高点,RTMP.H ...

  9. 基于activex插件的海康大华网页版的播放(一)

    研一下学期开学一个月内,完成了海康大华网页版的播放器,其实就是在web端调用基于activex控件做的MFC插件.先看一下效果图: 项目需求:做一个网页版的能够播放海康.大华等通用设备的实时流的播放器 ...

  10. LiveGBS流媒体平台国标GB/T28181作为下级支持国标级联海康大华宇视华为等第三方国标平台支持对接政务公安内网国标视频平台

    LiveGBS流媒体平台国标GB/T28181作为下级支持国标级联海康大华宇视华为等第三方国标平台支持对接政务公安内网国标视频平台 1.什么是GB/T28181级联 2.搭建GB28181国标流媒体平 ...

最新文章

  1. 机器学习中的维度灾难
  2. java怎么把system.out的东西输出到文件上
  3. 【转】无服务计算(Serverless Computing)核心知识
  4. html页面左右布局透明背景,HTML透明背景
  5. CS 213 Fall 2018: Android Project
  6. 20. 有效的括号 python
  7. 计算机本科毕业论文选题单片机,单片机毕业论文范文
  8. 三星 android驱动安装失败,三星USB手机驱动安装失败怎么办?三星USB手机驱动安装失败解决方法...
  9. 项目管理系统设计方案
  10. Mujoco-一阶单摆建模与控制
  11. 华为浏览器如何进入阅读模式_华为浏览器有阅读模式吗
  12. teamspeak语音服务器价格,语音聊天社交很热门,带你搭建自己的语音聊天服务器...
  13. 手机的便签上如何设置纪念日和倒计时呢?
  14. 从零开始构建嵌入式实时操作系统2——重构
  15. 御手洗sama 网易宝面试:java程序员(其实我根本不记得我投的是什么了,但是一直问的是java,应该就是java了)...
  16. 快讯|ONES 通过 CMMI 3 级评估认证
  17. FlexRay 简介
  18. 《流畅的python》1.2 笔记
  19. OpenAL 3D效果营造
  20. 铁锈战争虚拟服务器,铁锈战争王者之战(两周年庆)

热门文章

  1. Multisim的使用及面包板
  2. 浙江省计算机二级c知识点,浙江省计算机二级c程序设计考试大纲
  3. COMSOL——相场模拟
  4. java_TCP/UDP整合
  5. 关于冈萨雷斯的《数字图像处理》的坑与资源!
  6. 如何制作Ghost系统镜像
  7. quot;敏捷式软件学习quot; 一条快捷的程序员的成长之路
  8. 架构师的软实力之平台开发
  9. uniapp宽屏适配
  10. 《炉石传说》架构设计赏析(6):卡牌 技能数据的运行时组织