这段代码在我的本地机器上运行完美。
import subprocess
p = subprocess.call('ffmpeg -r 1 -loop 1 -i "ep1.png" -i "ep1.mp3" -acodec copy -r 1 -shortest -vf scale=1280:720 ep1.flv',shell=True)
我想从 AWS 运行它
lambda 代码
import boto3
import subprocess
s3 = boto3.client('s3')
def lambda_handler(event, context):
ep1PNG = s3.get_object(Bucket='my-buc',Key='ep1.PNG')
ep1MP3 = s3.get_object(Bucket='my-buc',Key='ep1.mp3')
p = subprocess.call(
'/opt/ffmpeg/ffmpeg -r 1 -loop 1 -i ep1PNG -i ep1MP3 -acodec copy -r 1 -shortest -vf scale=1280:720 /tmp/ep1.flv', shell=True)
# TODO implement
return {
'statusCode': 200,
}
问题
subprocess.call() 中的这些是否正确?
/opt/ffmpeg/ffmpeg #<-----Is this correct ?
ep1PNG #<-----Is this correct ?
ep1MP3 #<-----Is this correct ?
/tmp/ep1.flv #<----- Not Sending Output to S3 Bucket
如果我正朝着正确的方向前进,请评论我已经尝试了大约一个星期了
ffmpeg作为图层上传
请您参考如下方法:
可以在这里找到运行 ffmpeg 的 nodejs lambda 解决方案
https://github.com/binoculars/aws-lambda-ffmpeg
这可能是适合您的现成解决方案,或者提供一些关于如何处理您的任务的见解。
