我正在尝试使用websockets将(WebM或MP4)视频从Node.js流式传输到HTML5(websocket库在服务器和客户端上都是Socket.IO)。正在使用的浏览器是Chrome的最新版本(版本26.0.1410.64 m)。
我看到here可以使用MediaSource对象从文件中推送视频标记中的视频流。
我的想法是从websocket而不是文件中读取数据块。 有人可以使用websockets发布一个例子来完成它或者解释我该怎么做吗?
提前致谢。
答案 0 :(得分:5)
除了文本(字符串)消息之外,WebSocket API还允许您发送 二进制数据,这对于实现二进制协议特别有用。这样二进制 协议可以是标准的Internet协议,通常分层在TCP之上,其中 有效载荷可以是 Blob 或 ArrayBuffer 。
// Send a Blob
var blob = new Blob("blob contents");
ws.send(blob);
// Send an ArrayBuffer
var a = new Uint8Array([8,6,7,5,3,0,9]);
ws.send(a.buffer);
与JavaScript File API结合使用时,Blob对象特别有用 用于发送和接收文件,主要是多媒体文件,图片,视频和音频。
我还建议看WebRTC(与WebSockets相关的技术)Web实时通信(WebRTC)是另一项增强现代Web浏览器通信功能的工作。 WebRTC是Web的点对点技术。 WebRTC的第一个应用是实时语音和视频聊天。 WebRTC已经成为一种引人注目的媒体应用新技术,并且有许多可用的在线样本应用程序,使您可以通过Web上的视频和音频进行测试。请检查this link