如何使用socket(.io)从node.js服务器流式传输音频/视频到html5页面

时间:2014-05-23 06:53:31

标签: node.js socket.io video-streaming

我需要从node.js服务器流式传输mp3或mp4,并在html5页面上观看。 我正在尝试使用socket.io来加速通信,我希望它会降低我使用简单http的延迟。 我在我的项目中设置了socket.io,无论是在客户端(移动Web应用程序)还是服务器上,但我无法弄清楚,也无法在网上找到如何正确发送数据并将其引导到标签。

3 个答案:

答案 0 :(得分:5)

请参阅socket.io-stream项目https://www.npmjs.org/package/socket.io-stream

答案 1 :(得分:3)

尝试使用ffmpeg进行同步音频/视频流。在HTML5中,当您在音频/视频标签的src元素中提供服务器的源地址时,音频和视频标签会自动播放。

答案 2 :(得分:0)

检查此示例:

    var captureMe = function () {
      if (!videoStreamUrl) alert('error')

      context.translate(canvas.width, 0);
      context.scale(-1, 1);

context.drawImage(video, 0, 0, video.width, video.height);
      var base64dataUrl = canvas.toDataURL('image/png');
      context.setTransform(1, 0, 0, 1, 0, 0);
      var img = new Image();
      img.src = base64dataUrl;
      window.document.body.appendChild(img);
    }

    button.addEventListener('click', captureMe);

    navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
    window.URL.createObjectURL = window.URL.createObjectURL || window.URL.webkitCreateObjectURL || window.URL.mozCreateObjectURL || window.URL.msCreateObjectURL;

    navigator.getUserMedia({video: true}, function (stream) {
      allow.style.display = "none";
      videoStreamUrl = window.URL.createObjectURL(stream);
      video.src = videoStreamUrl;
    }, function () {
      console.log('streaming error');
    });
  };

工作示例anonymous chat video test

原始链接 http://html5.by/blog/html5-image-capture-getusermedia-stream-api-mirror/