web js 播放rtsp视频流方案

场景

需要在web端预览海康无线摄像头视频流,所以采用海康自身提供的web sdk无法使用

方案1

rtsp流推送到应用服务器,应用服务器再通过ffmpeg 推送到nginx, js再去拉流
缺点: 多了一层转发,造成了一定的延迟

方案2

通过webRTC方案,使用现有开源插件 webrtc-streamer
https://github.com/mpromonet/webrtc-streamer

实施

  • 采用docker安装
    docker run --net=host -itd --name webrtc-streamer mpromonet/webrtc-streamer:v0.6.5
    -- 注意
        0.6.5 之后的版本会导致api/getIceServers 无法访问,问题还没找到
    
  • 代码示例
    • 去github上下载前端包 https://github.com/mpromonet/webrtc-streamer/releases
    • 解压后,将html文件夹拷贝到项目里面
      • image
    • 具体代码
      <html>
      <head>
      	<script src="html/libs/adapter.min.js" ></script>
      	<script src="html/webrtcstreamer.js" ></script>
      	<script>
      		var webRtcServer      = null;
      		window.onload         = function() {
      			webRtcServer      = new WebRtcStreamer("video", "http://192.168.31.160:8000");
      			webRtcServer.connect("rtsp://192.168.31.199:554/openUrl/Tsca7jq");
      		}
      		window.onbeforeunload = function() { webRtcServer.disconnect(); }
      	</script>
      </head>
      <body>
      <video id="video"></video>
      </body>
      </html>
      
      
  • 注意

    视频流一定要设置成h264格式的,可以在海康摄像头管理界面去设置

  • 效果
    image
posted @   四码难追  阅读(1919)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示