海康威视SDK控制台程序consoleDemo获取视频通道参数

news/2024/7/8 7:45:42 标签: c++, 海康威视, SDK, consoleDemo, Linux

陈拓 2021/08/27-2020/08/27

1. 概述

在《海康威视SDK控制台程序consoleDemo

https://zhuanlan.zhihu.com/p/403903892

https://blog.csdn.net/chentuo2000/article/details/119939573

一文中我们已经编译成功了海康威视SDK的控制台程序consoleDemo。在上文的基础上本文我们来获取NVR的通道参数。

2. 重写ConfigParams.cpp

将ConfigParams.cpp原来的全部代码删除,替换成下面的代码:

#include "ConfigParams.h"
#include <stdio.h>
#include <string.h>
#include "public.h"
#include <iostream>
using namespace std;

DWORD dwChannels[8] = {0};
DWORD dwStartDChan = 0;

int Demo_ConfigParams(LONG lUserID) {
    Demo_IPParaCfg_v31(lUserID);

    return HPR_OK;
}

// 查找在线通道号
int Demo_IPParaCfg_v31(LONG lUserID) {
    int iRet = -1;
    DWORD uiReturnLen = 0;
    LONG lChannel = 0;

    NET_DVR_IPPARACFG_V40 struParams = {0};
    struParams.dwSize = sizeof(struParams);

    //get
    iRet = NET_DVR_GetDVRConfig(lUserID,  NET_DVR_GET_IPPARACFG_V40, lChannel, \
        &struParams, sizeof(NET_DVR_IPPARACFG_V40), &uiReturnLen);
    if (!iRet) {
        printf("pyd---NET_DVR_GetDVRConfig NET_DVR_GET_IPPARACFG_V31 error.%d\n",  NET_DVR_GetLastError());
        return HPR_ERROR;
    } else {
        //printf("\n NET_DVR_GetDVRConfig OK!\n"); 
        dwStartDChan = struParams.dwStartDChan;
        std::cout << "\n设备支持的总组数: " << struParams.dwGroupNum << ", 数字通道个数: " << struParams.dwDChanNum << ", 起始数字通道: " << dwStartDChan << "\n" << std::endl;

        for (DWORD i = 0; i < struParams.dwDChanNum; i++) {
            switch (struParams.struStreamMode[i].byGetStreamType) {
            case 0:
                if (struParams.struStreamMode[i].uGetStream.struChanInfo.byEnable) {
                    int byIPID = struParams.struStreamMode[i].uGetStream.struChanInfo.byIPID;
                    int byIPIDHigh = struParams.struStreamMode[i].uGetStream.struChanInfo.byIPIDHigh;
                    int iDevInfoIndex = byIPIDHigh * 256 + byIPID - 1 - lChannel * 64;
                    dwChannels[i] = dwStartDChan + i;
                    std::cout << "端口号: " << i + 1 << ", 通道号: " << dwChannels[i] << ", IP: " << struParams.struIPDevInfo[iDevInfoIndex].struIP.sIpV4 << ", 在线" << std::endl;
                } else {
                    int byIPID = struParams.struStreamMode[i].uGetStream.struChanInfo.byIPID;
                    int byIPIDHigh = struParams.struStreamMode[i].uGetStream.struChanInfo.byIPIDHigh;
                    int iDevInfoIndex = byIPIDHigh * 256 + byIPID - 1 - lChannel * 64;
                    std::cout << "端口号: " << i + 1 << ", IP: " << struParams.struIPDevInfo[iDevInfoIndex].struIP.sIpV4 << ", 离线" << std::endl;
                }
                break;
            case 1:
                if (struParams.struStreamMode[i].uGetStream.struPUStream.struStreamMediaSvrCfg.byValid) {
                    printf("IP channel %d connected with the IP device by stream server.\n", i + 1);
                    printf("IP of stream server: %s, IP of IP device: %s\n", struParams.struStreamMode[i].uGetStream.\
                        struPUStream.struStreamMediaSvrCfg.struDevIP.sIpV4, struParams.struStreamMode[i].uGetStream.\
                        struPUStream.struDevChanInfo.struIP.sIpV4);
                }
                break;
            }
        }
    }

    return HPR_OK;
}

3. 编译、运行

编译运行操作见概述中提到的《海康威视SDK控制台程序consoleDemo》一文。

在菜单中选择2,运行结果:

在这里我们获取到了摄像头对应的通道号,有了通道号我们就可以获取码流了。

见《海康威视SDK控制台程序consoleDemo获取码流》

https://zhuanlan.zhihu.com/p/404556277

https://blog.csdn.net/chentuo2000/article/details/119971526


http://www.niftyadmin.cn/n/1733074.html

相关文章

安装win7后鼠标一卡一卡

安装win7后鼠标一卡一卡的2009年11月01日 星期日 下午 02:04SL 400 AQC 安装win7后鼠标一卡一卡的win7 鼠标一卡一卡的解决办法winR打开运行窗口&#xff0c;输入services.msc&#xff0c;然后找到windows search服务&#xff0c;把它停掉

海康威视SDK控制台程序consoleDemo获取码流

陈拓 2021/08/28-2020/08/28 1. 概述 在《海康威视SDK控制台程序consoleDemo》 https://zhuanlan.zhihu.com/p/403903892 https://blog.csdn.net/chentuo2000/article/details/119939573 一文中我们已经编译成功了海康威视SDK的控制台程序consoleDemo。 在《海康威视SDK控…

box-shadow的应用技巧

一、box-shadow的参数解析 box-shadow:none; box-shadow: h-shadow v-shadow blur spread color inset; box-shadow参数解析 值描述none默认值&#xff0c;元素没有任何阴影效果。h-shadow阴影水平偏移量&#xff0c;其值可以是正负值。如果取正值&#xff0c;则阴影在元素的右…

jQuery对象与dom对象的转换

http://www.ccvita.com/192.html最近在闲暇时间用jQuery搞了一个多文件上传的东东&#xff0c;顺便写点笔记。 一直以来对于通过jQuery方式获取的对象使不能直接使用JavaScript的一些方法的&#xff0c;开始的时候不理解&#xff0c;现在此案知道&#xff0c;原来jQuery 获得的…

海康威视SDK控制台程序consoleDemo将实时码流保存为视频文件mp4

陈拓 2021/08/28-2020/08/29 1. 概述 在《海康威视SDK控制台程序consoleDemo》 https://zhuanlan.zhihu.com/p/403903892 https://blog.csdn.net/chentuo2000/article/details/119939573 一文中我们已经编译成功了海康威视SDK的控制台程序consoleDemo。 在《海康威视SDK控…

弹性盒模型----容器属性

布局的传统方案&#xff0c;基于盒装模型&#xff0c;依赖display属性 position属性 float属性。他对于那些特殊的布局非常不方便&#xff0c;比如&#xff0c;垂直居中就不容易实现。  2009年&#xff0c;W3C提出了一种新的方案—-Flex布局&#xff0c;可以简便、完整、响应…

JQuery的表单操作

获取值&#xff1a;文本框&#xff0c;文本区域&#xff1a;$("#txt").attr("value")&#xff1b;多选框checkbox&#xff1a;$("#checkbox_id").attr("value")&#xff1b;单选组radio&#xff1a; $("input[typeradio][check…

ffmpge海康视频文件格式转换

陈拓 2021/08/29-2020/08/29 1. 概述 在《海康威视SDK控制台程序consoleDemo将实时码流保存为视频文件》 https://zhuanlan.zhihu.com/p/404661836 https://blog.csdn.net/chentuo2000/article/details/119976612 一文中文件我们将码流数据保存为视频文件。 视频文件是海…