У меня есть эти строки кода
s3.getObject(getParams, function (err, response) {
ffmpeg(response.Body)
.size('640x360')
.videoFilter({ filter: 'scale', options: [640, -1] })
// .seekInput('3:00')
.duration('0:08')
.format('mp4')
.on('error', function (err) {
console.error(err, 'invalid ffmpeg conversion')
})
.on('start', function (start) {
console.log(start, 'starting');
})
.on('progress', function (any) {
console.log(any, 'progress')
})
.on('end', function () {
s3.putObject({
Bucket: S3_CREDENTIALS.bucketName,
Key: newKey,
Body: fs.readSync(newKey),
ContentType: response.ContentType
}, function (err, data) {
fs.unlinkSync(newKey)
if (err) {
res.json('ko')
} else {
res.json('ok')
}
});
})
.output(fs.createWriteStream(newKey))
.run()
})
Причина, по которой я создаю файл, заключается в том, что я не могу передать поток данных fluent-ffmpeg в тело потока putObject. Конечно, если есть способ избежать создания локального файла (а затем удалить его), лучше
Я получаю ошибку fluent-ffmpeg
, говорящую Error [TypeError]: Cannot read property 'isStream' of undefined
Любая помощь оценили.