gpt4 book ai didi

node.js - 无法使用 fluent-ffmpeg 读取未定义的属性 'isStream'

转载 作者:行者123 更新时间:2023-12-04 22:58:22 27 4
gpt4 key购买 nike

我有这些代码行

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
任何帮助表示赞赏。

最佳答案

这段代码实际上是有效的。欢迎提出更好的解决方案。

const newKey = "preview_" + req.params.key
const source = s3.getSignedUrl('getObject',getParams)
ffmpeg({source})
.size('640x360')
.videoFilter({ filter: 'scale', options: [640, -1] })
// .seekInput('3:00')
.duration('0:08')
.format('mp4')
.on('end', function () {
s3.putObject({
Bucket: S3_CREDENTIALS.bucketName,
Key: newKey,
Body: fs.readFileSync(newKey),
ContentType: 'video/mp4'
}, function (err, data) {
fs.unlinkSync(newKey)
if (err) {
res.json('ko')
} else {
res.json('ok')
}
});
})
.outputOptions([
'-movflags frag_keyframe+empty_moov',
'-movflags +faststart'
])
.toFormat('mp4')
.save(newKey)

关于node.js - 无法使用 fluent-ffmpeg 读取未定义的属性 'isStream',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61574759/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com