0

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?

John Rotenstein
  • 241,921
  • 22
  • 380
  • 470
Hassnain Alvi
  • 87
  • 2
  • 12

1 Answers1

4

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");
        }
    })
Hassnain Alvi
  • 87
  • 2
  • 12
  • you can also check cloud trail for function invocation error https://docs.aws.amazon.com/lambda/latest/dg/logging-using-cloudtrail.html#understanding-service-name-entries – Adiii Jul 15 '20 at 00:30
  • yeah i tried but there no errors because FFmpeg was started as a child process so we need to get error stack from that separately as mentioned above with a callback Otherwise, you will get FFmpeg exited with error code 1 – Hassnain Alvi Jul 15 '20 at 09:38