我正在寻找一种解决方案,以通过浏览器上的websocket播放来自本机服务器的原始h264流。我在JavaScript中尝试了许多第三方h264解码器,每个解码器都有其自己的问题。基于百老汇的解码器无法解码主要和高清晰度的h264。其他解码器太慢,无法解码1080p帧。我尝试将原始h264转换为javascript中的片段mp4,但解码双向帧时播放非常难看。我也尝试过webrtc,但似乎无法在浏览器和本机服务器之间实现对等连接。有什么建议吗?
谢谢!
答案 0 :(得分:2)
我见过的最好的(我自己没有动手实践经验)是https://github.com/samirkumardas/jmuxer
有一个示例,说明如何通过WebSockets处理流数据 https://github.com/samirkumardas/jmuxer/blob/master/example/index-h264.html
var socketURL = 'ws://localhost:8080';
var jmuxer = new JMuxer({
node: 'player',
mode: 'video',
flushingTime: 1000,
fps: 30,
debug: true
});
var ws = new WebSocket(socketURL);
ws.binaryType = 'arraybuffer';
ws.addEventListener('message',function(event) {
jmuxer.feed({
video: new Uint8Array(event.data)
});
});
ws.addEventListener('error', function(e) {
console.log('Socket Error');
});