从 AWS 运行 FFmpeg

Jay*_*Jay 5 python ffmpeg amazon-s3 aws-lambda

这段代码在我的本地机器上运行良好。

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)
Run Code Online (Sandbox Code Playgroud)

我想从 AWS 运行它

拉姆达代码

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,

    }
Run Code Online (Sandbox Code Playgroud)

问题

这些在 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 
Run Code Online (Sandbox Code Playgroud)

如果我朝着正确的方向前进,请发表评论我已经尝试了大约一周

ffmpeg 作为层上传

al7*_*l76 -2

可以在此处找到用于运行 ffmpeg 的 nodejs lambda 解决方案

https://github.com/bineyes/aws-lambda-ffmpeg

这可能是为您准备的解决方案,或者提供一些有关如何解决您的任务的见解。

  • 仅链接的答案通常会令人不悦。请给出您链接到的网站的结论。解释为什么它特别适用于 OP 的问题。 (2认同)