2016-04-02 2 views
0

У меня есть сценарий обработки видео на AWS Lambda.«Невозможно найти модуль fluent-ffmpeg» на AWS Lambda

Хотя это, кажется, работает отлично локально (проверено с помощью lambda-local), у меня странный вопрос, когда он работает на Lambda:

{ 
    "errorMessage": "Cannot find module 'fluent-ffmpeg'", 
    "errorType": "Error", 
    "stackTrace": [ 
    "Function.Module._resolveFilename (module.js:338:15)", 
    "Function.Module._load (module.js:280:25)", 
    "Module.require (module.js:364:17)", 
    "require (module.js:380:17)", 
    "Object.<anonymous> (/var/task/processing.js:2:14)", 
    "Module._compile (module.js:456:26)", 
    "Object.Module._extensions..js (module.js:474:10)", 
    "Module.load (module.js:356:32)", 
    "Function.Module._load (module.js:312:12)", 
    "Module.require (module.js:364:17)" 
    ] 
} 

зипа Я загрузка содержит следующие файлы:

~$ find . -maxdepth 2 
. 
./bin 
./bin/ffmpeg 
./config.js 
./event-samples 
./event-samples/custom.js 
./event-samples/dynamodb-update.js 
./event-samples/kinesis.js 
./event-samples/s3-put.js 
./frames 
./Gulpfile.js 
./index.js 
./node_modules 
./node_modules/async 
./node_modules/aws-sdk 
./node_modules/fluent-ffmpeg 
./node_modules/gulp 
./node_modules/gulp-awslambda 
./node_modules/gulp-zip 
./package.json 
./processing.js 
./utils.js 

(Багги требуют расположен в Processing.js)

Если я открываю ZIP, node_modules/fluent-ffmpeg/* действительно есть.

Я попытался включить модуль с помощью:

  • require("./node_modules/fluent-ffmpeg/index")
  • require(__dirname + "./node_modules/fluent-ffmpeg/index")
  • require(process.env.LAMBDA_TASK_ROOT + "/node_modules/fluent-ffmpeg/index")

Но ни один из них решил проблему. Я также попытался переустановить узел и npm на моей машине, rm -rf node_modules и npm install (на всякий случай).

Поскольку Lambda запускает узел 0.10.36, я также попытался использовать эту версию на своей машине, чтобы сделать npm install, но это ничего не меняет.

Помогите оценить.

Спасибо!

+1

Возможно, попробуйте [вилку AWS] (https://github.com/binoculars/aws-lambda-ffmpeg)? – Andy

+0

Если я ошибаюсь, эта библиотека предназначена для изменения размера и создания миниатюр видео, не так ли? В этом случае это не относится к тому, что мне нужно сделать (извлечение каждого кадра видео) – christophetd

+0

Извините, я думал, что это была одна и та же библиотека. – Andy

ответ

1

Решено. Моя машина для разработки работает под управлением Windows 7, и это, по-видимому, вызвало проблему ... Хотя бы были заинтересованы в причинах.

В любом случае, работает npm install на установке Linux и выгружает код в Лямбду.

Смежные вопросы