Search code examples
amazon-web-servicesffmpegaws-lambdafluent-ffmpeg

Error: ffmpeg exited with code 1 on AWS Lambda


I am using fluent-ffmpeg nodejs package to run ffmpeg for audio conversion on AWS Lambda. I am using this FFmpeg layer for lambda. Here is my code

  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() 

after running it via AWS lambda I get following error message

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)"
    ]
}

I don't get any more info so I am not sure what's going on. Can anyone tell me what's wrong here and how can I enable more detailed logs?


Solution

  • Added on error callback to get a detailed error and found that there are permissions issue on 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");
            }
        })