RTMP有些浏览器不兼容,有的时候可以通过WebSocket+JS传输图片的方式来显示直播图片流,这样基本可以在任何浏览器里播放图片。我们可以开发一个WebSocket服务部署在本地,这个服务负责把视频流解析成图片推送给JS端。
var wsCtrl = new WebSocket("ws://127.0.0.1/ctrl/");
//Establish channel code
....
var wsVideo = new WebSocket("ws://127.0.0.1/video/channel1");
wsVideo.onmessage = function(evt)
{
//Method 1
document.getElementById("img1").src = URL.createObjectURL(evt.data);
//Method 2
var read = new FileReader();
read.onload = function(e)
{
document.getElementById("img2").src = e.target.result;
}
read.readAsDataURL(evt.data);
}
2款C++版WebSocket服务:websocketpp、QWebSocketServer。