【发布时间】:2021-04-13 18:42:29
【问题描述】:
我的用例是使用 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] 没有这样的文件或目录:'ffmpeg -f concat -safe 0 -protocol_whitelist 文件,http,https,tcp,tls -i /tmp/files.txt -c 复制 /tmp/output.mp4'", "errorType": “文件未找到错误”
我做对了吗?我想是的,因为它在我的 Windows PC 上运行良好。
如果有人遇到此问题并已解决,请帮助我解决此问题。
【问题讨论】:
-
您需要先确保
/tmp/files.txt存在于本地Lambda文件系统中。 -
确实存在。我创建预签名的 S3 URL 并使用这些 URL 更新 files.txt 文件。我打印内容以确保文件存在并具有所需的数据。
-
正如我在问题中提到的,同样的脚本在 Windows 机器上运行时也能正常工作。
-
您是如何将 ffmpeg 部署到 Lambda 运行时环境中的?
标签: python amazon-web-services ffmpeg aws-lambda