Цель:
- 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 ??
спасибо