关于海康网络摄像头使用VLC或者Opencv拉流有延迟的问题

环境:Windows + VLC / Opencv-Python

先说结论,我用VLC或者Pyhton opencv直接拉取海康网络摄像头的rtsp流,会有1-2s延时,特别明显。后来搜到这篇文章,解决了问题:

如何降低海康、大华等网络摄像头调用的高延迟问题(一):海康威视网络摄像头的python sdk使用(opencv读取sdk流)_python低延迟播放网络视频流-优快云博客

在使用海康SDK优化之前,尝试过多种方法:

多线程:延时1s左右

ffplay 去掉缓存:延时1s左右

ffplay.exe -fflags nobuffer rtsp://xxxxxxxxx

海康SDK:与网页视频相比,几乎是同步的。

上面说的延时,也是与摄像头网页视频相比的。

如上面文章介绍,我使用的时候遇到一处错误,需要把代码中的

b'\libcrypto-1_1-x64.dll'
b'\libssl-1_1-x64.dll'

这两处地方改成左斜杠,才能运行。

b'/libcrypto-1_1-x64.dll'
b'/libssl-1_1-x64.dll'

补充:

opencv拉流使用的是

cv2.VideoCapture(rtsp_url)
# 设置缓存区的大小
cap.set(cv2.CAP_PROP_BUFFERSIZE, 0)
海康威视是一家专注于视频监控和视频管理软件的公司,而OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供了大量的图像处理和分析功能。当我们在C语言环境中使用海康的SDK以及OpenCV库时,通常是为了开发视频监控相关的应用,比如实时视频的处理、图像识别、目标跟踪等。 在C语言中使用OpenCV需要先确保已经正确安装了OpenCV库,并在开发环境中配置好相应的头文件和库文件路径。使用海康威视的SDK同样需要配置相关的SDK文件。通常,海康SDK会提供一系列的API函数用于开发视频监控软件。 以下是一个简单的例子,展示了如何在C语言中初始化OpenCV库: ```c #include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui_c.h> int main() { // 初始化OpenCV的视频捕获模块 CvCapture* capture = cvCaptureFromCAM(0); if (!capture) { fprintf(stderr, "ERROR: 捕获设备无法打开\n"); return 1; } // 创建一个窗口 cvNamedWindow("My Window", CV_WINDOW_AUTOSIZE); IplImage* frame; while (1) { // 从捕获对象中读取一帧图像 frame = cvQueryFrame(capture); if (!frame) break; // 显示图像 cvShowImage("My Window", frame); // 按'q'键退出循环 char c = cvWaitKey(10); if (c == 'q') break; } // 释放资源 cvReleaseCapture(&capture); cvDestroyWindow("My Window"); return 0; } ``` 在这个例子中,我们使用OpenCV的视频捕获模块来从摄像头读取实时视频,并将其显示在一个窗口中。通过按键可以退出程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值