Я попытался создать веб-приложение, которое может загружать видеофайл и воспроизводить его в браузере. Я использовал express и multer.
- route
var storage = multer.memoryStorage({
destination: function (req, file, cb) {
cb(null, '')
},
});
var upload = multer({
storage: storage
});
//get video file from html input and pass to route
router.post('/', upload.single('video'), videoControl.uploadVideo_post);
- contorller
exports.uploadVideo_post = function(req, res, next) {
var data = JSON.stringify(req.file);
res.render('video', {data:data}); }
Теперь я могу передавать видеоданные как буфер (байт массив). Но я не знаю, как загрузить это на html
Также ... Было бы здорово, если бы вы могли сообщить мне, как объединить приведенный ниже код с этой структурой express.
const respondWithVideo = async (req, res) => {
const { size } = await fileInfo(fileName);
await console.log(fileInfo(fileName));
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'
})
createReadStream(fileName, { start, end }).pipe(res);
} else {
res.writeHead(200, {
'Content-Length': size,
'Content-Type': 'video/mp4'
});
createReadStream(fileName).pipe(res);
}
}