video标签通过nodejs打开此电脑视频
时间: 2023-08-01 14:15:27 浏览: 1247
vue+node 实现视频在线播放的实例代码
要通过Node.js在浏览器中使用`<video>`标签打开本地视频,你可以使用Node.js的`http`模块来创建一个本地服务器,然后将视频文件作为响应发送到客户端。
具体步骤如下:
1. 在你的项目目录下,创建一个视频文件夹,并将你的本地视频文件放入该文件夹中。
2. 在你的JavaScript文件中,使用`http`模块创建一个本地服务器,示例代码如下:
```javascript
const http = require('http');
const fs = require('fs');
const server = http.createServer((req, res) => {
const filePath = __dirname + '/videos/video.mp4'; // 视频文件路径
const stat = fs.statSync(filePath);
const fileSize = stat.size;
const range = req.headers.range;
if (range) {
const parts = range.replace(/bytes=/, '').split('-');
const start = parseInt(parts[0], 10);
const end = parts[1] ? parseInt(parts[1], 10) : fileSize - 1;
const chunksize = (end - start) + 1;
const file = fs.createReadStream(filePath, { start, end });
const head = {
'Content-Range': `bytes ${start}-${end}/${fileSize}`,
'Accept-Ranges': 'bytes',
'Content-Length': chunksize,
'Content-Type': 'video/mp4',
};
res.writeHead(206, head);
file.pipe(res);
} else {
const head = {
'Content-Length': fileSize,
'Content-Type': 'video/mp4',
};
res.writeHead(200, head);
fs.createReadStream(filePath).pipe(res);
}
});
server.listen(8000, () => {
console.log('Server running on port 8000');
});
```
其中,`__dirname`表示当前文件所在目录,`filePath`是你本地视频文件的路径,`server.listen(8000)`表示将服务器运行在本地的8000端口。
3. 在HTML文件中,使用`<video>`标签来引用本地服务器的视频文件,示例代码如下:
```html
<video width="640" height="360" controls>
<source src="http://localhost:8000" type="video/mp4">
Your browser does not support the video tag.
</video>
```
其中,`src`属性为本地服务器的地址,`type`属性为视频文件的类型。
4. 运行JavaScript文件,然后在浏览器中打开`http://localhost:8000`,即可通过`<video>`标签打开本地视频。
阅读全文