Я связываю два дня, чтобы понять child_process в nodejs для использования библиотеки Ffmpeg, чтобы вычислить картинку из массива значений RGBA.
Я не понимаю, должен ли я слушать 'end', 'завершите работу или используйте функцию «kill», чтобы сообщить моей программе, что нужно остановить и выставить счет-фактуру.
Мой код генерирует одну картинку, но у меня возникает ошибка, если я часто вызываю путь
мой код:
const ffmpegPath = require('@ffmpeg-installer/ffmpeg').path;
const spawn = require('child_process').spawn;
app.post('/prevMakeListPictures', function( req, res)
n
// delete picture if exits
fs.unlink(req.body.fileName, function(err) {
if(err) {
console.log('File not found, create now');
}
});
// transform string of pixels in a array
// 255,255,255,255,
var arrPixelData = JSON.parse( "["+ req.body.arrPixelData+"]" );
// configure the size of picture
var size = req.body.cameraX + 'x' + req.body.cameraY;
var args = [
'-hide_banner',
'-f', 'rawvideo',
'-pix_fmt', 'rgb32',
'-s', size,
'-i', '-',
req.body.fileName
];
var ffmpeg = spawn(ffmpegPath, args);
ffmpeg.stdin.write(Buffer.from( arrPixelData ));
ffmpeg.stdin.end();
// write error/console message
ffmpeg.stderr.pipe(process.stdout);
ffmpeg.stdin.on('end', function() {
ffmpeg.kill();
res.send("picture created");
});
});