如何使用套接字(.io)将audio/video从node.js服务器stream式传输到html5页面

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

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

尝试ffmpeg进行同步audio/videostream。 当您在audio/video标签的src元素中提供服务器的源地址时,HTML5audio和video标签会自动播放。

检查这个例子:

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'); }); };