Lambda not connecting to ffmpeg

2019-03-03 12:27发布

问题:

I have an issue with a Lambda function that tries to use ffmpeg as a third party on AWS. The function itself uses ffmpeg.js library which generates ffmpeg commands in it's functions, when they are called. I installed ffmpeg on my instance via SSH, and it's still giving me the same error

Command failed: ffmpeg -i ".... ffmpeg: command not found

Any advice on this? Many thanks

回答1:

You need to include static build of ffmpeg inside your project directory

Download x86_64 version. As it the one used my lambda environment

Unzip the file and copy ffmpeg named file which is binary build and paste it in your project directory.

After that on the top of your code paste the following snippet:

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

Now inside your exports.handler, paste the following line of code in the beginning of function call. It will look like this

exports.handler = function(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');
// Your task to be performed
}
}
)
}

I hope this helps. Don't forget to leave a thumbs up :) Above solution is for Node.js language