海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储

文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131679108

红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

其他(编程相关)

上一篇:没有了
下一篇:敬请期待…


前言

  Hik防爆摄像头录像,因为防爆摄像头会有对应的APP软件,与普通的网络摄像头和球机不一样,默认认为它不可以通过web网页配置,所以弄了个来实测确认。
  经测试实际上也是可以通过web网页配置(与网络摄像头基本是一致的,在码流方面可能会有些不一样),然后提取rtsp流的,界面与球机无异,只是没有球技的云台控制功能,但是界面上也是有的。


Demo演示

  请添加图片描述

  请添加图片描述


相关博客

  《产品分享:Qt视频播放器(不依赖系统编解码),当前版本v1.1.2》
  《案例分享:Qt+FFmpeg录屏应用(支持帧率、清晰度设置)》
  《案例分享:Qt内窥镜相机录像程序(打开摄像头、支持多种摄像头、分辨率调整、翻转、旋转、亮度调整、拍照、录像、回放图片、回放录像)》
  《项目实战:Qt球机控制工具 v1.0.0(球机运动八个方向以及运动速度,设置运动到指定角度,查询当前水平和垂直角度)》
  《项目实战:Qt+OpenCV视频播放器(支持播放器操作,如暂停、恢复、停止、时间、进度条拽托等)》
  《项目实战:Qt+ffmpeg摄像头检测工具》
  《项目实战:Qt+OpenCV操作摄像头拍照、调节参数和视频录制》
  《海康摄像SDK开发笔记(一):海康威视网络摄像头SDK介绍与模块功能》


防爆摄像头

  在这里插入图片描述


效果图

网页预览

  在这里插入图片描述
  在这里插入图片描述

主码流

  在这里插入图片描述

子码流

  在这里插入图片描述
  防爆摄像头还解决了之前球机存在的,谷歌浏览器无法播放实时视频的插件bug(只能用ie)。


网络配置同一网段(ip网段不同适用)

  当摄像头的网段,如192.168.1.64,那么倒数第二段一半是网段,就是1网段,网段与网段之间是无法通过直接通过网线、路由器连接的,需要先把网络配置成同一网段。

步骤一:获取ip地址

  本摄像头为静态ip,ip地址为192.168.1.64,局域网网段为0(192.168.0.1),而直接插入0网段是无法通向1网段(192.168.1.1)。

步骤二:一台电脑使用网线直接与摄像头网线直通

  网线一头接有网口的电脑,一头接防爆摄像头。

步骤三:配置电脑的ip与摄像头同一网段

  此时,需要打开网络配置,寻找到网线使用的网卡,(PS:多网卡时,将其他非与摄像头网线的网卡禁用),如下图:
  在这里插入图片描述

  然后双击这个“网卡”,此处时“以太网”(PS:有可能时本地连接或其他名字,确认只有这一个网线网口是对应的就可以)
  在这里插入图片描述

  点击“属性”,弹出如下:
  在这里插入图片描述

  双击“Internet协议版本4”,设置本机ip,摄像头是1网段,所以只能1网段可以连接,随便设置个ip(192.168.1.210)临时用,如下图:
  在这里插入图片描述

  点击“确认”,即可。
  此时,可以测试与摄像头ip是否相通,打开windows的命令行终端,使用ping查询:
  在这里插入图片描述

  已通,可以开始登录设置摄像头了。


摄像头网段配置

  (PS:前提可以ping通摄像头,pc不在一个网段则先“网络配置同一网段”)

步骤一:打开浏览器,登录

  打开浏览器,输入摄像头ip,192.168.1.64:
  在这里插入图片描述

  登录,一定要注意,海康摄像头对密码验证策略比较严,输入正确的账号和密码即可登录:
  在这里插入图片描述
  登录进去,如下图:
  在这里插入图片描述

步骤二:重配ip地址

  点击“配置”,进入配置页面:
  在这里插入图片描述

  然后,按照下图,设置新的ip地址网段,由1改为0:
  在这里插入图片描述

  然后,点击“保存”,重启:
  在这里插入图片描述

  然后,将摄像头的网线接入到目标断网去(0网段),然后这台设置ip地址的机子可以设置会自动获取ip,网线接入0网段了)。

步骤三:摄像头ip同一网段测试

  (PS:这时,摄像头已经接入0网段,然后电脑也重新设置回自动ip,接入0网段。)
  打开电脑的cmd终端,测试ping一下摄像头:
  在这里插入图片描述

  能ping通,再看能否连接登录界面:
  在这里插入图片描述

  至此,摄像头网络配置完成。


摄像头配置rtsp码流并播放

  (PS:防爆这种非球机的可能一开始就是支持hk自己的软件,没有开放rtsp流,所以需要配置一下,可以检查,避免没有配置)

步骤一:打开浏览器,登录

  在这里插入图片描述

  登录进入:
  在这里插入图片描述

步骤二:配置rtsp码流

  点击“配置”:
  在这里插入图片描述

  进入“视音频”配置码流:
  在这里插入图片描述

  主码流:主码流一般不动,是默认的,如app打开可能用的。
  所以,优先设置“子码流”,切换至“子码流”,然后设置,具体的码流参数可以实际用,设置参照“主码流”,主要是分辨率和码流参数的改变:
  在这里插入图片描述

  但是这里有一个问题,子码流只能2个分辨率,录制480p和720p为主,再看主码流的分辨率:
  在这里插入图片描述

  最后,我们使用主码流来实时播放,主码流来录像(其他监控录制可能就480p常用,按照提供的需求来,录制1080p的)。
  如下,只录视频流:
  在这里插入图片描述

  然后保存。
  在这里插入图片描述

步骤三:使用第三方软件播放测试

  推荐使用vlc,自行搜索下载:
  启动应用:
  在这里插入图片描述

  在这里插入图片描述

  打开网络流地址:
  在这里插入图片描述

  然后,输入主码流地址:
  在这里插入图片描述

  主码流:
  在这里插入图片描述

  在这里插入图片描述

  主码流可以用两个地址打开:

rtsp://admin:admin123@192.168.1.64:554/h264/ch1/main/av_stream
rtsp://admin:admin123@192.168.0.64:554/Streaming/Channels/1

  子码流:
  在这里插入图片描述

  所以,末尾就是通道号,多个通道就可以多n,从1开始。
  在这里插入图片描述

  在这里插入图片描述


摄像头码流调优

调优方法

  调试主码流,主码流地址:

rtsp://admin:hik12345@192.168.0.64:554/Streaming/Channels/1

  一边播放的时候,一遍web进去配置视频参数调整主码流,直接保存,再查看几分钟效果如何即可。

调优参数1(测试结果:马赛克多,错位):

  在这里插入图片描述

  (PS:上面的配置缓存较大,容易马赛克,错位,ffmpeg处理存在问题)。

调优参数2:图像质量不是很好,会有点马赛克

  在这里插入图片描述

调优参数3(当前采用):图像质量一致,延迟最低

  在这里插入图片描述

  码率类型,图像质量,码率上线,编码复杂度,码流平滑来综合调试实际现场可接受的效果。
  在这里插入图片描述
  在这里插入图片描述


记录仪循环录像测试

  在这里插入图片描述
  在这里插入图片描述


摄像头rtsp播放延迟

  下面是基于本摄像头继续开发的播放录像程序以及几个其他播放器的播放效果和延迟时间:

  在这里插入图片描述

  在这里插入图片描述

  请添加图片描述

  请添加图片描述

  请添加图片描述

  请添加图片描述


上一篇:没有了
下一篇:敬请期待…


文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131679108

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/5854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日一题——反转链表

题目 给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。 数据范围:0≤n≤1000 要求:空间复杂度 O(1) ,时间复杂度 O…

Python实战项目——旅游数据分析(四)

由于有之前的项目,所以今天我们直接开始,不做需求分析,还不会需求分析的可以看我之前的文章。Python实战项目——用户消费行为数据分析(三) 导入库 import numpy as np import pandas as pd import matplotlib.pyplo…

PHP后台登录功能单账号登录限制

PHP后台登录功能单账号登录限制 单账号登陆是什么第一步创建数据表第二步创建登录页面test2.html第三步创建登录提交test2.php第四步访问后台首页第五步演示 单账号登陆是什么 一个用户只能登录一个账号通常被称为单账号登录限制或单用户单账号限制。这意味着每个用户只能使用…

Linux 学习记录53(ARM篇)

Linux 学习记录53(ARM篇) 本文目录 Linux 学习记录53(ARM篇)一、内存读写指令1. 在C语言中读取内存2. 指令码及功能3. 格式4. 使用示例5. 寻址方式(1. 前索引方式(2. 后索引方式(3. 自动索引 6.批量寄存器操作指令(1. 操作码(2. 格式(3. 使用示例(4. 地址增长方式>1 ia后缀&…

========Java基础——小结1========

一、Java 两大版本 Java 主要分为两个版本: Java SE 和Java EE。 Java SE 全称Java Platform Standard Edition,是 Java 的标准版,主要用于桌面应用程序开发,它包含了 Java 语言基础、JDBC (Java 数据库连接)、I/O (输入/输出)、TCP/IP 网络…

股票基金入门知识

1.开盘价和收盘价如何产生 时间9:30-11:30 13:00-15:00 集合竞价时间段:9:15-9:25 以此产生开盘价 最后集中竞价时间段:深市14:57-15:00 ,以此产生收盘价。 沪市则采用最后一分钟加权得出收盘价影响股价的因素 市场投资情绪,宏观…

Hadoop——DataGrip连接MySQL|Hive

1、下载 DataGrip下载:DataGrip: The Cross-Platform IDE for Databases & SQL by JetBrains 2、破解 破解链接:https://www.cnblogs.com/xiaohuhu/p/17218430.html 3、启动环境 启动Hadoop:到Hadoop的sbin目录下右键管理员身份运行…

【C++】list 模拟笔记

文章目录 list定义结点类(list_node)为什么封装迭代器为类 ?库里面模板多参数的由来 ?为什么普通迭代器不能隐式类型转换成const迭代器?迭代器位置指向及其返回值和整体代码 list list 和前面学习的 string 和 vector …

微信小程序使用ECharts的示例详解

目录 安装 ECharts 组件使用 ECharts 组件图表延迟加载 echarts-for-weixin 是 ECharts 官方维护的一个开源项目,提供了一个微信小程序组件(Component),我们可以通过这个组件在微信小程序中使用 ECharts 绘制图表。 echarts-fo…

excel中单行换成多行

今天碰以下情况: 这在excel表中是在一个单元格,现在需要对其进行转换,将一个单元格换成多行 步骤: 1.删除换行符,添加一个逗号 2.选择数据-分列-分隔字符-逗号-确定 3.复制上述数据,选择性粘贴-转置 完…

2816. 判断子序列

题目链接&#xff1a; 自己的做法&#xff1a; #include <bits/stdc.h>using namespace std;const int N 1e5 10; int a[N], b[N]; int main() {int n, m;bool flag true;scanf("%d%d", &n, &m);for (int i 0; i < n; i) scanf("%d"…

哈希:探索快速的数据存储和搜索方法

哈希&#xff1a;探索快速的数据存储和搜索方法 哈希表作为一种高效的数据存储结构&#xff0c;可以使数据的存储位置与关键码之间建立一一映射的关系&#xff0c;从而加快元素的搜索速度。然而&#xff0c;哈希方法也面临着哈希冲突的问题&#xff0c;即不同的关键字通过相同…

dxf怎么转换成PDF格式?转换方法其实很简单

PDF文件是一种可靠的文件格式&#xff0c;可以在各种操作系统和软件上打开和查看。而dxf是CAD文件的一种格式&#xff0c;打开它一般都是需要相关的操作软件才能打开&#xff0c;不是特别方便&#xff0c;将dxf文件转换成PDF格式就可以很好的解决这一问题&#xff0c;下面教大家…

Kafka - Primie Number of Partitions Issue Consumer Group Rebalance

文章目录 生产者&#xff1a;将数据写入 Kafka 的客户端。 消费者&#xff1a;从 Kafka 中读取数据的客户端。 Topic&#xff1a;Kafka 中用于组织和存储数据的逻辑概念&#xff0c;类似于数据库表。 Record&#xff1a;发送到 Topic 的消息称为 Record。 Partition&#x…

List有值二次转换给其他对象报null

List<PlatformUsersData> listData platformUsersMapper.selectPlatformUserDataById(data); users.setPlatformUsersData(listData);为什么listData 有值&#xff0c;users.getPlatformUsersData&#xff08;&#xff09;仍然为空在这段代码中&#xff0c;我们假设listD…

NLP(六十)Baichuan-13B-Chat模型使用体验

2023年7月11日&#xff0c;百川智能正式发布参数量130亿的通用大语言模型Baichuan-13B-Base、对话模型Baichuan-13B-Chat及其INT4/INT8两个量化版本。   本文将介绍大模型BaiChuan-13B-Chat的使用体验&#xff0c;其HuggingFace网址为&#xff1a;https://huggingface.co/bai…

【团队协作开发】IDEA中Git新建自己的dev工作分支,合并到master主分支教程(极其简单,新手)

文章目录 一、创建新dev工作分支二、push到自己的远程dev工作分支三、工作分支合并到master主分支1、先切换到master主分支2、将远程工作dev分支的内容merge到当前master分支中3、将merge提交到远程master分支 一、创建新dev工作分支 创建完新dev分支以后将默认切换到新dev分支…

FFmpeg5.0源码阅读—— avcodec_send_frame avcodec_receive_packet

摘要&#xff1a;本文主要描述了FFmpeg中用于编码的接口的具体调用流程&#xff0c;详细描述了该接口被调用时所作的具体工作。   关键字&#xff1a;ffmpeg、avcodec_send_frame、avcodec_receive_packet   读者须知&#xff1a;读者需要了解FFmpeg的基本使用流程&#xf…

如何理解自动化

目录 1.如何定义自动化 2.自动化给人类带来的福利 3.如何学习自动化 4.自动化潜在的危害 1.如何定义自动化 自动化是指利用计算机、机械、电子技术和控制系统等现代科学技术手段&#xff0c;对各种工业、商业、农业和日常生活中的操作和过程进行自动控制和执行的过程。它旨在…

Vc - Qt - 自定义ComboBox

示例代码创建了一个名为ComboBoxWidget的自定义QWidget类&#xff0c;并在initUI方法中创建了一个垂直布局。然后将一个只读的QLineEdit和一个QPushButton添加到布局中。当按钮被点击时&#xff0c;会调用showMenu方法&#xff0c;该方法创建一个QMenu并添加选项。每个选项连接…