首页 > 系统相关 >Windows PC、 Linux、 Android、 iOS多平台支持H5无插件播放RTSP摄像机解决方案

Windows PC、 Linux、 Android、 iOS多平台支持H5无插件播放RTSP摄像机解决方案

时间:2023-08-25 13:01:35浏览次数:48  
标签:分发 插件 流媒体 Windows RTSP H5 播放

需求分析

视频流媒体监控行业已经进入互联网时代,浏览器承载了绝大多数的互联网访问流量,目前在网页上播RTSP流的普遍做法是将RTSP转成互联网直播协议RTMP或者HLS;而RTMP协议播放需要Flash插件,且其衍生的FLV或者HLS协议延迟很大(2s以上) ,根本达不到视频流媒体传输低延迟的要求。


早年风靡一时的互联网直播RTMP协议,只有flash浏览器插件播放器才能支持,而Flash不支持RTSP,以后估计也不会支持,而FLASH插件也已经被浏览器厂商淘汰;


那么我们可以自己做浏览器插件播放RTSP,通过npapi、ppapi插件,IE用的ocx插件就可以把播放器可执行程序做成插件给浏览器调用;但是,兼容性太差了,开发成本过高。在PC web兼容性上面,目前最好的方案是flash或者H5,在手机 web/微信兼容上面,毫无疑问,H5是唯一选择;


解决方案

如何实现解决上述需求中的几点问题,解决方案如下:


通过H5直接播放RTSP协议


在PC端通过流媒体输出兼容性强的RTSP协议,通过WEBSOCKET直接和H5交互直接播放RTSP协议,那么以上问题就迎刃而解了,即保证了低延时又能直接网页端无插件播放,简单高效;同时同步输出:rtmp/hls/http-flv多种码流,增加前端的兼容适配,就能完美地达到想要的方案,总结来说,需要通过以下几个步骤:


RTSP拉流;

音视频转码(可选);

流媒体服务器RTSP转发+WEBSOCKET代理;

流媒体服务器多协议转发RTMP/HTTP-FLV/HLS/WS-FLV;

前端H5无插件取流播放;

技术实现

RTSP拉流

目前市面上能非常兼容地拉取各个厂家的RTSP流的方案总结来说有两种:

Live555


Live555取流实时性高,但是兼容性差,对某些小众厂家的RTSP流或者标准性较差的RTSP流可能存在拉不到流的问题;


FFmpeg


FFmpeg拉流稳定性高,兼容性强,实时性相对较低,我们通常可以通过调整参数来提高实时性。


当然,两种都能比较不错地请求获取到各个厂家的摄像机码流,但从兼容性、稳定性可靠性、以及可操作的灵活角度上来说,FFmpeg更胜一筹,


没有绝对,根据需求,也许您就只需要接入某两款特定类型的摄像机呢,怎么适合现场需求怎么来;


2.音视频转码(H.265转H.264,音频转AAC)


由于目前WEB前端H5的支持上,对H264的支持更好一些,比如:H264支持硬件解码,解码效率更高;而H265只支持软解吗,解码效率相对较低;所以,我们需要将各种视频格式:H.265、MJPEG、MPEG4转成H.264再转发给H5播放,各种音频格式:G.711A/U、G.726,都统一转码成AAC格式,同样的道理,H5对AAC支持更好一些;而音视频转码,业界公认的神奇当然是FFmpeg。


3.流媒体服务器RTSP转发+WEBSOCKET代理


SkeyeSMS支持RTSP转发流媒体服务,我们参考Live555的轻量级RTSPServer流媒体服务设计思想,充分吸收其超低延迟的特点,在此基础上设计多线程分发策略,提高RTSP流媒体分发并发能力和分发效率,弥补Live555单线程分发的并发不足的缺陷。同时,增加WEBSocket代理算法策略,在不影响原有RTSPServer分发策略的基础上共用一个分发缓存队列,建立和H5交互的高效分发通道,达到页面多并发无插件播放RTSP的效果。


关于时间戳调优上,部分监控厂商(大华、雄迈等)的摄像机,其出流的时间戳是极其不均匀的,这就会导致流媒体分发的流经常会出现快放、慢放、卡顿缓冲加载的现象,所以就需要在流媒体分发时对时间戳进行一次均匀化,这一点上可以参考的ffmpeg的-re命令的方案,对时间戳进行了优化,保证均匀播放;


4.流媒体服务器多协议转发RTMP/FLV/HLS

这里说到的RTMP服务器有几种输出协议:


* rtmp

* hls

* http-flv

* ws-flv


liveweb流媒体服务参考nginx-rtmp-module流媒体rtmp转发服务,在此基础上开发 了对 http-flv和ws-flv协议的支持,剔除了其RTMP推流模块,以免无端增加流转发延迟,并优化提高流媒体转发的效率,实现高效、稳定、高并发的多流媒体协议分发;


5.前端兼容取流播放


liveweb流媒体前端采用业界广泛使用的VUE+elementUI先进的前端框架,能响应式地接受各种不同平台终端的请求,为PC web、手机 web、微信分配从网络摄像机流前端获取RTSP并通过liveweb媒体服务器转发rtsp、rtmp、hls、http-flv、ws-flv等直播流;

Windows PC、 Linux、 Android、 iOS多平台支持H5无插件播放RTSP摄像机解决方案_流媒体

标签:分发,插件,流媒体,Windows,RTSP,H5,播放
From: https://blog.51cto.com/u_16159766/7229253

相关文章

  • windows10下腾讯会议安装
    一、下载官网:腾讯会议官方——腾讯会议会开会(tencent.com)  根据自己操作系统选择版本,我选择windows 点击版本,会下载。 下载完成后,找到路径。  2、安装选择路径的安装包,右键,管理员身份运行。 默认:中文 选择我接受 可以修改安装目录,然后点击安装......
  • windows11 安装kabka客户端
    1、下载安装包http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html注意:根据32/64位操作系统下载对应的安装包2、点击新建系统变量:JAVA_HOME=C:\ProgramFiles\Java\jdk-1.8  截图   如图安装成功环境 1、下载安装包http:/......
  • LangChain-Chatchat学习资料-Windows开发部署
    在windows10下的安装部署参考资料1.LacnChain-Chatchat项目基础环境准备本人使用的是Windows10专业版22H2版本,已经安装了Python3.10,CUDA11.8版本,miniconda3。硬件采用联想R9000P,AMDR75800H,16G内存,RTX30606G。安装依赖#使用conda安装激活环境condacreate-nLangchain......
  • Windows 虚拟地址 到底是如何映射到 物理地址 的?
    一:背景1.讲故事我发现有很多的.NET程序员写了很多年的代码都没弄清楚什么是虚拟地址,更不用谈什么是物理地址以及Windows是如何实现地址映射的了?这一篇我们就来聊一聊这两者之间的联系。二:地址映射研究1.找虚拟地址怎么去找虚拟地址呢?相信很多朋友都知道应用程序用的......
  • windows wget与curl
     wget下载https://eternallybored.org/misc/wget/curl下载https://curl.se/download.html  ffmpet下载http://ffmpeg.org/......
  • VS插件DevExpress CodeRush v23.1 - 支持Visual Studio ARM
    DevExpress CodeRush是一个强大的VisualStudio.NET插件,它利用整合技术,通过促进开发者和团队效率来提升开发者体验。CodeRush能帮助你以极高的效率创建和维护源代码。Consume-first申明,强大的模板,智能的选择工具,智能代码分析和创新的导航以及一个无与伦比的重构集,在它们的帮助......
  • discuz3.4,关于安装dev8133插件(购买帖子内容),在论坛对用户组开启评分功能后,用户一点击
    漏洞修补方案一:后端措施在source/module/forum/forum_misc.php文件中,$post=C::t('forum_post')->fetch('tid:'.$_G['tid'],$_GET['pid']);//这一步调用大C的静态方法t()从表forum_post中根据tid和pid共同查询出当前要评分的帖子主体内容对此处查询出来的$post数据直接后端进......
  • Exceptionless系列:简介和部署(Windows、Linux、Docker)
    目录一、简介二、版本三、运行说明1、Exceptionless2、Elasticsearch3、Exceptionless.UI四、打包Exceptionless.UI五、window部署1.Elasticsearch2.Exceptionless六、Docker部署一、简介Exceptionless为您提供了跟踪错误、日志和事件的工具,同时指导您找到可行的解决方案。首先......
  • windows远程桌面到ubuntu16.04
    环境ubuntu:16.04windows:windows10目标让windows可以使用RemoteDesktop客记端远程到ubuntu16.04安装事宜windowns无需安装ubuntu16.04需要安装xrdp和xfce4安装sudoaptinstallxrdpxfce4查看安装版本,发现默认安装的是xrdp0.6.1修改配置sudoechoxfce4-sessi......
  • Windows Server2008R2 服务器Paged Pool占用过高的问题
    这台服务器一直运行的好好的,但最近发现经常内存占用了99%,重启后过几天内存又涨到99%。运行的应用软件占的内存并不高,任务管理器所有进程占用内存加起来也远远不到99%。下载了RamMap,发现是PagedPool占用了绝大多数的内存; 下载poolmon.exe,终端中运行poolmon.exe-p-b,再按下......