ElasticTranscoderで変換する際に必須となるプリセットですが、インプットファイルのフォーマットによって
動的に指定したい要件があった際に作成したサンプルコードです。
import boto3
import uuid
from botocore.client import ClientError
REGION_NAME = 'ap-northeast-1' #リージョン名
PRESET_NAME = str(uuid.uuid4()) #プリセット名
def lambda_handler(event, context):
transcoder = boto3.client('elastictranscoder', REGION_NAME)
s3 = boto3.resource('s3')
iam = boto3.resource('iam')
# Create a preset
preset = transcoder.create_preset(
Name=PRESET_NAME,
Description='string',
Container='mp4',
Video={
'Codec': 'H.264',
'CodecOptions': {
"Profile":"high",
"Level":"4.1",
"BufferSize":"4800",
"InterlacedMode":"Progressive",
"MaxReferenceFrames":"16",
"MaxBitRate":"480",
"ColorSpaceConversionMode":"None",
},
'KeyframesMaxDist': '30',
'FixedGOP': 'true',
'BitRate': 'auto',
'FrameRate': 'auto',
'MaxFrameRate': '30',
'MaxWidth': '560',
'MaxHeight': '320',
'DisplayAspectRatio': 'auto',
'SizingPolicy': 'ShrinkToFit',
'PaddingPolicy': 'NoPad',
},
Audio={
'Codec': 'AAC',
'SampleRate': 'auto',
'BitRate': '80',
'Channels': 'auto',
'CodecOptions': {
'Profile': 'auto',
}
},
Thumbnails={
'Format': 'jpg',
'Interval': '1',
'MaxWidth': '560',
'MaxHeight': '320',
'SizingPolicy': 'ShrinkToFit',
'PaddingPolicy': 'NoPad'
}
)
return (preset)