采取的方案
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)
效果

