gpt4 book ai didi

python - 在 AWS Lambda 函数中使用 python 运行 ffmpeg 命令的问题

转载 作者:行者123 更新时间:2023-12-04 23:07:09 34 4
gpt4 key购买 nike

我的用例是使用 ffmpeg 连接文件。我通过指定要连接的文件的 S3 URL(在文本文件/tmp/files.txt 中)来做到这一点。
下面是命令以及我使用 Python 运行它的方式:

ffmpeg_cmd = "ffmpeg -f concat -safe 0 -protocol_whitelist file,http,https,tcp,tls -i /tmp/files.txt -c copy /tmp/output.mp4"
subprocess.run(ffmpeg_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
当我在我的 Windows 机器上运行同一个 Python 文件时,它工作得非常好。但是当它在 AWS Lambda 函数上运行时,它会失败。请在下面找到我得到的错误:

"errorMessage": "[Errno 2] No such file or directory: 'ffmpeg -fconcat -safe 0 -protocol_whitelist file,http,https,tcp,tls -i/tmp/files.txt -c copy /tmp/output.mp4'", "errorType":"FileNotFoundError"


我做对了吗?我想是的,因为它在我的 Windows PC 上运行良好。
如果有人遇到此问题并已解决,请帮助我解决此问题。

最佳答案

FFMPEG 未预安装在 Lambda 运行时环境中。它必须明确部署为 Lambda 层或与您的 Lambda 函数捆绑并上传。如果您确实部署了它,那么 ffmpeg二进制文件可能无法执行或不在您的 PATH 中。
以下是部署 FFMPEG 的一些选项:

  • ffmpeg-aws-lambda-layer
  • ffmpeg-lambda-layer
  • install FFMPEG on Lambda

  • 我测试了一个没有 FFMPEG 二进制文件的简单 Lambda Python 函数,并准确地看到了您所看到的错误消息。这证明 ffmpeg二进制文件未安装在您的 Lambda 环境中或未安装在您的 PATH 中。上传的实际位置 ffmpeg二进制文件取决于您将其上传到的位置,但通常位于 /var/task/ 下如果您将二进制文件作为 Lambda 层的一部分或在 /opt/ 下上传如果作为 Lambda 包的一部分部署。而不是简单地尝试执行 ffmpeg ,您可能希望列出这些位置中的文件以验证您已部署的内容。

    关于python - 在 AWS Lambda 函数中使用 python 运行 ffmpeg 命令的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67080673/

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