在视频应用中,我们一般都需要基于摄像头或录像机的视频流进行二次开发,那么就涉及到如何将视频流取出来。

在摄像机安装好之后,一般是通过局域网与本地的服务器进行连接,要取录像机的视频流就要在局域网范围内进行操作。

步骤:

1)获取摄像机的IP地址、配置的用户名和密码,按照格式写出RTSP协议地址码

2)用VLC工具连接,测试是否可以取出视频流

3)python中通过opencv读取视频流

详细说明:

1)摄像机的IP地址、配置的用户名和密码是已知的参数,在安装的时候即已配置好。RTSP协议地址码根据所用摄像机的型号来定,以海康摄像头为例(来自于海康的客服):

★目前海康录像机、网络摄像机,网络球机的RTSP单播取流格式如下(车载录像机不支持RTSP取流):

rtsp://用户名:密码@IP:554/Streaming/Channels/101

→录像机示例:

取第1个通道的主码流预览

rtsp://admin:hik12345@10.16.4.25:554/Streaming/Channels/101

取第1个通道的子码流预览

rtsp://admin:hik12345@10.16.4.25:554/Streaming/Channels/102

取第1个通道的第三码流预览

rtsp://admin:hik12345@10.16.4.25:554/Streaming/Channels/103

取第12个通道的主码流预览

rtsp://admin:hik12345@10.16.4.25:554/Streaming/Channels/1201

→网络摄像机/网络球机示例:

取主码流的URL:

rtsp://admin:hik123456@192.168.1.64:554/Streaming/Channels/101

★如果是多播取流的话,则使用以下路径

rtsp://用户名:密码@IP:554/Streaming/Channels/101?transportmode=unicast

→录像机示例:

取第1个通道的主码流预览

rtsp://admin:hik12345@10.16.4.25:554/Streaming/Channels/101?transportmode=unicast

2)我一般先用VLC工具测试是否可以取出视频流,当然这一步不是必须的。

点击 媒体-->打开网络串流-->输入RTSP地址码

如果能将实时的视频画面取出来,就表明RTSP协议地址码是正确的。

3)用python代码进行取流

代码如下:

import cv2

cap = cv2.VideoCapture('你的RTSP协议地址码')

print(cap)
ret,frame = cap.read()
while ret:
ret,frame = cap.read()
cv2.imshow("current frame",frame)
cv2.imwrite('frame.jpg', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
cap.release()

最后在此基础上进行python的二次开发。

RTSP协议进行视频取流的方法、注意点及python实现的更多相关文章

  1. 目前使用过的各大厂商rtsp取流的url

    目前使用过的各大厂商取流规则是在实际的工作中遇到的相关视频接入问题,通过rtsp协议接入视频数据的一些记录,其中的图片可能来源于网络,内容部分来源于网络,本人仅仅是对相关内容作了汇总. 海康RTSP取 ...

  2. 各大厂RTSP取流的URI

    目前使用过的各大厂商取流规则是在实际的工作中遇到的相关视频接入问题,通过rtsp协议接入视频数据的一些记录,其中的图片可能来源于网络,内容部分来源于网络,本人仅仅是对相关内容作了汇总. 海康RTSP取 ...

  3. Html5 <video>实现摄像头监控问题:html5并不支持rtsp协议,所以使用vlc进行转码,将rtsp转http流,这样<video>才可以直接播放

    今天在写html5中播放旷视C2摄像头视频监控的功能,查了很多资料,才发现Html5 <video>并不支持rtsp协议.后来查到使用第三方转码才得以实现. 这里把方法写下来分享给大家. ...

  4. 【视频开发】EasyIPCamera通过RTSP协议接入海康、大华等摄像机,摒弃私有SDK接入弊端

    近期工作中需要开发一套视频监控系统,实现WEB端.手机APP端预览局域网内的道路监控摄像机,我负责一些后台服务的开发工作. 由于之前项目中的程序都是采用私有协议.各摄像机厂商的SDK进行视频监控系统开 ...

  5. RTMP、RTSP、HTTP视频协议详解(转)

    一.RTMP.RTSP.HTTP协议 这三个协议都属于互联网 TCP/IP 五层体系结构中应用层的协议.理论上这三种都可以用来做视频直播或点播.但通常来说,直播一般用 RTMP.RTSP.而点播用 H ...

  6. 最新海康摄像机、NVR、流媒体服务器、回放取流RTSP地址规则说明

    本文档主要介绍海康威视设备预览.回放.流媒体取流的RTSP URL和IE直接预览.回放的HTTP URL. RTSP为取流协议,取到码流后需要解码显示,可以通过VLC播放器进行测试,IE等浏览器网页不 ...

  7. Java 监控直播流rtsp协议转rtmp、hls、httpflv协议返回浏览器

    Java 监控直播流rtsp协议转rtmp.hls.httpflv协议返回浏览器 目录 需求背景: 一:了解音视频流协议: 二:方案一 rtsp 转rtmp 1.下载nginx + nginx-rtm ...

  8. 海康RTSP取流URL格式

    预览取流url [海康威视]举例说明: 主码流取流: rtsp://admin:12345@192.0.0.64:554/h264/ch1/main/av_stream 子码流取流: rtsp://a ...

  9. RTSP取流设备密码含@

    一.rtsp取流格式简介 RTSP的基本取流格式为:rtsp://username:password@ip_addr/... 如海康的ip地址为:rtsp://admin:admin123@10.1. ...

随机推荐

  1. 数位dp对于状态描述与发现的一些感悟

    今天刷的数位dp 第一题看了题解以后知道了数位dp的基本板子,写数位dp的方式(运用记忆化递归的方法)已经基本固定. 那么接下来的难点主要还是对于题目描述的问题,如何抽象成dp中的状态.就今天刷的题来 ...

  2. java.lang.ClassNotFoundException :xxxxxxx

    码的!java.lang.ClassNotFoundException: org.springframework.jdbc.core.RowMapper这个错误搞了半天 因为写的项目是手动建的WEB- ...

  3. HTTP接口抓包工具之Fiddler

    Fiddler的基本功能介绍: Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了 ...

  4. u-boot的环境变量详解

    u-boot的环境变量      u-boot的环境变量是使用u-boot的关键,它可以由你自己定义的,但是其中有一些也是大家经常使用,约定熟成的,有一些是u-boot自己定义的,更改这些名字会出现错 ...

  5. C++走向远洋——27(项目三,时间类)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:time.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  6. Cenots 7 通过Yum 安装Node.js 报错问题

    环境:CentOS Linux release 7.3.1611 (Core) 安装报错信息: [cenots7@localhost ~]$ sudo yum -y install npm Loade ...

  7. CentOS7 安装python 3.5 及 pip安装

    1.CentOS7 安装Python 的依赖包 # yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-d ...

  8. 端口占用的一种形式 Failed to initialize end point associated with ProtocolHandler ["ajp-bio-8090"] java.net.BindException: Address already in use: JVM_Bind <null>:8090

    严重: Failed to initialize end point associated with ProtocolHandler ["ajp-bio-8090"]java.ne ...

  9. grid实战之微信钱包 腾讯服务界面

    网格布局简介 CSS3网格布局是让开发人员设计一个网格并将内容放在这些网格内.而不是使用浮动制作一个网格,实际上是你将一个元素声明为一个网格容器,并把元素内容置于网格中. 有一些浏览器是不支持网格布局 ...

  10. layui表格数据渲染SpringBoot+Thymeleaf返回的数据时报错(Caused by: org.attoparser.ParseException: Could not parse as expression: ")

    layui table渲染数据时报错(Caused by: org.attoparser.ParseException: Could not parse as expression: ") ...