播放实时网络摄像头流

时间:2014-09-30 08:28:48

标签: html5 node.js video broadcast getusermedia

我想录制我的网络摄像头并将其直播到其他客户端。

我可以在同一页面的视频标签中轻松显示我的网络摄像头:

function initialize() {
  video = $("#v")[0];
  width = video.width;
  height = video.height;

  var canvas = $("#c")[0];
  context = canvas.getContext("2d");

  nav.getUserMedia({video: true}, startStream, function () {});
}

function startStream(stream) {
  video.src = URL.createObjectURL(stream);
  video.play();

  requestAnimationFrame(draw);
}

function draw() {
  var frame = readFrame();

  if (frame) {
    replaceGreen(frame.data);
    context.putImageData(frame, 0, 0);
  }

  requestAnimationFrame(draw);
}

function readFrame() {
  try {
    context.drawImage(video, 0, 0, width, height);
  } catch (e) {
    return null;
  }

  return context.getImageData(0, 0, width, height);
}

但是如何将该流发送到服务器,进行一些图像处理,然后向其他客户端进行广播?

nodejs是最好的方式吗?你有推荐我的读物/库吗?

1 个答案:

答案 0 :(得分:0)

目前有几个工作草案,但我认为目前在浏览器中播放实时视频的最佳方式是使用Flash ActionScript。当然,客户端仍然需要安装插件才能在浏览器中运行应用程序。请注意,在这种情况下,您无法使用Apache Web服务器广播实时视频。您将需要一个媒体服务器,如Red5(免费),Wowza或Adobe Media Server。

另外,看看你是否能找到一些帮助here

' WebRTC(RTC代表实时通信)是一种支持浏览器客户端(对等方)之间的音频/视频流和数据共享的技术。作为一套标准,WebRTC为任何浏览器提供了共享应用程序数据和执行远程对等电话会议的能力,而无需安装插件或第三方软件。 '