В настоящее время я загружаю видео в корзину S3, а затем использую AWS Elastic Transcoder для создания веб-файла и вывода эскиза. Все это работает, за исключением того, что я не могу установить какие-либо метаданные в файлах ET.
Я пытаюсь добавить Cache-Control и в webm, и в миниатюру, но я не могу найти нигде в PHP SDK, который бы позволял это.
Я знаю, что мог бы сделать S3 copyObject и добавить метаданные таким образом, но это кажется очень громоздким.
Ниже приведен код моего создания ET.
$result = $client->createJob(array(
'PipelineId' => 'my-pipeline-id',
'Input' => array(
'Key' => $mp4Name,
'FrameRate' => 'auto',
'Resolution' => 'auto',
'AspectRatio' => '16:9',
'Interlaced' => 'auto',
'Container' => 'mp4',
),
'Outputs' => array(
array(
'Key' => $awsOutWebm,
'ThumbnailPattern' => $thumbOut,
'Rotate' => '0',
'PresetId' => 'my-preset-id',
'Watermarks' => array(
array(
'PresetWatermarkId' => 'BottomRight',
'InputKey' => 'logo.png',
),
),
),
),
));
Насколько я знаю, нет способа сообщить Elastic Transcoder, какие заголовки вы хотите установить для выходных объектов.
Простой способ, который я могу придумать для достижения того, что вы ищете, это использование лямбда-функции. Вы можете настроить его на запуск при каждом успешном транскодировании (с использованием уведомлений SNS) и установить заголовки для выходных объектов.
Других решений пока нет …