千家信息网

大华网络摄像机SDK对接

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,1)演示程序\Mfc分类Demo中有04.远程抓图19.枪球联动等功能说明关于视音频的数据格式有两种// 编码格式, 包括音频和视频struct AV_CFG_EncodeFormat{AV_int3
千家信息网最后更新 2026年11月01日大华网络摄像机SDK对接

1)演示程序\Mfc分类Demo中有04.远程抓图19.枪球联动等功能说明

关于视音频的数据格式有两种

// 编码格式, 包括音频和视频
struct AV_CFG_EncodeFormat
{
AV_int32 nStructSize;
AV_BOOL bAudioEnable; // 音频使能
AV_int32 nAudioBitRate; // 音频比特率
CFG_AUDIO_FORMAT emAudioCompression; // 音频压缩模式
AV_int32 nAudioDepth; // 音频采样深度
AV_int32 nAudioFrequency; // 音频采样频率
AV_int32 nAudioMode; // 音频编码模式
AV_int32 nAudioPack; // 音频打包模式, 0-DHAV, 1-PS

AV_BOOL bVideoEnable; // 视频使能
AV_int32 nVideoBitRate; // 视频比特率
CFG_BITRATE_CONTROL emVideoBitRateControl; // 码流控制模式
CFG_VIDEO_COMPRESSION emVideoCompression; // 视频压缩模式
AV_int32 nVideoFPS; // 视频帧率
AV_int32 nVideoGOP; // 视频I帧间隔
AV_int32 nVideoWidth; // 视频宽度
AV_int32 nVideoHeight; // 视频高度
CFG_IMAGE_QUALITY emVideoQuality; // 视频图像质量
AV_int32 nVideoPack; // 视频打包模式, 0-DHAV, 1-PS
};


尝试使用如下代码设置视音频数据的格式为PS,而不是大华的私有流协议,暂时无效

NET_ENCODE_VIDEO_PACK_INFO struEnCodeInfo = { 0 };
struEnCodeInfo.dwSize = sizeof(struEnCodeInfo);

//指定主码流
struEnCodeInfo.emFormatType = EM_FORMAT_MAIN_NORMAL;

//先查看当前的视频流格式
bool bRet = CLIENT_GetConfig(id, NET_EM_CFG_ENCODE_VIDEO_PACK, 1, (void*)&struEnCodeInfo, sizeof(struEnCodeInfo));
DWORD err = 0;
if (!bRet)
{
err = CLIENT_GetLastError()&(0x7fffffff);
}

//设置PS流格式
struEnCodeInfo.emPackType = EM_PACK_PS;
bRet = CLIENT_SetConfig(id, NET_EM_CFG_ENCODE_VIDEO_PACK, 1, (void*)&struEnCodeInfo, sizeof(struEnCodeInfo));
bRet = CLIENT_GetConfig(id, NET_EM_CFG_ENCODE_VIDEO_PACK, 1, (void*)&struEnCodeInfo, sizeof(struEnCodeInfo));


注意:06.编码配置例子中对视音频的编码可以设置,目前通过OnVideoDlgToStu设置PS,抓包没有找到对应的PS头字段,需要保存文件分析


2)工程编译问题

问题1)

1>BSWndContainer.obj : error LNK2019: 无法解析的外部符号 _xMonitorFromWindow@8,该符号在函数 "int __cdecl GetCurrentScreenMonitorRect(struct HWND__ *,struct tagRECT &)" (?GetCurrentScreenMonitorRect@@YAHPAUHWND__@@AAUtagRECT@@@Z) 中被引用
1>BSWndContainer.obj : error LNK2019: 无法解析的外部符号 _xGetMonitorInfo@8,该符号在函数 "int __cdecl GetCurrentScreenMonitorRect(struct HWND__ *,struct tagRECT &)" (?GetCurrentScreenMonitorRect@@YAHPAUHWND__@@AAUtagRECT@@@Z) 中被引用


源代码

#include "BSWndContainer.h"
#pragma warning(disable:4706)
//#define COMPILE_MULTIMON_STUBS
#include
#pragma warning(default:4706)


修改后

#include "BSWndContainer.h"
#pragma warning(disable:4706)
#define COMPILE_MULTIMON_STUBS //取消注释
#include
#pragma warning(default:4706)


问题2)

error C3861: "_Min": 找不到标识符

源代码:

int nMinChannel = _Min(m_ChannelNum, _Min(nNum, MAX_RECORD_CHANNEL));


修改后:
int nMinChannel = min(m_ChannelNum, min(nNum, MAX_RECORD_CHANNEL));


大华私有流对接优势

1)大华设备进行rtsp交互耗时1500毫秒

2)SDK私有协议对接耗时600毫秒


3)如下是大华私有视频流的说明

1.2 DHFS视频监控帧格式解析
  帧是视频监控数据组成的基本单位,视频监控数据是由许多帧按照一定的顺序组合而成,帧存在多种类型,而且帧的大小不固定,每个帧的起始位置不一定只出现在扇区或块的起始地址,它可以出现在任何合理的物理地址范围内。大华视频监控文件中视频帧是由其自定义的网络通讯协议封装RTP载荷的H.264码流组成,大华视频帧与一般的H.264编码的视频帧是不同的,它对原始H.264视频数据进行了多次封装。
  由于大华视频每帧中都含有特定的网络通讯协议头部信息和尾部信息,通过分析帧中网络通讯协议头或尾部的数据特点可以实现对视频帧进行搜索和定位,经过大量实验发现其帧起始特定标志为大写字母DHAV,十六进制表示为0x44484156,帧结束标志为小写字母dhav,十六进制表示为0x64686176(见图1)。大华帧头部结构中记录了基本的视频属性信息,例如帧的编号、帧所属通道号、帧长度以及帧的创建时间等等。这些属性是视频监控数据进行通道分离与重组的关键信息,其中与视频监控恢复相关的属性信息,如表1所示,头部结构中相对DHAV标识偏移量为0x04描述的是帧类型;如图1中偏移0x06位置描述通道号,此帧的通道号是0x0005,具体含义表示为6通道,因为通道号是0作为基数表示1通道;0x08描述的是此帧编号,考虑到大小端表达形式,十六进制表示为0x47D0;相对DHFS偏移0x0C是此帧的长度,此帧长度是0x00000F80,十进制表示为3698字节;相对DHAV偏移0x10是描述此帧的创建时间信息,十六进制表示为0x39308EBB。如图1中dhav后四个字节为帧长度,十六进制表达式为0x20F8,转换成十进制为8840字节,用于校验。尾部结束标志为小写字母dhav,具体帧尾部结构见表2。

图1 DHFS文件系统的帧头与帧尾
  Fig.1 Frame head and tail in DHFS
  2 DHFS视频监控存储方式研究
  2.1 DHFS视频文件存储方式分析
  视频监控采用实时文件顺序存储方式,整体的基本布局结构如图2上所示,从文件系统数据区可以分析出大华视频监控文件系统的标识,视频监控存储块大小等信息,这些参数对于大华视频监控数据的恢复有十分重要的作用,例如DHFS会实时分配给各个视频通道2 MB存储空间,该值由启动扇区中相应参数定义,各通道的视频片段以2 MB为分割,在磁盘中顺序交替存储,但是有些情况下也存在连续存放单一通道2 MB视频片段的情况,假设CHn表示所属通道的2 MB视频片段,在只有3个通道的视频监控系统中,DHFS文件系统中各通道视频片段存储排列情况如图2下所示,视频片段代表视频存储过程中一个2 MB的视频数据块,其中编号为1~6的视频片段为正常录制视频监控的情况,各个通道视频片段交替存储。编号6~10属于连续录制同一通道监控视频的情况。如果DHFS文件系统误格式化或部分视频覆盖的情况下,视频监控系统的文件系统遭到破坏,视频监控的恢复需要通过通道分离与重组进行还原,即分离出1、4、8编号的视频片段,重组成通道一的视频监控文件,分离出2、5、9、10编号的视频片段,重组成通道二的视频监控文件,分离出3、6、7编号的视频片段,重组成通道三的视频监控文件。因此对于DHFS文件系统数据取证问题,将转化成如何确

  表1 DHFS帧头部结构
  Table 1 Frame head structure of DHFS
┌───────┬───────┬─────────────────────┐
│偏移量    │占用字节   │含义                   │
├───────┼───────┼─────────────────────┤
│0x00     │4       │帧起始标识0x44484156           │
├───────┼───────┼─────────────────────┤
│0x04     │2       │帧类型                  │
├───────┼───────┼─────────────────────┤
│0x06     │2       │帧通道                  │
├───────┼───────┼─────────────────────┤
│0x08     │4       │帧编号                  │
├───────┼───────┼─────────────────────┤
│0x0C     │4       │帧长度                  │
├───────┼───────┼─────────────────────┤
│0x10     │4       │帧创建时间                │
└───────┴───────┴─────────────────────┘

  表2 DHFS帧尾部结构
  Table 2 Frame tail structure of DHFS
┌────────┬────────┬───────────────────┐
│偏移量     │占用字节    │含义                 │
├────────┼────────┼───────────────────┤
│0x00      │4        │帧结束标识0x64686176         │
├────────┼────────┼───────────────────┤
│0x04      │4        │帧长度                │
└────────┴────────┴───────────────────┘






视频 监控 视频监控 通道 文件 数据 音频 大华 片段 系统 存储 信息 格式 情况 模式 结构 长度 偏移 十六进制 字节 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网产品 互联网为科技 上海挚品互联网科技 互联网 的科技创新 科技创新互联网企业 融贸通互联网科技 上游互联网科技 云创客互联网科技公司 移动互联网科技公司 保险科技服务互联网营销体系 恒生互联网科技业指数调整周期 上海科技产业互联网平台 互联网安防科技感 广东鹅鹅鹅互联网科技有限公司 福建互联网展示科技馆设计 互联网高科技行业有哪些企业 容联科技互联网电商 平安好医生打造互联网科技医疗 互联网科技创业计划的风险分析 如何强化互联网金融科技 天扬科技互联网广告 互联网 科技服务平台 科技大学互联网专业好不好 开启互联网科技时代小说 互联网金融中的现代科技 阿大互联网科技有限公司 迪庆互联网科技招生 洛阳共同富裕互联网科技有限公司 国大互联网教育科技有限公司薪资 21世纪互联网科技成就
0