如何制作node js在线视频流
how to make node js online video streaming
这是我的节点 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>
直接使用 HTTP。无需使用网络套接字进行单向通信。
使用 Express 静态提供该文件。然后在您的视频标签中,src="path/video.mp4"
.
这是我使用 NodeJS 和 FFmpeg 处理 HTTP 直播流 HLS + m3u8 即 VOD 的完整基础示例实现。检查一下
这是我的节点 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>
直接使用 HTTP。无需使用网络套接字进行单向通信。
使用 Express 静态提供该文件。然后在您的视频标签中,src="path/video.mp4"
.
这是我使用 NodeJS 和 FFmpeg 处理 HTTP 直播流 HLS + m3u8 即 VOD 的完整基础示例实现。检查一下