网页播放rtsp视频流最终方案

背景

之前转载过一位大佬的采用客户端ffmpeg+脚本jsmpeg+服务端node的解决方案,通过在服务器将rtsp转码后,再使用websocket推送到前端,这种办法可以实现h5中播放rtsp视频流,但是使用几天后,发现了不少问题:

1. ffmpeg转码存在比较严重的延迟,大概在1s左右。通过优化命令,使用硬件加速比较复杂,对于我这种音频处理经验为0的小白来说,学习成本过大,所以硬件加速这一个思路就被我抛弃了。

2. ffmpeg转码有时候特卡顿,对于搞安防的我们来说是灭顶之灾。

3. jsmpeg官方说明全英文,英语小白的我搞了半天没懂怎么播放多路视频流。摸索的过程中浏览器控制台老是报各种各样异常,度娘中居然找不到解决方案。        

总的来说,就是我比较菜,不能一键解决的方案都会被我抛弃。

方案

那么我们必然得换一种方案了,度年上基本是广告,要么就是换低版本浏览器加插件,要么中间件要我们交智商税!

没办法,只能上github碰碰运气,没想到挖到了宝藏,我可真是个小机灵鬼。

废话说的差不多了,上链接

网页播放RTSP视频流低延迟解决方案RTSP to WebRTC use Pion WebRTC. Contribute to deepch/RTSPtoWebRTC development by creating an account on GitHub.https://github.com/deepch/RTSPtoWebRTC这是github上我找到得比较好得开源解决方案,是使用Go语言开发得,大家没有Go语言基础得可以上菜鸟教程Go教程篇学习个几分钟,安装好环境就Ok,我也是当场学得,抱着试一试得心态。

Go 语言教程 | 菜鸟教程

操作

我们聊一下简单介绍怎么玩这个开源项目,其实项目得作者在readme文件中写的比较好了,我说一下自己遇到问题就好。

1. 下载好项目得zip压缩包后,我们解压,并优先修改项目中得config.json文件得rtsp视频流地址为我们得视频流地址

2. 接着就可以用go run *.go命令运行项目了,启动后如果没报错,就可以使用浏览器打开http://127.0.0.1:8083查看项目得demo效果了

效果

延迟:<500ms

清晰度: 高

性能:稳定

总体来说,这是我目前为止遇到的最满意的解决方案,平台搭建简单,效果好,写此博文,希望大家不要再被坑了。

你可能感兴趣的:(公司共享,rtsp,视频处理,go,rtsp,web)