首页 > 解决方案 > 从 websocket 在浏览器中解码并显示 h264 流

问题描述

我正在尝试在浏览器中显示来自实时 rtp 摄像头的流,但我遇到了问题。信号必须是无损的,这就是为什么我使用 ffmpeg 管道(H264 可以是无损的),流式传输到节点脚本,该脚本通过 websocket 将信号提供给 javascript 客户端。这是管道:

ffmpeg -i rtsp://ipofthertsp -f rawvideo -b 800k -r 30 -framerate 10 -c:v libx264 -preset ultrafast -crf 0 http://127.0.0.1:8081/supersecret/

流程如下:

rtp -> ffmpeg -> ( http://127.0.0.1:8081 ) http-To-ws (ws://127.0.0.1:8082) <- (ws) JavascriptClient

字节到达客户端,但我不知道如何处理它。

    function opened() { 
   
        // set up the websocket
        var url = 'ws://127.0.0.1:8082';
        ws = new WebSocket(url);
        ws.binaryType = "arraybuffer";
        ws.onmessage = function (event) {

        var view   = new Uint8Array(event.data);
        console.log('data \r\n', event.data);

            /* what to do from here to paint it*/
        };
    }

然后,我想用画布、视频……随便画。

有什么线索???

标签: javascriptwebsocketffmpegh.264rtp

解决方案


推荐阅读