【问题标题】:Broadcast a live webcam stream广播实时网络摄像头流
【发布时间】:2014-11-24 19:21:20
【问题描述】:

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

我可以很容易地在同一页面的视频标签中显示我的网络摄像头:

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 是最好的方法吗?你有一些读物/库可以推荐给我吗?

【问题讨论】:

    标签: html node.js video broadcast getusermedia


    【解决方案1】:

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

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

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

    【讨论】:

    • WebRTC 和 getUserMedia 非常好用,我不知道为什么现在有人会推荐 Flash。在服务器端获取数据很棘手,但 Flash 也是如此,尤其是在您想要进行任何额外处理的情况下。
    猜你喜欢
    • 2016-02-15
    • 2014-08-17
    • 2013-05-14
    • 2014-08-23
    • 2016-10-23
    • 2012-09-10
    • 1970-01-01
    • 2023-01-17
    • 2016-08-29
    相关资源
    最近更新 更多