FileNotFoundError в AWS Lambda при объединении видео с помощью ffmpeg - PullRequest
0 голосов
/ 06 ноября 2019

Цель:

  • Concat 2 видео (оба находятся в корзине s3) через aws Lambda с использованием ffmpeg
  • Загрузить результирующий файл output.mp4 в другое ведро S3
  • Python 3 +

Я уже создал слой, содержащий статический ffmpeg

Ошибка:

{
  "errorMessage": "[Errno 2] No such file or directory: '/tmp/output.mp4'",
  "errorType": "FileNotFoundError",
  "stackTrace": [
    [
      "/var/task/lambda_function.py",
      19,
      "lambda_handler",
      "s3.Object(bucketLowRes, mp4OutputFileName).put(Body=open(new_file_key, 'rb'))"
    ]
  ]
}

Моя функция Lambda:

import json
import os
import subprocess
import boto3

s3 = boto3.resource('s3')
bucketLowRes = s3.Bucket("bucket-conc-lowres")

def lambda_handler(event, context):
    # TODO implement

    mp4OutputFileName = 'output.mp4'

    new_file_key = os.path.abspath(os.path.join(os.sep, 'tmp', mp4OutputFileName))
    subprocess.call( ['/opt/ffmpeg', '-i', 'concat:s3://bucket-word-clips/00th76kqwfs915hbixycb77y9v3riwsj30.mp4|s3://bucket-word-clips/00uoakp6jyafbu13ycvl6w2i9tj42eux30.mp4', new_file_key ] )

    s3.Object(bucketLowRes, mp4OutputFileName).put(Body=open(new_file_key, 'rb'))

    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

Вопрос:

  • FileNotFoundError: Где сохраняется выходной файл mp4 моего конкатета ffmpeg ??
  • И если он находится в процессесохраняется в /tmp/output.mp4, тогда почему FileNotFoundError ??

спасибо

...