Lambda not connecting to ffmpeg

后端 未结 2 468
我寻月下人不归
我寻月下人不归 2020-12-21 22:15

I have an issue with a Lambda function that tries to use ffmpeg as a third party on AWS. The function itself uses ffmpeg.js library which generates ffmpeg commands in it\'s

2条回答
  •  有刺的猬
    2020-12-21 22:43

    I successfully can work with ffmpeg on AWS Lambda in Python:

    1. Get static build of ffmpeg from here.
    2. Untar with tar -zxvf ffmpeg-release-amd64-static.tar.xz
    3. Fetch file ffmpeg (and optionally ffprobe) from folder and delete rest of files.
    4. Put bare ffmpeg file (without the subfolder) in the same folder as your lambda code.
    5. cd into this folder and zip with zip -r -X "../archive.zip" *
    6. Upload zipped file to AWS Lambda and save.

    In your Python code you need to set the correct filepath to the ffmpeg static build like so:

    FFMPEG_STATIC = "/var/task/ffmpeg"
    # now call ffmpeg with subprocess
    import subprocess
    subprocess.call([FFMPEG_STATIC, '-i', input_file, output_file])
    

    I didn´t have to change any file permissions. This wouldn't have worked anyways because /var/task/ doesn't seem to be writeable.

    input_file and output_file are local files in your spawned Lambda instance. I download my files from s3 to /tmp/ and do the processing with ffmpeg there. Make also sure to set sufficient memory and timeout for the Lambda (I use maximum settings for my workflow).

提交回复
热议问题