您如何将lambda指向ffmpeg静态二进制
这是我到目前为止的设置
输入S3触发 -> lambda-> src层 ->输出 -> s3
lambda code ------------在我的本地计算机上工作的目标是使其在AWS上工作
import json
import subprocess
def lambda_handler(event, context):
# TODO implement
print("I am being Triggered")
p = subprocess.call(
'ffmpeg -r 1 -loop 1 -i "./S3_Input.png" -i "./S3_File.mp3" -acodec copy -r 1 -shortest -vf scale=1280:720 ep1.flv', shell=True)
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
来自文档:
在功能执行环境中将层提取到/opt目录。
我不确定您是如何将ffmpeg打包在图层中的,但是假设二进制文件位于顶级,则需要像/opt/ffmpeg
一样引用它。因此,您对subprocess.call()
的第一个论点看起来更像:
'/opt/ffmpeg -r 1 -loop 1 -i "./S3_Input.png" -i "./S3_File.mp3" -acodec copy -r 1 -shortest -vf scale=1280:720 ep1.flv'
如果二进制更深,例如。在bin
目录中,您将其引用如/opt/bin/ffmpeg
。