我目前正在将视频上传到 S3 存储桶,然后使用 AWS Elastic Transcoder 创建 webm 文件并输出缩略图。所有这些都在工作,除了我无法在 ET 文件上设置任何元数据。
我正在尝试将缓存控制添加到 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 您要为输出对象设置哪些标头。
我能想到的一种简单的方法来实现您正在寻找的目标,即使用 Lambda 函数。您可以将其配置为在每次成功的转码(使用 SNS 通知)上运行,并在输出对象上设置标头。