这是我的节点js代码
socket.on('stream',()=>{
let readStream = fs.createReadStream(__dirname+'/video.mp4');
readStream.on('data',(chunk)=>{
socket.emit('stream-chunk',chunk);
//res.render("hello");
});
});
这是客户端
let chunkArray = [];
socket.on('stream-chunk', (chunk) => {
chunkArray.push(chunk);
//console.log(chunk);
//var url = URL.createObjectURL(chunk);
//alert(url);
$("#video").attr("src",url);
});
如您所见,我只想从节点服务器获取视频文件并使用缓冲区流式传输。.到目前为止,大块作为ArrayBuffers到达客户端。但是我不知道如何将传入的数据块用于html5 <video>
元素
这是我的客户端html标签
<video controls type="video/mp4" src="" id="video" width="300" height="300"></video>
答案 0 :(得分:3)
只需使用HTTP整理。无需使用Web套接字进行单向通信。
使用Express静态提供该文件。然后在您的视频代码中,src="path/video.mp4"
。
答案 1 :(得分:1)
这是我使用NodeJS和FFmpeg来处理HTTP实时流HLS + m3u8即VOD的完整示例示例实现。检查