【发布时间】:2018-08-14 05:47:38
【问题描述】:
我已经创建了用户上传视频的应用程序,我想在 nodejs 中使用 ffmpeg 从该视频中提取 50 张图像,但是在将其上传到特定文件夹后我无法获取该文件。我正在通过 multer 上传视频,因为它将视频存储在指定文件夹中,之后我使用读取流读取了该视频,但它没有提供有关该特定视频的正确信息
代码:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var path = require('path');
var multer = require('multer');
var cfenv = require('cfenv');
var watson = require('watson-developer-cloud');
var ffmpeg = require('ffmpeg');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({"extended": false}));
app.use(express.static(__dirname + '/public'));
var storage = multer.diskStorage({
destination: function(req, file, callback){
callback(null, './public/class'); // set the destination
},
filename: function(req, file, callback){
callback(null, 199212+ '.avi'); // set the file name and extension
}
});
var upload = multer({storage: storage});
app.upload = upload;
// get the app environment from Cloud Foundry
var appEnv = cfenv.getAppEnv();
var VisualRecognitionV3 = require('watson-developer-cloud/visual-recognition/v3');
var fs = require('fs');
var visualRecognition = new VisualRecognitionV3({
version: '2018-03-19',
iam_apikey: 'aaIFu-fHWBXgj09eVarEQUFlIaTeH9bpgvRqHIJxu_8N'
});
app.post('/imgtable',app.upload.single('video-upl'),function(req,res){
var video_file = fs.createReadStream(req.file.path);
try {
var process = new ffmpeg('./public/class/199212.avi');
process.then(function (video) {
// Video metadata
console.log('******************************');
console.log(video);
// FFmpeg configuration
console.log('*********************************');
console.log(video.info_configuration);
}, function (err) {
console.log('Error: ' + err);
});
} catch (e) {
console.log(e.code);
console.log(e.msg);
}
})
app.listen(3000);`
【问题讨论】:
-
碰到这个。有同样的情况。你找到解决方案了吗?
-
是的,我会在这里发布解决方案,谢谢
标签: node.js ffmpeg extract frames