在浏览器中播放原始的h264实时流

时间:2019-01-02 07:59:16

标签: javascript html5 webrtc live-streaming http-live-streaming

我正在寻找一种解决方案,以通过浏览器上的websocket播放来自本机服务器的原始h264流。我在JavaScript中尝试了许多第三方h264解码器,每个解码器都有其自己的问题。基于百老汇的解码器无法解码主要和高清晰度的h264。其他解码器太慢,无法解码1080p帧。我尝试将原始h264转换为javascript中的片段mp4,但解码双向帧时播放非常难看。我也尝试过webrtc,但似乎无法在浏览器和本机服务器之间实现对等连接。有什么建议吗?

谢谢!

1 个答案:

答案 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');
});