首页 > 解决方案 > 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 上的“视频”属性重新设计此播放器,那就太好了。

标签: node.jsexpressstreammulter

解决方案


推荐阅读