JSMpeg低延时H5直播

JSMpeg 项目地址:https://github.com/phoboslab/jsmpeg

JSMpeg 是一种采用 JavaScript 解码音视频的技术,可用于视频直播或点播。
要实现直播,还需要 websocket 实现一个实时传输流的服务。FFmpeg 支持很多直播流格式,但是不支持 websocket。解决方案是用 FFmpeg 开一个HTTP 直播流,再开一个 Node 服务转一下。

具体流程是:用 NodeJs 监听 FFmpeg 的 HTTP 直播地址,将收到的数据通过 Websocket 广播给所有的客户端。

它的核心代码如下:

//HTTP Server to accept incomming MPEG Stream
var streamServer = require('http').createServer( function(request, response) {
    request.on('data', function(data){
        socketServer.broadcast(data, {binary:true});
    });
}).listen(STREAM_PORT);

Websocket 代码在这里:https://github.com/phoboslab/jsmpeg/blob/master/websocket-relay.js

NodeJS执行命令:

node websocket-relay.js supersecret 8081 8082

上面命令中的三个参数分别是服务标识、HTTP端口、WS端口。

使用FFmpeg 推送 HTTP 视频流执行命令:

ffmpeg -rtsp_transport tcp -thread_queue_size 32768 -i rtsp://{账号}:{密码}@{IP}:554/h264/ch1/main/av_stream -q 0 -f mpegts -codec:v mpeg1video -s 1366x768 http://{IP}:8081/supersecret

  

posted @ 2021-03-10 17:17  让我们荡起双桨!  阅读(728)  评论(0编辑  收藏  举报