rtsp是一种实时传输协议,通过各种百度了解,得出结论:浏览器是不支持播放rtsp流的,必须经过后端转码推流。

实现思路:借助node搭建转码推流服务,再使用JSMpeg播放。

rtsp2web是一个依赖 ffmpeg,能实时将传入的 rtsp 视频流转码成图像数据并通过 ws 推送到前端的智能工具。

前端页面借助 jsmpeg 就可以很轻松的实现播放了。

而且 rtsp2web 还有以下特点:

  • 并发,支持同时播放多路视频。
  • 合并同源,同时播放多个同一个rtsp视频源时,只会创建一个转码推流进程,不会创建多个。
  • 智能释放资源,智能检测当前没有使用的转码推流进程,将其关闭,并释放电脑资源

废话不多说,直接上干活。

1.安装node环境(这个就不多说了,直接官网下载稳定版本)

2.下载ffmpeg

2.1:直接ffmpeg官网下载

在web页面中直接播放rtsp视频流

选择合适的下载,我下载的第二个。

 2.2:下载解压后就能在 bin 文件夹下能看到三个可执行程序:ffmpeg、ffplay、ffprobe,配置好环境变量后即可使用。

在web页面中直接播放rtsp视频流

在web页面中直接播放rtsp视频流

 验证是否成功:
cmd窗口输入ffmpeg -version 。如下图则安装成功。

在web页面中直接播放rtsp视频流

到这一步ffmpeg已经准备完成

3.运行rtsp2web

3.1:创建一个空的目录(目录名不能是rtsp2web),进入目录后,依次运行下面的命令:

在web页面中直接播放rtsp视频流

3.2: 在目录下创建index.js文件内容如下:

在web页面中直接播放rtsp视频流

3.3:运行命令: node index.js 即可。

在web页面中直接播放rtsp视频流

在web页面中直接播放rtsp视频流

注意:我传入videoSize时报错,所以我没传入,默认是1920x1080

到此转码推流服务已经搭建好(服务得一直启动)

4.前端代码

4.1:下载jsmpeg.min,js

4.2:index.html文件引入

在web页面中直接播放rtsp视频流

 4.2:创建canvas容器用来播放视频

在web页面中直接播放rtsp视频流

4.3: 创建视频源播放实例

在web页面中直接播放rtsp视频流

参数说明点此官网说明

4.4:实际效果查看(到此就算完成了)

 5.不用的时候记得及时销毁

在web页面中直接播放rtsp视频流

6.另附上全屏代码

在web页面中直接播放rtsp视频流

 以上记录使用(纯属个人见解,如有错误欢迎指正)谢谢大家。

哈哈哈,终于搞定一个头大的功能!!!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。