采取的方案

RTSPtoWebRTC + jswebrtc

开源项目:

流媒体:https://github.com/deepch/RTSPtoWebRTC

播放器:https://gitee.com/kernelj/jswebrtc

基本原理:

通过浏览器和RTSPtoWebRTC交换sdp信息,然后读取rtp包或者发送rtp的方式进行

方案1:通过RTSPtoWebRTC config.json 标记流id及流地址,接口请求时,在回传音视频数据

<script>var video = document.getElementById('video-webrtc');var url = 'webrtc://127.0.0.1:8083/stream/1';var player = new JSWebrtc.Player(url, { video: video, autoplay: true, onPlay: (obj) => { console.log("start play") } });//player.stop();</script>

方案2:调用jswebrtc.min.js时,传入流媒体服务器地址,rtsp地址,流媒体服务器接到请求时再去拉流,生成并保存流id,下次再有相同的rtsp请求时,直接返回音视频信息

    <script>var video = document.getElementById('video-webrtc');var url = "http://192.168.0.56:8083"; var player = new JSWebrtc.Player(url, { video: video, rtspurl: 'rtsp://192.168.0.109:554/rtp/34020000001320000012-34020000001320000012', autoplay: true, onPlay: (obj) => { console.log("start play") } });//player.stop();</script>程序后台地址:localhost:8083
配置文件的两种配置方式配置1:通过配置文件取流,流id以live开头{"server": {"http_port": ":8083"},"streams": {"live1": {"on_demand": false,"disable_audio": true,"url": "rtsp://192.168.0.109:554/rtp/34020000001110000087-34020000001320000112"},"live2": {"on_demand": false,"disable_audio": true,"url": "rtsp://192.168.0.109:554/rtp/34020000001110000087-34020000001320000113"},"live3": {"on_demand": false,"disable_audio": true,"url": "rtsp://192.168.0.109:554/rtp/34020000001110000087-34020000001320000114"},"live4": {"on_demand": false,"disable_audio": true,"url": "rtsp://192.168.0.109:554/rtp/34020000001110000087-34020000001320000115"},"live5": {"on_demand": false,"disable_audio": true,"url": "rtsp://192.168.0.109:554/rtp/34020000001110000087-34020000001320000116"},"live6": {"on_demand": false,"disable_audio": true,"url": "rtsp://192.168.0.109:554/rtp/34020000001110000087-34020000001320000117"},"live7": {"on_demand": false,"disable_audio": true,"url": "rtsp://192.168.0.109:554/rtp/34020000001110000087-34020000001320000118"},"live8": {"on_demand": false,"disable_audio": true,"url": "rtsp://192.168.0.109:554/rtp/34020000001320000021-34020000001310000021"},"live9": {"on_demand": false,"disable_audio": true,"url": "rtsp://192.168.0.109:554/rtp/34020000001320000020-34020000001320000020"}}
}配置2:通过api取流,流id从1开始{"server": {"http_port": ":8083"},"streams": {}
}程序启动后访问8083,如果没有流,提示:No Stream Found (add stream and reload page)

效果

html播放rtsp低延时(局域网测试500ms左右)相关推荐

  1. 监控摄像头RTSP低延时无插件直播解决方案

    监控摄像头RTSP低延时无插件直播解决方案 第一章 应用简介 当前,视频监控应用场景越来越多,传统的视频监控厂商提供的解决方案需要安装厂商自己的手机APP或PC客户端软件,非常不方便在互联网环境下与第 ...

  2. Android 直播 播放器 IJK播放器低延时120ms

    基于上一篇文件rtmp推流<推流文章地址传送门>,需要解码播放器 ,由于是直播 所以需要延时优化到极致,采用播放器也是ijk开源播放器直接修改,目前测试1080p+音频延时效果如下图: 在 ...

  3. 支持8K播放且低延时高并发全功能的流媒体播放器如何降低直播延迟?

    背景 直播行业大火,大家可以在日常生活中接触到各类直播,例如游戏直播.乐秀.在线教育.发布会等.无论哪种类型的直播,延时是直播过程中需要关注的重要方面.直播实现低延迟,是对大部分直播产品的要求,低延迟 ...

  4. 支持8K播放,低延时高并发流媒体音视频播放器EasyPlayer.js是如何实现播放8K视频的

    需求分析 一般对于一个播放器,应该支持如下几种显示模式: 等比例,最大化区域显示,不裁剪 等比例,最大区域显示,裁剪 拉伸显示,铺满全屏 要实现这几种显示模式.其实只要对播放控件的布局进行些许调整即可 ...

  5. 传统大华海康宇视安防摄像头RTSP流如何转webrtc直播低延时无插件浏览器视频播放

    传统大华海康宇视安防摄像头RTSP流如何转webrtc直播低延时无插件浏览器视频播放 1.问题场景 2.WEBRTC延时对比 3.LiveNVR支持WEBRTC输出 4.RTSP/HLS/FLV/RT ...

  6. LiveQing视频点播RTMP推流直播服务支持H5无插件WebRTC超低延时视频直播

    LiveQing视频点播RTMP推流直播服务支持H5无插件WebRTC超低延时视频直播 1.WebRTC超低延时视频直播 2.WebRTC延时对比 3.LiveQing播放WebRTC流 4.分屏页面 ...

  7. 可扩展性强且经济高效?RealMedia HD低延时直播方案为你支招

    欢迎光临新一期的Real编码研习社,本期我们有幸请到了RealNetworks媒体解决方案架构师罗强,想了解低延时的直播方案如何能兼具可扩展性强和经济高效的特点,今天这一期一定不要错过哦~ 一.在您看 ...

  8. 基于libVLC的视频播放器之二:使用VLC-Qt播放RTSP流

    此篇是 使用VLC浏览器插件播放RTSP流的姊妹篇. 一.直接使用libVLC libVLC是VLC media player多媒体框架的核心引擎和接口,开发者使用它能轻松的创建大量具有VLC特性的应 ...

  9. rtsp服务器如何低延时linux,web实现RTSP无插件低延迟播放方案整理

    Web播放RTSP方案调研 项目需求:web无插件播放rtsp流,低延迟,支持多客户端 1.rtsp to websocket FFMPEG+JSMPEG实现网页流媒体播放 https://www.c ...

最新文章

  1. Android开发资料学习(转载/链接)
  2. RocketMQ原理解析-producer 4.发送分布式事物消息
  3. 最长回文子串Python解法
  4. c#多维数组的建立及操作 总结
  5. IIS ARR设置HTTP跳转到HTTPS
  6. 关于css 的AST 语法树的理解
  7. 搭建本地Ubuntu14.04源
  8. php一定要用phpstudy,用phpstudy有什么好处
  9. csv导入mysql php实现_PHP实现csv文件导入mysql数据库的方法
  10. mysql sharding 知乎_分库分表系列(1)-shardingsphere核心概念
  11. paip.java 架构师之路以及java高级技术
  12. JavaScript学习指南笔记
  13. 概率论与数理统计公式整理
  14. 内置平头哥玄铁的WiFi和蓝牙芯片
  15. 我是如何一步一步爬上 「64K限制」 的坑
  16. 基于VS2017的C++ SuperLU混合编程
  17. python批量修改Excel文件后缀csv为xlsx
  18. vscode常用插件-Auto Close Tag
  19. 旁观OpenGL里的透视投影矩阵
  20. Java分布式跟踪系统Zipkin(二):Brave源码分析-Tracer和Span

热门文章

  1. mysql数据自增ID为2的解决办法
  2. dax和m的区别_德国股票指数DAX, MDAX与TecDAX的区别是什么?
  3. ENSP 防火墙USG6000V NAT 设置(全场景)
  4. 作为一个程序员,你是怎么管理文档资料的?我这个方法特别方便
  5. ftp文件传输(适用于两台通过网线直连的电脑)
  6. 温度控制器matlab,某温度控制系统的MATLAB仿真.doc
  7. android 西班牙_分析西班牙足球联赛(西甲)
  8. [经验分享] 覃超线上直播课 如何快速搞定秋招算法面试
  9. ssh 连接其他服务器
  10. MultiDex精补篇,进一步知道MultiDex的配置