Elastic Transcoder自体の設定で、予めパイプラインを作成して、入力元bucket、出力先bucketなどを指定しておく必要がある。
コードは例によってGroovy Script。
@Grab('com.amazonaws:aws-java-sdk:1.9.17')
import com.amazonaws.ClientConfiguration;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.regions.Region;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.elastictranscoder.AmazonElasticTranscoderClient;
import com.amazonaws.services.elastictranscoder.model.CreateJobOutput;
import com.amazonaws.services.elastictranscoder.model.CreateJobRequest;
import com.amazonaws.services.elastictranscoder.model.CreateJobResult;
import com.amazonaws.services.elastictranscoder.model.JobInput;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
// 変換用動画ファイルをS3へアップロード
AWSCredentials awsCredentials = new BasicAWSCredentials("awsAccessKey", "awsSecretAccessKey");
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("proxyhost");
clientConfiguration.setProxyPort(80);
AmazonS3 s3Client = new AmazonS3Client(awsCredentials, clientConfiguration);
long now = new Date().getTime()
String key = "uploadtest_" + now + ".wmv";
// アップロード
s3Client.putObject("inputBucket", key, new File("sample.wmv"));
// Elastic Transcoderで変換
// 出力の設定
CreateJobOutput output = new CreateJobOutput();
output.setPresetId("1351620000001-100070"); // Web PresetId
output.setKey("output_" + now + ".mp4");
// 入力の設定
JobInput input = new JobInput();
input.setKey(key);
// 変換リクエストを作成
CreateJobRequest request = new CreateJobRequest();
request.setPipelineId("your pipelineId"); // パイプライン名ではなく、右の形式のもの ^\d{13}-\w{6}$
request.setInput(input);
request.setOutput(output);
AmazonElasticTranscoderClient amazonElasticTranscoderClient = new AmazonElasticTranscoderClient(awsCredentials, clientConfiguration);
Region region = Region.getRegion(Regions.AP_NORTHEAST_1);
amazonElasticTranscoderClient.setRegion(region);
// 変換
CreateJobResult createJobResult = amazonElasticTranscoderClient.createJob(request);
println createJobResult.getJob().getId(); // 変換依頼したジョブのid表示