采取的方案
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)
效果
本文含有隐藏内容,请 开通VIP 后查看