设备sdk--海康,大华SDK
海康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相关推荐
- 海康/大华SDK视频智能分析安防监控系统EasyCVR集成iframe播放分屏出现滚动条原因排查
TSINGSEE青犀视频开发的视频平台都是支持集成的,尤其是EasyGBS.EasyCVR这样的平台,由于其协议的特性,非常适合在点位比较多且分散的场景下部署以及集成到现有平台当中. 有个建筑工地项目 ...
- LiveVISGAT1400视图库服务-支持海康大华华为宇视天地伟业等设备视图库接入使用说明
LiveVISGAT1400视图库服务-支持海康大华华为宇视天地伟业等设备视图库接入使用说明 LiveVIS GAT1400视图库服务安装使用说明 1.服务说明 1.1.安装包说明 1.2.视图库服务 ...
- LiveGBS国标GB/T28181流媒体平台接入GB28181设备作为下级支持级联到共享到海康大华宇视等第三方国标平台支持对接政务公安内网国标视频平台
LiveGBS国标GB/T28181流媒体平台接入GB28181设备作为下级支持级联到共享到海康大华宇视等第三方国标平台支持对接政务公安内网国标视频平台 1.什么是GB/T28181级联 2.搭建GB ...
- LiveGBS流媒体平台GB/T28181常见问题-海康大华宇视华为NVR摄像头无法注册到国标平台看不到设备的时候如何抓包及排查
LiveGBS常见问题-海康大华宇视华为NVR摄像头无法注册到平台国标平台看不到设备的时候如何抓包及排查 1.设备注册后查看不到 1.1.防火墙排查 1.2.端口排查 1.3.IP地址排查 1.4.设 ...
- LiveGBS流媒体平台GB/T28181功能-作为上级平台对接海康大华华为宇视等下级平台监控摄像机NVR硬件执法仪等GB28181设备
LiveGBS作为上级平台对接海康大华华为宇视等下级平台监控摄像机NVR硬件执法仪等GB28181设备 1.背景说明 2.部署国标平台 2.1.安装使用说明 2.2.服务器网络环境 2.3.信令服务配 ...
- 安防RTSP协议摄像头实现WEB端无插件直播流媒体服务EasyNVR实现海康大华宇视摄像头网页播放的方法
背景分析:微信直播的兴起 进入移动互联网时代以来,企业微信公众号已成为除官网以外非常重要的宣传渠道,当3.2亿直播用户与9亿微信用户的势能累加,在微信上开启直播已成为越来越多企业的必然选择. Easy ...
- java接口方式调用海康大华摄像机预览。
客户有海康和大华的监控设备,没有买各类安防平台,国标方式需要预留给其他需要接入的系统,得兼容高版本chrome,询问了大华的客服人员,最后选择了该方案进行解决,记录下曲折的过程.延迟大约10秒的样子, ...
- 海康大华等安防摄像机采用通用RTSP协议流转RTMP推送至Web无插件播放展示的流程方法
行业现状 中国互联网化的进程已经越来越快了,各个行业都在进行着互联网化的改造,流媒体.音视频,作为跑在互联网上最大量级的数据类型,其从编码方式到传输协议到终端兼容都成为各家标准抢占的高点,RTMP.H ...
- 基于activex插件的海康大华网页版的播放(一)
研一下学期开学一个月内,完成了海康大华网页版的播放器,其实就是在web端调用基于activex控件做的MFC插件.先看一下效果图: 项目需求:做一个网页版的能够播放海康.大华等通用设备的实时流的播放器 ...
- LiveGBS流媒体平台国标GB/T28181作为下级支持国标级联海康大华宇视华为等第三方国标平台支持对接政务公安内网国标视频平台
LiveGBS流媒体平台国标GB/T28181作为下级支持国标级联海康大华宇视华为等第三方国标平台支持对接政务公安内网国标视频平台 1.什么是GB/T28181级联 2.搭建GB28181国标流媒体平 ...
最新文章
- 机器学习中的维度灾难
- java怎么把system.out的东西输出到文件上
- 【转】无服务计算(Serverless Computing)核心知识
- html页面左右布局透明背景,HTML透明背景
- CS 213 Fall 2018: Android Project
- 20. 有效的括号 python
- 计算机本科毕业论文选题单片机,单片机毕业论文范文
- 三星 android驱动安装失败,三星USB手机驱动安装失败怎么办?三星USB手机驱动安装失败解决方法...
- 项目管理系统设计方案
- Mujoco-一阶单摆建模与控制
- 华为浏览器如何进入阅读模式_华为浏览器有阅读模式吗
- teamspeak语音服务器价格,语音聊天社交很热门,带你搭建自己的语音聊天服务器...
- 手机的便签上如何设置纪念日和倒计时呢?
- 从零开始构建嵌入式实时操作系统2——重构
- 御手洗sama 网易宝面试:java程序员(其实我根本不记得我投的是什么了,但是一直问的是java,应该就是java了)...
- 快讯|ONES 通过 CMMI 3 级评估认证
- FlexRay 简介
- 《流畅的python》1.2 笔记
- OpenAL 3D效果营造
- 铁锈战争虚拟服务器,铁锈战争王者之战(两周年庆)