相关文章推荐
爱喝酒的篮球  ·  BeautifulSoup 获取 ...·  1 年前    · 
慈祥的萝卜  ·  VBA学习笔记59-4: ...·  1 年前    · 
另类的砖头  ·  04 JavaScript - 知乎·  1 年前    · 

搜罗了网上一些关于如何在python中实现海康威视相机的连接与画面播放的资料,最直接的方式是通过rtsp流来实现。

海康的rtsp协议格式如下(参考: 海康相机使用RTSP ):

rtsp://[username]:[passwd]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream

主码流:
rtsp://admin:12345@192.168.1.64:554/h264/ch1/main/av_stream
rtsp://admin:12345@192.168.1.64:554/MPEG-4/ch1/main/av_stream
子码流:
rtsp://admin:12345@192.168.1.64/mpeg4/ch1/sub/av_stream
rtsp://admin:12345@192.168.1.64/h264/ch1/sub/av_stream

对于刚买的网络相机,需要你更改相机的IP,将其更改到与自己电脑同一个网段,即前三个地址一致。并且设置好相机的用户名和密码。

方式一:网页预览

打开电脑的IE浏览器(或其他浏览器),在地址栏输入你的相机的IP地址,如果还是全新的相机,请去海康官网下载SADP软件来更改相机的IP并激活相机( 海康威视相机配置流程 )。例如我在浏览器输入:192.168.1.64 然后网页显示登录界面如下:

输入 相机的用户名和密码登录,在预览选项中可实时查看画面

方式二:VLC视频播放器预览

打开你的VLC media player视频播放器,选择 媒体->打开网络串流,在打开媒体->网络->请输入网络URL中填写上面提到的rtsp格式的URL; VLC下载地址

然后点击播放,即可在该播放器中实时预览相机视频画面;

方式三:python读取rtsp流

其中将下面的代码中的相应内容替换成你的就OK了,如相机用户名,密码,IP地址和端口号(常见为554)

import cv2
cap = cv2.VideoCapture("rtsp://username:passport@ip:port/Streaming/Channels/1")
ret, frame = cap.read()
while ret:
    ret, frame = cap.read()
    cv2.imshow("frame",frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cv2.destroyAllWindows()
cap.release()

运行上述代码需要你安装相应的opencv库,我在anaconda下运行的,装的是opencv-python库。还需要你去官网下载海康的SDK(针对自己的电脑系统环境下载对应版本)将里面的HCNetSDKCom文件夹放在python代码同目录下!

方法三会出现画面卡顿的现象,具体原因分析可参考:网络摄像机画面卡顿的主要原因有哪些?  视频花屏分析

补充资料:

NTPLIB时间同步问题:

Python通过NTP同步获取时间方法

python ntp服务器同步时间

使用python同步PC本地时间

Python中的NTP时间同步

https://www.cnblogs.com/general-seven/p/5893744.html

搜罗了网上一些关于如何在python中实现海康威视相机的连接与画面播放的资料,最直接的方式是通过rtsp流来实现。海康的rtsp协议格式如下(参考:海康相机使用RTSP):rtsp://[username]:[passwd]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream主码流:rtsp://admin:12345@192.168....
1.视频保存失败,可能是电脑上没有装相应的解码工具。    方案1:将out = cv2.VideoWriter(name_text.get()+'.avi', fourcc, 20, (640, 480))中的第二个参数 fourcc换成-1,这样可以在运行的时候跳出来一个弹框,然后手动选择哪个可以使用,运气好的话第一个就可以用,不过也有都不能成功的情况   方案2:下载xvid 然后将fo
import cv2 url = 'rtsp://admin:我的密码@我的摄像头IP如169.254.115.55:554/h264/ch1/main/av_stream' cap = cv2.VideoCapture(url) while(cap.isOpened()):
通过python调用海康威视工业摄像头并进行图像存储问题(数据流获取问题未能解决) 先说情况,本人是做视觉检测的需要高倍率摄像头进行实时检测,也就是需要深度学习进行图片数据处理,但是这个又是python来进行分析,而海康威视主要程序代码是以C为主的,传过来的数据我也尝试的去解析都是不能转化成python的BGR图像。 具体参照了:通过cv2调用海康威视摄像头,但这个不能调用工业摄像头,通过官方给一个400什么软件要激活摄像头,可是却并不能检测到工业摄像头,通过mvs软件调用摄像头地址进行测试也无法获取到摄
# 将OpenCV图像转换为PIL图像 image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) image = Image.fromarray(image) # 将PIL图像转换为ImageTk格式,以便在tkinter显示 photo = ImageTk.PhotoImage(image) label.config(image=photo) label.image = photo # 每隔10毫秒更新一次画面 root.after(10, show_frame) # 启动循环显示画面 show_frame() # 启动tkinter窗口 root.mainloop() # 释放摄像头资源 cap.release() 希望能对您有所帮助! AttributeError:module 'keras.engine.topology' has no attribute 'load_weights_from_hdf5_group_by_name weixin_46070350: 仍有同样的问题表情包 Anaconda Prompt 怎么切换工作路径到E盘 以及更改默认打开路径 weixin_51457804: 太牛了大神,我试了一下午终于找到你的方法解决了 Python调用海康威视网络相机之——python读取相机rtsp码流显示画面 生命不止,学习不息: 还需要你去官网下载海康的SDK(针对自己的电脑系统环境下载对应版本)将里面的HCNetSDKCom文件夹放在python代码同目录下!??????? 这一步还需要吗? ImportError: torch.utils.ffi is deprecated. Please use cpp extensions instead. m0_47207981: 你好!我遇到了同样的问题,请问你是如何解决的呀? AttributeError:module 'keras.engine.topology' has no attribute 'load_weights_from_hdf5_group_by_name PF___: 按照方案2,我改成saving之后解决了(虽然产生了一堆warning),model.py里面只有3个topology需要替换,改完之后记得保存,然后把jupyter notebook关掉后再打开,就可以成功运行demo了