SIGN IN SIGN UP

Welcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below.

0 0 8 Java
2019-02-04 20:46:51 -08:00
<?php
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
2019-02-04 20:46:51 -08:00
/*
* ABOUT THIS PHP SAMPLE: This sample is part of the Elastic Transcoder Developer Guide topic at
* https://docs.aws.amazon.com/elastictranscoder/latest/developerguide/introduction.html
*
*/
// snippet-start:[elastictranscoder.php.create_hls_job.complete]
// snippet-start:[elastictranscoder.php.create_hls_job.import]
require 'vendor/autoload.php';
2019-02-04 20:46:51 -08:00
use Aws\ElasticTranscoder\ElasticTranscoderClient;
use Aws\Exception\AwsException;
2019-02-04 20:46:51 -08:00
// snippet-end:[elastictranscoder.php.create_hls_job.import]
2019-02-04 20:46:51 -08:00
/**
* Create an Elastic Transcoder job.
*
* This code expects that you have AWS credentials set up per:
* https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
*/
2019-02-04 20:46:51 -08:00
// snippet-start:[elastictranscoder.php.create_hls_job.main]
$tmp_path = '/tmp';
2019-02-04 20:46:51 -08:00
// Region where you set up your AWS resources.
$region = 'us-east-2';
2019-02-04 20:46:51 -08:00
// Create the client for Elastic Transcoder.
$transcoder_client = new ElasticTranscoderClient([
'profile' => 'default',
'version' => '2012-09-25',
'region' => $region,
'default_caching_config' => $tmp_path,
]);
2019-02-04 20:46:51 -08:00
$pipeline_id = '1234567890112-abcdefg';
2019-02-04 20:46:51 -08:00
$S3_file = 'folder/filename.txt';
2019-02-04 20:46:51 -08:00
// HLS Presets that will be used to create an adaptive bitrate playlist.
$hls_64k_audio_preset_id = '1351620000001-200071';
$hls_0400k_preset_id = '1351620000001-200050';
$hls_0600k_preset_id = '1351620000001-200040';
$hls_1000k_preset_id = '1351620000001-200030';
$hls_1500k_preset_id = '1351620000001-200020';
$hls_2000k_preset_id = '1351620000001-200010';
2019-02-04 20:46:51 -08:00
$hls_presets = [
'hlsAudio' => $hls_64k_audio_preset_id,
'hls0400k' => $hls_0400k_preset_id,
'hls0600k' => $hls_0600k_preset_id,
'hls1000k' => $hls_1000k_preset_id,
'hls1500k' => $hls_1500k_preset_id,
'hls2000k' => $hls_2000k_preset_id,
];
2019-02-04 20:46:51 -08:00
// HLS Segment duration that will be targeted.
$segment_duration = '2';
2019-02-04 20:46:51 -08:00
$outputs = [];
foreach ($hls_presets as $prefix => $preset_id) {
$outputs[] = [
'Key' => $prefix . '_' . $S3_file,
'PresetId' => $preset_id,
'SegmentDuration' => $segment_duration,
];
};
2019-02-04 20:46:51 -08:00
// All outputs will have this prefix prepended to their output key.
$output_key_prefix = 'elastic-transcoder-samples/output/';
2019-02-04 20:46:51 -08:00
$playlist = [
'Name' => 'hls_' . $S3_file,
'Format' => 'HLSv3',
'OutputKeys' => array_map(function ($x) {
return $x['Key'];
}, $outputs)
];
2019-02-04 20:46:51 -08:00
// Create the job.
try {
$create_job_result = $transcoder_client->createJob([
'PipelineId' => $pipeline_id,
'Input' => ['Key' => $S3_file],
'Outputs' => $outputs,
'OutputKeyPrefix' => $output_key_prefix,
'Playlists' => [ $playlist ],
]);
var_dump($create_job_result["Job"]);
} catch (AwsException $e) {
// output error message if fails
echo $e->getMessage() . "\n";
}
2019-02-04 20:46:51 -08:00
// snippet-end:[elastictranscoder.php.create_hls_job.main]
// snippet-end:[elastictranscoder.php.create_hls_job.complete]