node.js - streamifier 不起作用,如何在此代码下将缓冲区数组发送到流?
问题描述
我编写了一些代码来播放带有缓冲区数组的视频,但是当我提交文件时,浏览器只显示了一个空的视频播放器,如下所示。
这是我的代码
- 看法
block content
h1= title
p Welcome to #{title}
form.upload(method='POST' enctype='multipart/form-data' action='')
input#video(type='file' name='video')
button#uploadButton(type='submit') Upload
- 控制器
exports.uploadVideo_post = function(req, res, next) {
var fileName = req.file.buffer;
console.log(req.headers);
const size = req.file.size
const range = req.headers.range;
if (range) {
let [start, end] = range.replace(/bytes=/, '').split('-');
start = parseInt(start, 10);
end = end ? parseInt(end, 10) : size - 1;
res.writeHead(206, {
'Content-Range': `bytes ${start}-${end}/${size}`,
'Accept-Ranges': 'bytes',
'Content-Length': (end-start) + 1,
'Content-Type': 'video/mp4'
})
streamifier.createReadStream(fileName, { start, end }).pipe(res);
} else {
res.writeHead(200, {
'Content-Length': size,
'Content-Type': 'video/mp4'
});
(streamifier.createReadStream(fileName)).pipe(res);
}
}
我使用 multer 来获取上传的文件,'fileName' 是缓冲区数组。有人可以帮我解决这个问题吗?除此之外,如果您能告诉我如何使用 html 上的“视频”属性重新设计此播放器,那就太好了。
解决方案
推荐阅读
- maven - 詹金斯 Windows 中的 Sonarqube 配置
- php - 嵌套 GNU Parallel 处理多个大文件并将每个文件数据拆分为队列处理
- c# - 动态、变量和对象之间的区别
- java - 在 2 个映射之间获取具有 2 个键的值
- javascript - 在 React 中安装组件时包含谷歌地图脚本
- c - MPI Scatter / 向进程发送数据
- ios - 保存在文档库中的图像文件无法在计算机 Objective-C 中打开
- c# - 指定格式时 DateTime 解析不起作用
- google-sheets - 每隔 n 行着色一次
- javascript - 将变量作为具有相同字符串的索引传递将不起作用