大华网络摄像机SDK对接

1)演示程序\ Mfc分类演示中有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 - p

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


尝试使用如下代码设置视音频数据的格式为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呃=0;
如果(bRet)
{
呃=CLIENT_GetLastError()和(0 x7fffffff);
}

//设置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:错误LNK2019:无法解析的外部符号_xMonitorFromWindow@8,该符号在函数“int __cdecl GetCurrentScreenMonitorRect (struct HWND__ *, struct tagRECT和)”(? GetCurrentScreenMonitorRect@@YAHPAUHWND__@@AAUtagRECT@@@Z)中被引用
1祝辞BSWndContainer。obj:错误LNK2019:无法解析的外部符号_xGetMonitorInfo@8,该符号在函数“int __cdecl GetCurrentScreenMonitorRect (struct HWND__ *, struct tagRECT和)”(? GetCurrentScreenMonitorRect@@YAHPAUHWND__@@AAUtagRECT@@@Z)中被引用


源代码

#包括“BSWndContainer。h”
# pragma警告(禁用:4706)
//# define COMPILE_MULTIMON_STUBS
# include & lt; multimon.h>
# pragma警告(默认值:4706)


修改后

#包括“BSWndContainer。h”
# pragma警告(禁用:4706)
# define COMPILE_MULTIMON_STUBS//取消注释
# include & lt; multimon.h>
# pragma警告(默认值:4706)


问题2)

错误C3861:“_Min”:找不到标识符

源代码:

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


修改后:
int nMinChannel=min (m_ChannelNum、最小值(nNum MAX_RECORD_CHANNEL));


大华私有流对接优势

1.2登革出血热视频监控帧格式解析
帧是视频监控数据组成的基本单位,视频监控数据是由许多帧按照一定的顺序组合而成,帧存在多种类型,而且帧的大小不固定,每个帧的起始位置不一定只出现在扇区或块的起始地址,它可以出现在任何合理的物理地址范围内。大华视频监控文件中视频帧是由其自定义的网络通讯协议封装RTP载荷的H .码流组成,大华视频帧与一般的H .编码的视频帧是不同的,它对原始H。null

大华网络摄像机SDK对接