Сбой команды ffmpeg в лямбда-функции (узел js) - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь преобразовать видеофайл в аудиофайл внутри лямбда-функции.Но я продолжаю получать ошибку команды FFmpeg.Я поместил бинарный исполняемый файл FFmpeg в директорию проекта.но все же я получаю ту же ошибку.Я попробовал это ( Lambda не подключается к ffmpeg ), но моя проблема еще не решена.Любая помогает ??спасибо,

Вот мой код лямбда-функции

process.env.PATH = process.env.PATH + ':/tmp/';
process.env['FFMPEG_PATH'] = '/tmp/ffmpeg';
const BIN_PATH = process.env['LAMBDA_TASK_ROOT'];
process.env['PATH'] = process.env['PATH'] + ':' + BIN_PATH;

const fs = require('fs');
const AWS = require('aws-sdk');

AWS.config.update({
    region : 'us-east-2'
});
const s3 = new AWS.S3({apiVersion: '2006-03-01'});


exports.handler = (event, context, callback) => {
    require('child_process').exec(
        'cp /var/task/ffmpeg /tmp/.; chmod 755 /tmp/ffmpeg;',
        function (error, stdout, stderr) {
            if (error) {
                console.log('Erro occured',error);
            } else {
                var ffmpeg = require('ffmpeg');
                var params = {
                    Bucket: "bucket_name",
                    Key: event.Records[0].s3.object.key
                };
                s3.getObject(params, function(err, data) {
                    if (err) {
                        console.log("Error", err);
                    }
                    fs.writeFile("/tmp/vid.mp4", data.Body, function (err) {
                        if (err) console.log(err.code, "-", err.message);
                        return callback(err);
                    }, function() {
                        try {
                            var stats = fs.statSync("/tmp/vid.mp4");
                            console.log("size of the file1 ", stats["size"]);
                            try {
                                console.log("Yeah");
                                var process = new ffmpeg('/tmp/vid.mp4');
                                process.then(function (video) {
                                    // Callback mode
                                    console.log("video function ", video);
                                    video.fnExtractSoundToMP3('/tmp/video.mp3', function (error, file) {
                                        if (!error)
                                            console.log('Audio file: ' + file);
                                        else console.log('error video ', error);
                                    });
                                }, function (err) {
                                    console.log('Error: ' + err);
                                });
                            } catch (e) {
                                console.log(e.code);
                                console.log(e.msg);
                            }
                        } catch (e) {
                            console.log("file is not complete", e);
                        }
                    });
                    return callback(err);
                });
            }
        }
    )
}

Сообщение об ошибке

{ Error: Command failed: ffmpeg -i /tmp/vid.mp4 -vn -ar 44100 -ac 2 -ab 192 -f mp3 /tmp/video.mp3

    at ChildProcess.exithandler (child_process.js:275:12)
    at emitTwo (events.js:126:13)
    at ChildProcess.emit (events.js:214:7)
    at maybeClose (internal/child_process.js:925:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
    killed: false,
        code: null,
    signal: 'SIGSEGV',
    cmd: 'ffmpeg -i /tmp/vid.mp4 -vn -ar 44100 -ac 2 -ab 192 -f mp3 /tmp/video.mp3' }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...