错误:ffmpeg已退出,AWS Lambda上的代码为1



我使用fluent ffmpeg nodejs包在AWS Lambda上运行用于音频转换的ffmpeg。我正在为lambda使用这个FFmpeg层。这是我的代码

const bitrate64 = ffmpeg("file.mp3").audioBitrate('64k');
bitrate64.outputOptions([
'-preset slow',
'-g 48',
"-map", "0:0",
'-hls_time 6',
'-master_pl_name master.m3u8',
'-hls_segment_filename 64k/fileSequence%d.ts'
])
.output('./64k/prog_index.m3u8')
.on('progress', function(progress) {
console.log('Processing 64k bitrate: ' + progress.percent + '% done')
})  
.on('end', function(err, stdout, stderr) {
console.log('Finished processing 64k bitrate!')
})
.run() 

通过AWS lambda运行后,我得到以下错误消息

ERROR   Uncaught Exception  
{
"errorType": "Error",
"errorMessage": "ffmpeg exited with code 1: Conversion failed!n",
"stack": [
"Error: ffmpeg exited with code 1: Conversion failed!",
"",
"    at ChildProcess.<anonymous> (/var/task/node_modules/fluent-ffmpeg/lib/processor.js:182:22)",
"    at ChildProcess.emit (events.js:198:13)",
"    at ChildProcess.EventEmitter.emit (domain.js:448:20)",
"    at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)"
]
}

我没有得到更多信息,所以我不确定发生了什么。有人能告诉我这里出了什么问题吗?我如何启用更详细的日志?

添加错误回调以获取详细错误,并发现lambda 存在权限问题

.on('error', function(err, stdout, stderr) {
if (err) {
console.log(err.message);
console.log("stdout:n" + stdout);
console.log("stderr:n" + stderr);
reject("Error");
}
})

最新更新