gpt4 book ai didi

node.js - AWS lambda 错误 : Cant find ffmpeg

转载 作者:行者123 更新时间:2023-12-05 07:47:48 24 4
gpt4 key购买 nike

我正在构建一个需要 ffmpeg 的 lambda 函数。我得到的错误是:

ERROR :: Error: Cannot find ffmpeg

问题的相关代码如下...

process.env['PATH'] = process.env['PATH'] + "/" + process.env['LAMBDA_TASK_ROOT']
process.env['PATH'] = process.env['PATH'] + ':/tmp/'

var ffmpeg = require('fluent-ffmpeg')

exports.handler = (event, context, callback) => {

var proc = new ffmpeg();

proc.addInput('testfile.mp4)
.on('start', function(ffmpegCommand) {
})
.on('progress', function(data) {
})
.on('end', function() {
})
.on('error', function(error) {
/// ERROR IS HERE
})
.outputOptions(['-hls_time 10'])
.output(fileName + '.m3u8')
.run();

}

这是我的 ZIP 结构:

./ffmpeg
./ffprobe
./index.js
./node_modules
./node_modules/aws-sdk
./node_modules/ffmpeg
./node_modules/fluent-ffmpeg
./package.json

我四处阅读,看到有人提到 chmod-ing ffmpeg 和 ffprobe,我尝试在两个可执行文件上使用 chmod 755,但没有成功工作。

另请阅读有关必须更改路径的内容。我尽力了,但又一次失败了。我不确定从这里转向哪里,或者如何进一步诊断我做错了什么。任何帮助将不胜感激。谢谢!

最佳答案

除了 fluent-ffmpeg 你还需要安装:

npm install @ffmpeg-installer/ffmpeg
npm install @ffprobe-installer/ffprobe

之后,您需要先获取路径,然后使用下一行代码将路径设置为 FFmpeg 和 ffprobe:

const ffmpeg = require('fluent-ffmpeg'); // first require this

const ffmpegPath = require('@ffmpeg-installer/ffmpeg').path;

ffmpeg.setFfmpegPath(ffmpegPath);

const ffprobePath = require('@ffprobe-installer/ffprobe').path;

ffmpeg.setFfprobePath(ffprobePath);

在前面的步骤实现返回 promise 的函数之后(关于视频的元数据)

ffprobe 第一个参数是本地视频的路径,第二个是匿名函数,返回元数据解析或错误拒绝

const videoInformation = () => {
return new Promise((resolve,reject) => {
ffmpeg.ffprobe('./Fishes - 16166.mp4', (err,info)=>{
if(err) {
reject(err)
} else {
resolve(info)
}
})
})
}

这部分将从视频中返回元数据

try {
const data = await videoInformation();
console.log(data)
} catch (err){
console.log(err)
}

关于node.js - AWS lambda 错误 : Cant find ffmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39239566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com