首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Lambda没有连接到ffmpeg

Lambda没有连接到ffmpeg
EN

Stack Overflow用户
提问于 2017-12-19 08:30:40
回答 2查看 3.6K关注 0票数 1

我对Lambda函数有一个问题,它试图在AWS上使用ffmpeg作为第三方。该函数本身使用ffmpeg.js库,它在调用函数时在其函数中生成ffmpeg命令。我通过SSH在我的实例上安装了ffmpeg,它仍然给了我相同的错误

命令失败: ffmpeg -i“. ffmpeg:命令未找到

对此有什么建议吗?非常感谢

EN

回答 2

Stack Overflow用户

发布于 2018-02-14 13:21:26

您需要在项目目录中包含ffmpeg的静态构建。

64版本。因为它使用了我的lambda环境

解压缩文件并复制名为ffmpeg的文件,该文件是二进制构建并粘贴到您的项目目录中。

之后,在代码顶部粘贴以下代码片段:

代码语言:javascript
运行
复制
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;

现在,在您的exports.handler中,在函数调用的开头粘贴下面的代码行。它会看起来像这样

代码语言:javascript
运行
复制
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
}
}
)
}

我希望这能帮到你。不要忘了竖起大拇指:)上面的解决方案是针对Node.js语言的

票数 7
EN

Stack Overflow用户

发布于 2019-03-07 11:09:29

我可以在Python中的AWS Lambda上成功地使用ffmpeg:

  1. 获取从这里开始的静态构建。
  2. tar -zxvf ffmpeg-release-amd64-static.tar.xz的Untar
  3. 从文件夹中获取文件ffmpeg (以及可选的ffprobe),删除其余的文件。
  4. 将裸露的ffmpeg文件(没有子文件夹)放在与lambda代码相同的文件夹中。
  5. cd进入该文件夹并使用zip -r -X "../archive.zip" *进行压缩
  6. 上传压缩文件到AWS Lambda并保存。

在Python代码中,需要将正确的文件路径设置为ffmpeg静态构建,如下所示:

代码语言:javascript
运行
复制
FFMPEG_STATIC = "/var/task/ffmpeg"
# now call ffmpeg with subprocess
import subprocess
subprocess.call([FFMPEG_STATIC, '-i', input_file, output_file])

我不需要更改任何文件权限。无论如何,这是行不通的,因为/var/task/似乎是不可写的。

input_fileoutput_file是您生成的Lambda实例中的本地文件。我将文件从s3下载到/tmp/,并在那里使用ffmpeg进行处理。还要确保为Lambda设置足够的内存和超时(我使用我的工作流的最大设置)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47882810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档