每当文件上传到S3存储桶时,我都尝试使用AWS lambda函数将视频文件转换为音频文件。因此,我正在使用FFMPEG将视频文件转换为音频。但是我在转换视频文件时一直收到此错误。我已经看到类似的问题,但是没有一种解决方案对我不起作用。因此,如果有人知道,请分享您的解决方案。
错误消息
TypeError: Cannot create property 'stack' on string
'Could not find ffmpeg executable, tried "/var/task/node_modules/@ffmpeg-installer/linux-x64/ffmpeg" and "/var/task/node_modules/@ffmpeg-installer/ffmpeg/node_modules/@ffmpeg-installer/linux-x64/ffmpeg"'
代码
const
ffmpegPath = require("@ffmpeg-installer/ffmpeg").path,
ffmpeg = require("fluent-ffmpeg");
// set ffmpeg package path
ffmpeg.setFfmpegPath(ffmpegPath);
function convert(input, output, callback) {
ffmpeg(input)
.output(output)
.on('end', function() {
console.log('conversion ended');
callback(null);
}).on('error', function(err){
console.log('error: ', err.code, err.msg);
callback(err);
}).run();
}
exports.handler = function (event, context, callback) {
const key = decodeURIComponent(event.Records[0].s3.object.key.replace(/\+/g, ' '));
console.log("key ", key);
console.log("event ", event.Records[0].s3);
convert(key, `/tmp/${key}.mp3`, function(err){
if(!err) {
console.log('conversion complete');
} else {
console.log('Error');
}
});
}
const
ffmpegPath = require("@ffmpeg-installer/ffmpeg").path,
ffmpeg = require("fluent-ffmpeg");
// set ffmpeg package path
ffmpeg.setFfmpegPath(ffmpegPath);
function convert(input, output, callback) {
ffmpeg(input)
.output(output)
.on('end', function() {
console.log('conversion ended');
callback(null);
}).on('error', function(err){
console.log('error: ', err.code, err.msg);
callback(err);
}).run();
}
exports.handler = function (event, context, callback) {
const key = decodeURIComponent(event.Records[0].s3.object.key.replace(/\+/g, ' '));
console.log("key ", key);
console.log("event ", event.Records[0].s3);
convert(key, `/tmp/${key}.mp3`, function(err){
if(!err) {
console.log('conversion complete');
} else {
console.log('Error');
}
});
}
package.json
"dependencies": {
"@ffmpeg-installer/ffmpeg": "^1.0.17",
"fluent-ffmpeg": "^2.1.2",
"fs": "0.0.1-security"
}
答案 0 :(得分:0)
ffmpeg需要安装,npm软件包不安装ffmpeg,仅安装绑定。但您可以使用lambda图层,幸运的是,在https://github.com/mthenw/awesome-layers下列出了一个ffmpeg图层,您可以将其包含在项目中