Цель состоит в том, чтобы сохранить видеофайлы в api / videos / result и затем объединить все видео в этой папке в одно видео.
Модуль npm fluent-ffmpeg выдает ошибку:
TypeError: Cannot use 'in' operator to search for 'readable' in undefined
at FfmpegCommand.proto.mergeAdd.proto.addInput.proto.input (C:\Users\vmadmin\Desktop\M152-Frontend\node_modules\fluent-ffmpeg\lib\options\inputs.js:33:24)
at C:\Users\vmadmin\Desktop\M152-Frontend\server.js:36:35
at Array.forEach (<anonymous>)
at C:\Users\vmadmin\Desktop\M152-Frontend\server.js:30:12
at Layer.handle [as handle_request] (C:\Users\vmadmin\Desktop\M152-Frontend\node_modules\express\lib\router\layer.js:95:5)
at next (C:\Users\vmadmin\Desktop\M152-Frontend\node_modules\express\lib\router\route.js:137:13)
at Array.<anonymous> (C:\Users\vmadmin\Desktop\M152-Frontend\node_modules\multer\lib\make-middleware.js:53:37)
at listener (C:\Users\vmadmin\Desktop\M152-Frontend\node_modules\on-finished\index.js:169:15)
at onFinish (C:\Users\vmadmin\Desktop\M152-Frontend\node_modules\on-finished\index.js:100:5)
at callback (C:\Users\vmadmin\Desktop\M152-Frontend\node_modules\ee-first\index.js:55:10)
Я не уверен, что делать с этой ошибкой.У меня нет ни «in», ни «читабельного» где-то в моем коде, поэтому я ничего не попробовал.
var mergedVideo = ffmpeg();
var upload = multer({storage: storage});
var single = upload.single('MyVideo');
var fs = require('fs');
});
// POST Request. Video is being uploaded here
app.post('/api/videos', single, function (req, res) {
// Declares variable, that saves an array from all elements in result folder
var source = fs.readdirSync('./api/videos/result/');
// Loop, which iterates through each element in result folder
source.forEach(function (element) {
// Merge 'api', 'videos' and 'result' to one path
var pathJoin = path.join('api', 'videos', 'result');
// Save complete path with file in one variable
var finalPath = console.log(__dirname + '\\' + pathJoin + '\\' + element);
// Adds each file into the input for merging
mergedVideo = mergedVideo.addInput(finalPath);
});
// Merge files and save them as merged.mp4
mergedVideo.mergeToFile('./api/videos/merged.mp4', '/api/videos/tempDir/')
.on('error', function (err) {
console.log('Error ' + err.message);
})
.on('end', function () {
console.log('Finished!');
});
res.send(console.log('Hallo!'));
});
Ожидается файл с именем merged.mp4 в папке api / videos .