Ошибка: ffmpeg завершился с кодом 1 на AWS Lambda

Я использую пакет fluent-ffmpeg nodejs для запуска ffmpeg для преобразования звука на AWS 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)"
    ]
}

У меня нет дополнительной информации, поэтому я не уверен, что происходит. Может кто подскажет, что здесь не так и как включить более подробные логи?


person Hassnain Alvi    schedule 14.07.2020    source источник


Ответы (1)


Добавлен обратный вызов ошибки, чтобы получить подробную информацию об ошибке, и обнаружено, что есть проблема с разрешениями на лямбда

   .on('error', function(err, stdout, stderr) {
        if (err) {
            console.log(err.message);
            console.log("stdout:\n" + stdout);
            console.log("stderr:\n" + stderr);
            reject("Error");
        }
    })
person Hassnain Alvi    schedule 14.07.2020
comment
вы также можете проверить облачный след на предмет ошибки вызова функции docs.aws.amazon.com/lambda/latest/dg/ - person Adiii; 15.07.2020
comment
да, я пробовал, но ошибок нет, потому что FFmpeg был запущен как дочерний процесс, поэтому нам нужно получить стек ошибок из него отдельно, как указано выше, с помощью обратного вызова. В противном случае вы получите выход из FFmpeg с кодом ошибки 1 - person Hassnain Alvi; 15.07.2020