从海康摄像机上读取RTSP视频流并存储当前帧到本地

简介: 从海康摄像机上读取RTSP视频流并存储当前帧到本地

整体流程:


1.1 从数据库中获取相机编码


1.2 结合海康平台的AK\SK以及发布的轮子接口获取相机的RTSP


1.3 使用Opencv-Python读取RTSP并存储图像\



模块一:从数据库中获取相机编码


1.1 连接数据库(连接名称、用户名、密码、端口、数据库名称、字符编码、生成游标对象)


1.2 执行Sql语句

import pymysql
class BaseSetMySql():
    # 连接数据库基础参数
    def __init__(self):
        # 连接数据库
        self.conn = pymysql.connect(host='192.168.32.22'  # 连接名称,默认127.0.0.1
                                    , user='root'  ## 用户名
                                    , passwd='root'  # 密码
                                    , port=3306  # 端口,默认为3306
                                    , db='AllIndexcode'  # 数据库名称
                                    , charset='utf8'  # 字符编码
                                    )
        self.cur = self.conn.cursor()  # 生成游标对象
        # Sql语句
        self.Sql = 'SELECT indexcode FROM `cameraid`'  # 查询企业摄像机编码的SQL
    # 获取摄像机编码
    def GetCamID(self):
        try:
            self.cur.execute(self.Sql)  # 执行插入的sql语句
            CamID = self.cur.fetchall()
            return CamID
        except:
            self.conn.commit()  # 提交到数据库执


模块二:根据相机编码获取RTSP


2.1 将获取到的相机ID对海康接口发送POST请求


2.2 筛选海康返回参数中含有RTSP的数据


2.3 这部分的改进可以参考:juejin.cn/post/707626… 这里是关于返回RTSP参数的各种情况


import requests
class BaseSetRTSP():
    def __init__(self):
        # 接口
        self.UrlCode = 'http://xxx.x.xxx.xxx:xxxx/xxxxxxxxx/xxxxxxxxxx'
    # 获取企业的RTSP
    def GetRTSP(self,CamId)
        RestInfo = self.UrlCode + CamId
        RestData = requests.get(RestInfo)
        RestDataDict = RestData.json()
        RTSP = None
        RightInfo = "rtsp" in str(RestDataDict)
        if RightInfo is True:
            Data_RestDataDict = ((eval(RestDataDict['data']))['data'])
            RTSP = Data_RestDataDict['url']
        return RTSP


模块三:使用Opencv-Python读取RTSP并存储图像


3.1 需要判定在RTSP模块中获取RTSP是否为None,只有不为None的才会有RTSP 3.2 图像命名采用UUID各种命名避免重复 3.3 这个里面涉及到了一个RTSP连接超时和掉帧现象

import uuid
import cv2
class SaveFrame():
    def __init__(self):
        pass
    # 存视频图像
    def SaveFrame(self, CAMID, RTSP):
        if RTSP is not None:
            VideoCap = cv2.VideoCapture(RTSP)
            ret, frame = VideoCap.read()
            if ret:
                FrameName = "_" + str(CAMID) + "_" + str(uuid.uuid1())
                cv2.imwrite('D:/Pecker/imgs/%s.jpg' % FrameName, frame)
                print("成功截图", FrameName)
            VideoCap.release()




相关文章
|
Linux 数据安全/隐私保护 Windows
音视频开发:大华摄像头配置RTSP与RTMP地址访问视频画面
音视频开发:大华摄像头配置RTSP与RTMP地址访问视频画面
3514 0
音视频开发:大华摄像头配置RTSP与RTMP地址访问视频画面
|
Web App开发 编解码 前端开发
VUE网页实时播放海康、大华摄像头RTSP视频流完全方案,300毫秒延迟,支持H.265、可多路同时播放
在遍地都是摄像头的今天,往往需要在各种信息化、数字化、可视化B/S系统中集成实时视频流播放等功能,海康、大华、华为等厂家摄像头或录像机等设备一般也都遵循监控行业标准,支持国际标准的主流传输协议RTSP输出,而Chrome、Firefox、Edge等新一代浏览器从2015年开始取消了NPAPI插件技术支持导致RTSP流无法直接原生播放了
3142 0
|
3月前
|
编解码 算法 图形学
同一路RTSP|RTMP流如何同时回调YUV和RGB数据实现渲染和算法分析
我们播放RTSP|RTMP流,如果需要同时做渲染和算法分析的话,特别是渲染在上层实现(比如Unity),算法是python这种情况,拉两路流,更耗费带宽和性能,拉一路流,同时回调YUV和RGB数据也可以,但是更灵活的是本文提到的按需转算法期望的RGB数据,然后做算法处理
|
3月前
|
编解码 开发工具 Android开发
Android平台实现屏幕录制(屏幕投影)|音频播放采集|麦克风采集并推送RTMP或轻量级RTSP服务
Android平台屏幕采集、音频播放声音采集、麦克风采集编码打包推送到RTMP和轻量级RTSP服务的相关技术实现,做成高稳定低延迟的同屏系统,还需要有配套好的RTMP、RTSP直播播放器
|
4月前
|
编解码 开发工具 Android开发
低延迟播放超高分辨率(4K+)帧率(50帧+)RTSP|RTMP流技术探讨和实现
为满足安检等场景需求,需支持4K+分辨率与50帧以上的高帧率视频流播放。实现这一目标的关键步骤包括:确保视频源支持高帧率输出、选用高性能RTSP/RTMP播放器以处理高负载视频解码、采用硬件解码以降低CPU负担、保证充足的网络带宽以维持流畅播放并控制延迟、合理配置播放器缓冲策略以适应网络波动、进行性能监控与调试以优化播放效果,以及确保播放器在多平台上的良好兼容性和表现。例如,大牛直播SDK的SmartPlayer在不同平台上实现了稳定且低延迟(150-300ms)的播放体验,支持多种视频和音频格式及多种功能,如多实例播放、事件回调、视频快照等。
106 1
|
4月前
|
编解码 网络协议 vr&ar
Android平台下VR头显如何低延迟播放4K以上超高分辨率RTSP|RTMP流
这段内容讲述了VR头显中实现高分辨率视频播放的技术背景与实现方法,并强调了其重要性。高分辨率对于提升VR体验至关重要,它能提供更清晰的画面、增强沉浸感、补偿透镜放大效应,并维持宽广视场角下的图像质量。文中提到的大牛直播SDK具备极低的延迟(200-400ms),支持多种协议与格式,并具有丰富的功能特性,如多实例播放、事件回调、视频及音频格式支持等。此外,提供了基于Unity的播放器示例代码,展示了如何配置播放参数并开始播放。最后,作者指出此类技术在远程控制、虚拟仿真等应用场景中的重要意义。
|
流计算
海康录像机RTSP回放流的格式
海康录像机RTSP回放流的格式
693 0
|
存储 编解码 缓存
海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储
Hik防爆摄像头录像,因为防爆摄像头会有对应的APP软件,与普通的网络摄像头和球机不一样,默认认为它不可以通过web网页配置,所以弄了个来实测确认。经测试实际上也是可以通过web网页配置(与网络摄像头基本是一致的,在码流方面可能会有些不一样),然后提取rtsp流的,界面与球机无异,只是没有球机的云台控制功能,但是界面上也是有的。
海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储
|
编解码 算法 开发者
RTSP摄像机为什么还保留MJPEG编码格式
细心的开发者会发现,海康大华之类摄像机厂商,除了常规的H.264、H.265(HEVC)编码外,主码流或子码流依然会有MJPEG编码选项。
249 0
|
开发工具 Android开发 开发者
Android平台RTMP推流或轻量级RTSP服务(摄像头或同屏)编码前数据接入类型总结
很多开发者在做Android平台RTMP推流或轻量级RTSP服务(摄像头或同屏)时,总感觉接口不够用,以大牛直播SDK为例 (Github) 我们来总结下,我们常规需要支持的编码前音视频数据有哪些类型:
165 0

热门文章

最新文章