Javascript 使用Gstreamer和Node.js将h.264视频实时流到客户端网页

Javascript 使用Gstreamer和Node.js将h.264视频实时流到客户端网页,javascript,node.js,gstreamer,live-streaming,Javascript,Node.js,Gstreamer,Live Streaming,我想利用下面的示例接受多个摄像头并将其流式传输到客户端网页 以下是我的gstreamer命令供参考: gst-launch-1.0-ve\ videotestsrc是live=真的!视频/x-raw,宽度=640,宽度=480,帧速率=10/1!时间重叠!队列视频转换!万岁!h264parse!队列matroskamux streamable=真!队列泄漏=2!tcpserversink端口=9001主机=127.0.0.1恢复策略=关键帧同步方法=最新关键帧\ videotestsrc是li

我想利用下面的示例接受多个摄像头并将其流式传输到客户端网页

以下是我的gstreamer命令供参考:

gst-launch-1.0-ve\ videotestsrc是live=真的!视频/x-raw,宽度=640,宽度=480,帧速率=10/1!时间重叠!队列视频转换!万岁!h264parse!队列matroskamux streamable=真!队列泄漏=2!tcpserversink端口=9001主机=127.0.0.1恢复策略=关键帧同步方法=最新关键帧\ videotestsrc是live=真的!视频/x-raw,宽度=640,宽度=480,帧速率=10/1!时间重叠!队列视频转换!万岁!h264parse!队列matroskamux streamable=真!队列泄漏=2!tcpserversink端口=9002主机=127.0.0.1恢复策略=关键帧同步方法=最新关键帧\

两个摄像头传输至端口9001和9002

大部分工作发生在app.get()函数中。如何修改它以处理多个套接字

var express = require('express')
var app = express();
var http = require('http')
var httpServer = http.createServer(app);

app.get('/', function (req, res) {
  var date = new Date();

  res.writeHead(200, {
      'Date': date.toUTCString(),
      'Connection': 'close',
      'Cache-Control': 'private',
      'Content-Type': 'video/webm',
      //'Content-Type': video/x-matroska,
      'Server': 'CustomStreamer/0.0.1',
  });

  var net = require('net');
  var socket = net.connect(9001, function () {
      socket.on('close', function (had_error) {
          res.end();
      });
      socket.on('data', function (data) {
          res.write(data);
      });   

  });
  socket.on('error', function (error) {
      console.log(error);
  });
});

console.log("Server listening on port.... 8001");
httpServer.listen(8001);
谢谢

更新:创建了另一个套接字,我能够从两个不同的套接字获取数据。也许有一种更聪明的方法可以做到这一点,但现在我重复套接字代码,将它们命名为socket1和socket2,并使用print语句,我有足够的信心从两个摄像头获取数据。现在我需要将视频链接到我的.html文件

var socket1 = net.connect(9001, function () {
      socket1.on('close', function (had_error) {
          res.end();
      });
      socket1.on('data', function (data) {
          res.write(data);
      });   

  });
var socket2 = net.connect(9001, function () {
      socket2.on('close', function (had_error) {
          res.end();
      });
      socket2.on('data', function (data) {
          res.write(data);
      });   

  });

  socket1.on('error', function (error) {
      console.log(error);
  });
  socket2.on('error', function (error) {
      console.log(error);
  });