百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

将摄像头视频流从Rtsp协议转为websocket协议

liuian 2025-10-23 07:07 66 浏览

写在前面

很多通过摄像头拿到的视频流格式都是Rtsp协议的, 比如:海康威视摄像头。 在现代的浏览器中, 已经不支持直接播放Rtsp视频流,而且,海康威视提供的本身的webSdk3.3.0视频插件有很多问题, 比如:视频插件没有dom树的概念, 且总是浮动在所有元素的最上层。 所以, 通过转流方式进行在网页上播放视频是替代官网sdk的一种尝试。

Rtsp视频流是什么?

RTSP(Real Time Streaming Protocol)是一种实时流媒体传输协议,用于在网络上实时传输音视频数据。它可以用于各种应用,例如视频监控、远程教育、视频会议等。

RTSP 是一种基于文本的协议,它使用 TCP 或 UDP 进行传输。RTSP 工作在应用层,它使用 RTP/RTCP 协议来传输音视频数据。

RTSP 的主要特点包括:

  • 实时性:RTSP 可以实时传输音视频数据,因此可以用于视频监控、远程教育等实时应用。
  • 可靠性:RTSP 使用 TCP 或 UDP 进行传输,因此可以保证数据的可靠性。
  • 可扩展性:RTSP 可以扩展到支持多种音视频格式和传输协议。

RTSP 的工作原理如下:

  1. 客户端向服务器发送一个 RTSP OPTIONS 请求,以获取服务器支持的功能。
  2. 服务器向客户端发送一个 RTSP OPTIONS 响应,列出服务器支持的功能。
  3. 客户端向服务器发送一个 RTSP DESCRIBE 请求,以获取媒体流的描述信息。
  4. 服务器向客户端发送一个 RTSP DESCRIBE 响应,包含媒体流的描述信息。
  5. 客户端向服务器发送一个 RTSP SETUP 请求,以建立媒体流的传输会话。
  6. 服务器向客户端发送一个 RTSP SETUP 响应,表示媒体流的传输会话已经建立。
  7. 服务器开始向客户端发送媒体流数据。
  8. 客户端接收媒体流数据并播放。

RTSP 的常见应用场景包括:

  • 视频监控:RTSP 可以用于视频监控系统,实时传输监控摄像头的视频数据。
  • 远程教育:RTSP 可以用于远程教育系统,实时传输课堂教学的视频数据。
  • 视频会议:RTSP 可以用于视频会议系统,实时传输参会者的视频数据。

海康威视通过RTSP获取视频流的方式

海康威视的摄像头通常支持通过RTSP(Real Time Streaming Protocol)获取视频流。以下是通过RTSP获取海康威视摄像头视频流的一般步骤:

  1. 确定RTSP URL格式:
    • 海康威视的RTSP URL通常遵循一定的格式,例如:rtsp://[username]:[password]@[camera-ip-address]:[port]/h264/ch1/main/av_stream
    • 其中,username 和 password 是摄像头的登录凭据,camera-ip-address 是摄像头的IP地址,port 是RTSP服务的端口号(通常为554),/h264/ch1/main/av_stream 是视频流的具体路径。
  1. 设置摄像头:
    • 登录到摄像头的Web界面,找到视频流相关的设置选项。
    • 启用RTSP服务,并设置相应的传输协议(TCP/UDP)和端口号(如果默认端口554未被修改,则无需更改)。
  1. 构建RTSP URL:
    • 根据你的摄像头设置和所需的视频流类型(主码流或子码流),构建正确的RTSP URL。
    • 例如,如果你的摄像头IP是192.168.1.64,用户名是admin,密码是12345,你想要获取主码流,那么RTSP URL将是:rtsp://admin:12345@192.168.1.64:554/h264/ch1/main/av_stream
  1. 使用媒体播放器测试:
    • 在尝试集成到Vue项目之前,首先使用媒体播放器(如VLC或EasyPlayer)测试RTSP URL是否能够正确获取视频流。
    • 将RTSP URL粘贴到媒体播放器的网络流地址栏中,并尝试播放。
  1. 集成到Vue项目中:
    • 由于浏览器通常不直接支持RTSP,你可能需要将RTSP流转换为HLS或WebRTC等浏览器兼容的格式。
    • 使用媒体服务器软件(如Wowza、Kurento、Janus等)进行转换。
    • 在Vue项目中,你可以使用<video>标签或第三方库(如Video.js、Hls.js等)来播放视频流。
  1. 安全性和隐私性:
    • 请确保采取适当的安全措施来保护你的视频流,例如使用HTTPS、加密和身份验证等。
    • 不要将RTSP流直接暴露在互联网上,而是将其限制在安全的内部网络中,并通过VPN或其他安全方式进行远程访问(如果需要的话)。
  1. 根据上述描述, 结合你的摄像头设备, 获取 Rtsp 视频地址。 比如: rtsp://admin:12345@192.168.1.64:554/h264/ch1/main/av_stream(后面这一串基本是固定), 你知道知道你设备登录的 用户名, 密码, IP地址, 端口号,就可以拼接出该地址。

操作步骤

通过vlc检查rtsp视频流是否可用

此处为语雀图册卡片,点击链接查看:
https://www.yuque.com/clean-pfi5o/kg4uhy/seslxg24moabpiyg#lqxrb

点击串流, vlc 软件能正常播放视频即可

本地下载ffmpeg软件,并配置到path目录中

ffmpeg下载,加压到你的系统中

ffmpeg-6.1.1-full_build.7z

将ffmpeg软件的bin目录配置到系统path路径

此处为语雀图册卡片,点击链接查看:
https://www.yuque.com/clean-pfi5o/kg4uhy/seslxg24moabpiyg#AWXDR

本地安装Node.js

参考:

https://blog.csdn.net/redrose2100/article/details/121675915

下载jsmpeg.min.js

jsmpeg.min.js

编写Server.js代码

const Stream = require("node-rtsp-stream");

new Stream({
  name: "camera3",
  streamUrl: "rtsp://username:password@192.168.3.xxx:554/h264/ch1/main/av_stream",
  wsPort: 10023,
  ffmpegOptions: {
    '-stats': '',
    '-r': 20,
    '-s': '1280 720'
  },
});

编写客户端html

<!DOCTYPE html>
<html lang="zh">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="./jsmpeg.min.js"></script>

  </head>
  <body>
    <canvas id="canvas"></canvas>

    <script>

      const canvas = document.querySelector("#canvas");

      new JSMpeg.Player("ws://localhost:10023", { canvas });

    </script>
  </body>
</html>

代码总目录结构

hello.rar

运行代码

安装Node依赖

npm i node-rtsp-stream

运行server端,进行转码

出现次效果,证明已经在成功转码。

双击Html运行查看视频效果

只要写的 rtps 地址是对的, 应该可以在浏览器中,正常播放视频。 我亲测可以。

写在最后

这种方式是将Rtsp格式的视频流转换成ws://(websocket,我们使用的海康威视摄像头不支持websocket取流)格式的视频流。 然后通过 JSMpeg播放器配合h5的canvas标签使用。 就视频转流来讲,是成功的。 而且ws://格式的视频流, 前端有不少支持方案。

但是,现在摄像头都带有云台(控制摄像头上下左右移动), 语音对讲等功能, 依然需要探索。

参考:

https://zhuanlan.zhihu.com/p/654675504?utm_id=0

https://juejin.cn/post/7221858081485963324

相关推荐

电脑xp怎么换系统win7(电脑xp系统换win7教程)

第一种方法:自助安装win7系统  我们在进行自助安装win7系统之前我们要保证我们的电脑是联网的。为了能更加顺利的完成对xp系统的升级,我们的电脑最好是能高速上网的,只有能联网我们才可以下载最新的系...

appstore官方网站(appstore.apple.com)

Appstore即applicationstore,通常理解为应用商店。Appstore是苹果公司基于iPhone的软件应用商店,向iPhone的用户提供第三方的应用软件服务,这是苹果开创的一...

电脑开不了机怎么办显示英文字母

win7操作系统电脑在开机的时候屏幕界面出现CLIENTMACADDR,然后就一直停在了这个界面,要等很长时间才能进入系统登入界面。出现这样问题的原因是什么?这是因为网卡启用了BOOTROM芯片...

win7此windows副本不是正版(win7 此windows副本不是正版)

win7系统提示副本不是正版解决方法:1.打开设备,调出运行窗口,输入命令“cmd”,并按下回车键;2.这时命令提示符窗口便会自动弹出;3.输入命令“SLMGR-REARM”,再按下回车键;4.命令...

win7安装选版本(win7选哪个版本)

Win7旗舰版更好用。Windows7旗舰版属于微软公司开发的Windows7系统系列中的终结版本,是为了取代WindowsXP系统的新系统,Windows7的版本还有简易版、家庭普通版、家庭高...

电脑psd文件用什么打开(电脑上psd文件打不开)
电脑psd文件用什么打开(电脑上psd文件打不开)

具体操作步骤如下:1、首先鼠标右键单击PSD格式的图片,然后点击“打开方式”选项。2、然后在该页面中点击“选择默认程序”选项。3、之后在该页面中点击“浏览”选项。4、然后在该页面中点击选择要打开的软件后点击“确定”选项即可打开了。PSD文...

2026-01-14 01:05 liuian

qq浏览器打开网址(qq浏览器打开网址被禁止访问怎么办)
  • qq浏览器打开网址(qq浏览器打开网址被禁止访问怎么办)
  • qq浏览器打开网址(qq浏览器打开网址被禁止访问怎么办)
  • qq浏览器打开网址(qq浏览器打开网址被禁止访问怎么办)
  • qq浏览器打开网址(qq浏览器打开网址被禁止访问怎么办)
office2010免费版激活(office2010 免激活)
  • office2010免费版激活(office2010 免激活)
  • office2010免费版激活(office2010 免激活)
  • office2010免费版激活(office2010 免激活)
  • office2010免费版激活(office2010 免激活)
常用的电脑快捷键有哪些(电脑常使用的快捷键)
  • 常用的电脑快捷键有哪些(电脑常使用的快捷键)
  • 常用的电脑快捷键有哪些(电脑常使用的快捷键)
  • 常用的电脑快捷键有哪些(电脑常使用的快捷键)
  • 常用的电脑快捷键有哪些(电脑常使用的快捷键)
tplink登陆密码(tplink登录密码)

TP-LINK路由器默认的出厂登录用户名和密码均为小写字母“admin”。该密码是保护路由器免遭攻击的重要密码,忘记了登录的管理员密码,只能通过路由器的Reset复位键(部分路由器为Reset小孔)进...

windows8中文版激活(windows8激活怎么操作)

要激活Windows8操作系统,可以按照以下步骤进行操作:1.打开“开始”菜单,点击桌面图标,进入桌面模式。2.从屏幕右侧滑动以打开“设置”栏,然后点击“更改PC设置”。3.在左侧导航栏中选择...

手机app怎么下载(手机app怎么下载安装)
手机app怎么下载(手机app怎么下载安装)

每个手机上都有下载APP的应用商店,以下面为例演示,下载方法如下:1、首先在手机上找到并打开应用商店。2、接下来进入到应用商店之后,选择红色箭头所指处的搜索栏,搜索需要下载的应用。3、接下来会弹出搜索的应用,点击红色箭头所...

2026-01-13 23:37 liuian

dell电脑蓝屏开不了机怎么办

电脑蓝屏的解决方法,先软件后硬件,一般软件问题比较多一点。1、最后一次正确的配置:在开机启动未进入到操作系统之前我们不停按下F8键,选择“最后一次正确的配置”然后回车即可。2、安全模式:如果“最后一次...

如何单独改c盘为mbr模式(如何c盘改为mbr分区 免格式化)

   硬盘分为两种格式的分区,一种是GPT,一种是MBR,一般win7或者以下系统是安装在MBR分区中,而win8和win10一般是安装在gpt分区中的,这两个分区格...

win7activation解压密码(windows7解压文件去哪里了)

若使用的是vivo手机,忘记vivo账号密码、锁屏密码,可携带手机、身份证、有效的购机凭证前往服务中心处理,进入浏览器搜索vivo官网--服务--服务中心--查看全部--选择省市查询当地的服务中心地址...