All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.elastictranscoder.model.JobOutput Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon Elastic Transcoder module holds the client classes that are used for communicating with Amazon Elastic Transcoder Service

There is a newer version: 1.9.35
Show newest version
/*
 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights
 * Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */

package com.amazonaws.services.elastictranscoder.model;

import java.io.Serializable;

/**
 * 

* Outputs recommended instead.If you specified one * output for a job, information about that output. If you specified multiple * outputs for a job, the Output object lists information about the * first output. This duplicates the information that is listed for the first * output in the Outputs object. *

*/ public class JobOutput implements Serializable, Cloneable { /** *

* A sequential counter, starting with 1, that identifies an output among * the outputs from the current job. In the Output syntax, this value is * always 1. *

*/ private String id; /** *

* The name to assign to the transcoded file. Elastic Transcoder saves the * file in the Amazon S3 bucket specified by the OutputBucket * object in the pipeline that is specified by the pipeline ID. *

*/ private String key; /** *

* Whether you want Elastic Transcoder to create thumbnails for your videos * and, if so, how you want Elastic Transcoder to name the files. *

*

* If you don't want Elastic Transcoder to create thumbnails, specify "". *

*

* If you do want Elastic Transcoder to create thumbnails, specify the * information that you want to include in the file name for each thumbnail. * You can specify the following values in any sequence: *

*
    *
  • *

    * {count} (Required): If you want to create thumbnails, * you must include {count} in the * ThumbnailPattern object. Wherever you specify * {count}, Elastic Transcoder adds a five-digit sequence * number (beginning with 00001) to thumbnail file names. The number * indicates where a given thumbnail appears in the sequence of thumbnails * for a transcoded file. *

    * If you specify a literal value and/or * {resolution} but you omit {count}, Elastic * Transcoder returns a validation error and does not create the * job.
  • *
  • *

    * Literal values (Optional): You can specify literal values anywhere * in the ThumbnailPattern object. For example, you can include * them as a file name prefix or as a delimiter between * {resolution} and {count}. *

    *
  • *
  • *

    * {resolution} (Optional): If you want Elastic * Transcoder to include the resolution in the file name, include * {resolution} in the ThumbnailPattern object. *

    *
  • *
*

* When creating thumbnails, Elastic Transcoder automatically saves the * files in the format (.jpg or .png) that appears in the preset that you * specified in the PresetID value of * CreateJobOutput. Elastic Transcoder also appends the * applicable file name extension. *

*/ private String thumbnailPattern; /** *

* The encryption settings, if any, that you want Elastic Transcoder to * apply to your thumbnail. *

*/ private Encryption thumbnailEncryption; /** *

* The number of degrees clockwise by which you want Elastic Transcoder to * rotate the output relative to the input. Enter one of the following * values: *

*

* auto, 0, 90, 180, * 270 *

*

* The value auto generally works only if the file that you're * transcoding contains rotation metadata. *

*/ private String rotate; /** *

* The value of the Id object for the preset that you want to * use for this job. The preset determines the audio, video, and thumbnail * settings that Elastic Transcoder uses for transcoding. To use a preset * that you created, specify the preset ID that Elastic Transcoder returned * in the response when you created the preset. You can also use the Elastic * Transcoder system presets, which you can get with * ListPresets. *

*/ private String presetId; /** *

* (Outputs in Fragmented MP4 or MPEG-TS format * only.If you specify a preset in PresetId for * which the value of Container is fmp4 * (Fragmented MP4) or ts (MPEG-TS), * SegmentDuration is the target maximum duration of each * segment in seconds. For HLSv3 format playlists, each media * segment is stored in a separate .ts file. For * HLSv4 and Smooth playlists, all media segments * for an output are stored in a single file. Each segment is approximately * the length of the SegmentDuration, though individual * segments might be shorter or longer. *

*

* The range of valid values is 1 to 60 seconds. If the duration of the * video is not evenly divisible by SegmentDuration, the * duration of the last segment is the remainder of total * length/SegmentDuration. *

*

* Elastic Transcoder creates an output-specific playlist for each output * HLS output that you specify in OutputKeys. To add an output * to the master playlist for this job, include it in the * OutputKeys of the associated playlist. *

*/ private String segmentDuration; /** *

* The status of one output in a job. If you specified only one output for * the job, Outputs:Status is always the same as * Job:Status. If you specified more than one output: *

    *
  • Job:Status and Outputs:Status for all of * the outputs is Submitted until Elastic Transcoder starts to process the * first output.
  • *
  • When Elastic Transcoder starts to process the first output, * Outputs:Status for that output and Job:Status * both change to Progressing. For each output, the value of * Outputs:Status remains Submitted until Elastic Transcoder * starts to process the output.
  • *
  • Job:Status remains Progressing until all of the outputs reach a * terminal status, either Complete or Error.
  • *
  • When all of the outputs reach a terminal status, * Job:Status changes to Complete only if * Outputs:Status for all of the outputs is * Complete. If Outputs:Status for one or more * outputs is Error, the terminal status for * Job:Status is also Error.
  • *
* The value of Status is one of the following: * Submitted, Progressing, Complete, * Canceled, or Error. *

*/ private String status; /** *

* Information that further explains Status. *

*/ private String statusDetail; /** *

* Duration of the output file, in seconds. *

*/ private Long duration; /** *

* Specifies the width of the output file in pixels. *

*/ private Integer width; /** *

* Height of the output file, in pixels. *

*/ private Integer height; /** *

* Frame rate of the output file, in frames per second. *

*/ private String frameRate; /** *

* File size of the output file, in bytes. *

*/ private Long fileSize; /** *

* Duration of the output file, in milliseconds. *

*/ private Long durationMillis; /** *

* Information about the watermarks that you want Elastic Transcoder to add * to the video during transcoding. You can specify up to four watermarks * for each output. Settings for each watermark must be defined in the * preset that you specify in Preset for the current output. *

*

* Watermarks are added to the output video in the sequence in which you * list them in the job output—the first watermark in the list is * added to the output video first, the second watermark in the list is * added next, and so on. As a result, if the settings in a preset cause * Elastic Transcoder to place all watermarks in the same location, the * second watermark that you add will cover the first one, the third one * will cover the second, and the fourth one will cover the third. *

*/ private com.amazonaws.internal.SdkInternalList watermarks; /** *

* The album art to be associated with the output file, if any. *

*/ private JobAlbumArt albumArt; /** *

* You can create an output file that contains an excerpt from the input * file. This excerpt, called a clip, can come from the beginning, middle, * or end of the file. The Composition object contains settings for the * clips that make up an output file. For the current release, you can only * specify settings for a single clip per output file. The Composition * object cannot be null. *

*/ private com.amazonaws.internal.SdkInternalList composition; /** *

* You can configure Elastic Transcoder to transcode captions, or subtitles, * from one format to another. All captions must be in UTF-8. Elastic * Transcoder supports two types of captions: *

*
    *
  • *

    * Embedded: Embedded captions are included in the same file as the * audio and video. Elastic Transcoder supports only one embedded caption * per language, to a maximum of 300 embedded captions per file. *

    *

    * Valid input values include: CEA-608 (EIA-608, first * non-empty channel only), CEA-708 (EIA-708, first non-empty * channel only), and mov-text *

    *

    * Valid outputs include: mov-text *

    *

    * Elastic Transcoder supports a maximum of one embedded format per output. *

    *
  • *
  • *

    * Sidecar: Sidecar captions are kept in a separate metadata file * from the audio and video data. Sidecar captions require a player that is * capable of understanding the relationship between the video file and the * sidecar file. Elastic Transcoder supports only one sidecar caption per * language, to a maximum of 20 sidecar captions per file. *

    *

    * Valid input values include: dfxp (first div element only), * ebu-tt, scc, smpt, * srt, ttml (first div element only), and * webvtt *

    *

    * Valid outputs include: dfxp (first div element only), * scc, srt, and webvtt. *

    *
  • *
*

* If you want ttml or smpte-tt compatible captions, specify dfxp as your * output format. *

*

* Elastic Transcoder does not support OCR (Optical Character Recognition), * does not accept pictures as a valid input for captions, and is not * available for audio-only transcoding. Elastic Transcoder does not * preserve text formatting (for example, italics) during the transcoding * process. *

*

* To remove captions or leave the captions empty, set Captions * to null. To pass through existing captions unchanged, set the * MergePolicy to MergeRetain, and pass in a null * CaptionSources array. *

*

* For more information on embedded files, see the Subtitles Wikipedia page. *

*

* For more information on sidecar files, see the Extensible Metadata * Platform and Sidecar file Wikipedia pages. *

*/ private Captions captions; /** *

* The encryption settings, if any, that you want Elastic Transcoder to * apply to your output files. If you choose to use encryption, you must * specify a mode to use. If you choose not to use encryption, Elastic * Transcoder will write an unencrypted file to your Amazon S3 bucket. *

*/ private Encryption encryption; /** *

* If Elastic Transcoder used a preset with a * ColorSpaceConversionMode to transcode the output file, the * AppliedColorSpaceConversion parameter shows the conversion * used. If no ColorSpaceConversionMode was defined in the * preset, this parameter will not be included in the job response. *

*/ private String appliedColorSpaceConversion; /** *

* A sequential counter, starting with 1, that identifies an output among * the outputs from the current job. In the Output syntax, this value is * always 1. *

* * @param id * A sequential counter, starting with 1, that identifies an output * among the outputs from the current job. In the Output syntax, this * value is always 1. */ public void setId(String id) { this.id = id; } /** *

* A sequential counter, starting with 1, that identifies an output among * the outputs from the current job. In the Output syntax, this value is * always 1. *

* * @return A sequential counter, starting with 1, that identifies an output * among the outputs from the current job. In the Output syntax, * this value is always 1. */ public String getId() { return this.id; } /** *

* A sequential counter, starting with 1, that identifies an output among * the outputs from the current job. In the Output syntax, this value is * always 1. *

* * @param id * A sequential counter, starting with 1, that identifies an output * among the outputs from the current job. In the Output syntax, this * value is always 1. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withId(String id) { setId(id); return this; } /** *

* The name to assign to the transcoded file. Elastic Transcoder saves the * file in the Amazon S3 bucket specified by the OutputBucket * object in the pipeline that is specified by the pipeline ID. *

* * @param key * The name to assign to the transcoded file. Elastic Transcoder * saves the file in the Amazon S3 bucket specified by the * OutputBucket object in the pipeline that is specified * by the pipeline ID. */ public void setKey(String key) { this.key = key; } /** *

* The name to assign to the transcoded file. Elastic Transcoder saves the * file in the Amazon S3 bucket specified by the OutputBucket * object in the pipeline that is specified by the pipeline ID. *

* * @return The name to assign to the transcoded file. Elastic Transcoder * saves the file in the Amazon S3 bucket specified by the * OutputBucket object in the pipeline that is * specified by the pipeline ID. */ public String getKey() { return this.key; } /** *

* The name to assign to the transcoded file. Elastic Transcoder saves the * file in the Amazon S3 bucket specified by the OutputBucket * object in the pipeline that is specified by the pipeline ID. *

* * @param key * The name to assign to the transcoded file. Elastic Transcoder * saves the file in the Amazon S3 bucket specified by the * OutputBucket object in the pipeline that is specified * by the pipeline ID. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withKey(String key) { setKey(key); return this; } /** *

* Whether you want Elastic Transcoder to create thumbnails for your videos * and, if so, how you want Elastic Transcoder to name the files. *

*

* If you don't want Elastic Transcoder to create thumbnails, specify "". *

*

* If you do want Elastic Transcoder to create thumbnails, specify the * information that you want to include in the file name for each thumbnail. * You can specify the following values in any sequence: *

*
    *
  • *

    * {count} (Required): If you want to create thumbnails, * you must include {count} in the * ThumbnailPattern object. Wherever you specify * {count}, Elastic Transcoder adds a five-digit sequence * number (beginning with 00001) to thumbnail file names. The number * indicates where a given thumbnail appears in the sequence of thumbnails * for a transcoded file. *

    * If you specify a literal value and/or * {resolution} but you omit {count}, Elastic * Transcoder returns a validation error and does not create the * job.
  • *
  • *

    * Literal values (Optional): You can specify literal values anywhere * in the ThumbnailPattern object. For example, you can include * them as a file name prefix or as a delimiter between * {resolution} and {count}. *

    *
  • *
  • *

    * {resolution} (Optional): If you want Elastic * Transcoder to include the resolution in the file name, include * {resolution} in the ThumbnailPattern object. *

    *
  • *
*

* When creating thumbnails, Elastic Transcoder automatically saves the * files in the format (.jpg or .png) that appears in the preset that you * specified in the PresetID value of * CreateJobOutput. Elastic Transcoder also appends the * applicable file name extension. *

* * @param thumbnailPattern * Whether you want Elastic Transcoder to create thumbnails for your * videos and, if so, how you want Elastic Transcoder to name the * files.

*

* If you don't want Elastic Transcoder to create thumbnails, specify * "". *

*

* If you do want Elastic Transcoder to create thumbnails, specify * the information that you want to include in the file name for each * thumbnail. You can specify the following values in any sequence: *

*
    *
  • *

    * {count} (Required): If you want to create * thumbnails, you must include {count} in the * ThumbnailPattern object. Wherever you specify * {count}, Elastic Transcoder adds a five-digit * sequence number (beginning with 00001) to thumbnail file * names. The number indicates where a given thumbnail appears in the * sequence of thumbnails for a transcoded file. *

    * If you specify a literal value and/or * {resolution} but you omit {count}, * Elastic Transcoder returns a validation error and does not create * the job.
  • *
  • *

    * Literal values (Optional): You can specify literal values * anywhere in the ThumbnailPattern object. For example, * you can include them as a file name prefix or as a delimiter * between {resolution} and {count}. *

    *
  • *
  • *

    * {resolution} (Optional): If you want Elastic * Transcoder to include the resolution in the file name, include * {resolution} in the ThumbnailPattern * object. *

    *
  • *
*

* When creating thumbnails, Elastic Transcoder automatically saves * the files in the format (.jpg or .png) that appears in the preset * that you specified in the PresetID value of * CreateJobOutput. Elastic Transcoder also appends the * applicable file name extension. */ public void setThumbnailPattern(String thumbnailPattern) { this.thumbnailPattern = thumbnailPattern; } /** *

* Whether you want Elastic Transcoder to create thumbnails for your videos * and, if so, how you want Elastic Transcoder to name the files. *

*

* If you don't want Elastic Transcoder to create thumbnails, specify "". *

*

* If you do want Elastic Transcoder to create thumbnails, specify the * information that you want to include in the file name for each thumbnail. * You can specify the following values in any sequence: *

*
    *
  • *

    * {count} (Required): If you want to create thumbnails, * you must include {count} in the * ThumbnailPattern object. Wherever you specify * {count}, Elastic Transcoder adds a five-digit sequence * number (beginning with 00001) to thumbnail file names. The number * indicates where a given thumbnail appears in the sequence of thumbnails * for a transcoded file. *

    * If you specify a literal value and/or * {resolution} but you omit {count}, Elastic * Transcoder returns a validation error and does not create the * job.
  • *
  • *

    * Literal values (Optional): You can specify literal values anywhere * in the ThumbnailPattern object. For example, you can include * them as a file name prefix or as a delimiter between * {resolution} and {count}. *

    *
  • *
  • *

    * {resolution} (Optional): If you want Elastic * Transcoder to include the resolution in the file name, include * {resolution} in the ThumbnailPattern object. *

    *
  • *
*

* When creating thumbnails, Elastic Transcoder automatically saves the * files in the format (.jpg or .png) that appears in the preset that you * specified in the PresetID value of * CreateJobOutput. Elastic Transcoder also appends the * applicable file name extension. *

* * @return Whether you want Elastic Transcoder to create thumbnails for your * videos and, if so, how you want Elastic Transcoder to name the * files.

*

* If you don't want Elastic Transcoder to create thumbnails, * specify "". *

*

* If you do want Elastic Transcoder to create thumbnails, specify * the information that you want to include in the file name for * each thumbnail. You can specify the following values in any * sequence: *

*
    *
  • *

    * {count} (Required): If you want to create * thumbnails, you must include {count} in the * ThumbnailPattern object. Wherever you specify * {count}, Elastic Transcoder adds a five-digit * sequence number (beginning with 00001) to thumbnail file * names. The number indicates where a given thumbnail appears in * the sequence of thumbnails for a transcoded file. *

    * If you specify a literal value and/or * {resolution} but you omit {count}, * Elastic Transcoder returns a validation error and does not create * the job.
  • *
  • *

    * Literal values (Optional): You can specify literal values * anywhere in the ThumbnailPattern object. For * example, you can include them as a file name prefix or as a * delimiter between {resolution} and * {count}. *

    *
  • *
  • *

    * {resolution} (Optional): If you want Elastic * Transcoder to include the resolution in the file name, include * {resolution} in the ThumbnailPattern * object. *

    *
  • *
*

* When creating thumbnails, Elastic Transcoder automatically saves * the files in the format (.jpg or .png) that appears in the preset * that you specified in the PresetID value of * CreateJobOutput. Elastic Transcoder also appends the * applicable file name extension. */ public String getThumbnailPattern() { return this.thumbnailPattern; } /** *

* Whether you want Elastic Transcoder to create thumbnails for your videos * and, if so, how you want Elastic Transcoder to name the files. *

*

* If you don't want Elastic Transcoder to create thumbnails, specify "". *

*

* If you do want Elastic Transcoder to create thumbnails, specify the * information that you want to include in the file name for each thumbnail. * You can specify the following values in any sequence: *

*
    *
  • *

    * {count} (Required): If you want to create thumbnails, * you must include {count} in the * ThumbnailPattern object. Wherever you specify * {count}, Elastic Transcoder adds a five-digit sequence * number (beginning with 00001) to thumbnail file names. The number * indicates where a given thumbnail appears in the sequence of thumbnails * for a transcoded file. *

    * If you specify a literal value and/or * {resolution} but you omit {count}, Elastic * Transcoder returns a validation error and does not create the * job.
  • *
  • *

    * Literal values (Optional): You can specify literal values anywhere * in the ThumbnailPattern object. For example, you can include * them as a file name prefix or as a delimiter between * {resolution} and {count}. *

    *
  • *
  • *

    * {resolution} (Optional): If you want Elastic * Transcoder to include the resolution in the file name, include * {resolution} in the ThumbnailPattern object. *

    *
  • *
*

* When creating thumbnails, Elastic Transcoder automatically saves the * files in the format (.jpg or .png) that appears in the preset that you * specified in the PresetID value of * CreateJobOutput. Elastic Transcoder also appends the * applicable file name extension. *

* * @param thumbnailPattern * Whether you want Elastic Transcoder to create thumbnails for your * videos and, if so, how you want Elastic Transcoder to name the * files.

*

* If you don't want Elastic Transcoder to create thumbnails, specify * "". *

*

* If you do want Elastic Transcoder to create thumbnails, specify * the information that you want to include in the file name for each * thumbnail. You can specify the following values in any sequence: *

*
    *
  • *

    * {count} (Required): If you want to create * thumbnails, you must include {count} in the * ThumbnailPattern object. Wherever you specify * {count}, Elastic Transcoder adds a five-digit * sequence number (beginning with 00001) to thumbnail file * names. The number indicates where a given thumbnail appears in the * sequence of thumbnails for a transcoded file. *

    * If you specify a literal value and/or * {resolution} but you omit {count}, * Elastic Transcoder returns a validation error and does not create * the job.
  • *
  • *

    * Literal values (Optional): You can specify literal values * anywhere in the ThumbnailPattern object. For example, * you can include them as a file name prefix or as a delimiter * between {resolution} and {count}. *

    *
  • *
  • *

    * {resolution} (Optional): If you want Elastic * Transcoder to include the resolution in the file name, include * {resolution} in the ThumbnailPattern * object. *

    *
  • *
*

* When creating thumbnails, Elastic Transcoder automatically saves * the files in the format (.jpg or .png) that appears in the preset * that you specified in the PresetID value of * CreateJobOutput. Elastic Transcoder also appends the * applicable file name extension. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withThumbnailPattern(String thumbnailPattern) { setThumbnailPattern(thumbnailPattern); return this; } /** *

* The encryption settings, if any, that you want Elastic Transcoder to * apply to your thumbnail. *

* * @param thumbnailEncryption * The encryption settings, if any, that you want Elastic Transcoder * to apply to your thumbnail. */ public void setThumbnailEncryption(Encryption thumbnailEncryption) { this.thumbnailEncryption = thumbnailEncryption; } /** *

* The encryption settings, if any, that you want Elastic Transcoder to * apply to your thumbnail. *

* * @return The encryption settings, if any, that you want Elastic Transcoder * to apply to your thumbnail. */ public Encryption getThumbnailEncryption() { return this.thumbnailEncryption; } /** *

* The encryption settings, if any, that you want Elastic Transcoder to * apply to your thumbnail. *

* * @param thumbnailEncryption * The encryption settings, if any, that you want Elastic Transcoder * to apply to your thumbnail. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withThumbnailEncryption(Encryption thumbnailEncryption) { setThumbnailEncryption(thumbnailEncryption); return this; } /** *

* The number of degrees clockwise by which you want Elastic Transcoder to * rotate the output relative to the input. Enter one of the following * values: *

*

* auto, 0, 90, 180, * 270 *

*

* The value auto generally works only if the file that you're * transcoding contains rotation metadata. *

* * @param rotate * The number of degrees clockwise by which you want Elastic * Transcoder to rotate the output relative to the input. Enter one * of the following values:

*

* auto, 0, 90, * 180, 270 *

*

* The value auto generally works only if the file that * you're transcoding contains rotation metadata. */ public void setRotate(String rotate) { this.rotate = rotate; } /** *

* The number of degrees clockwise by which you want Elastic Transcoder to * rotate the output relative to the input. Enter one of the following * values: *

*

* auto, 0, 90, 180, * 270 *

*

* The value auto generally works only if the file that you're * transcoding contains rotation metadata. *

* * @return The number of degrees clockwise by which you want Elastic * Transcoder to rotate the output relative to the input. Enter one * of the following values:

*

* auto, 0, 90, * 180, 270 *

*

* The value auto generally works only if the file that * you're transcoding contains rotation metadata. */ public String getRotate() { return this.rotate; } /** *

* The number of degrees clockwise by which you want Elastic Transcoder to * rotate the output relative to the input. Enter one of the following * values: *

*

* auto, 0, 90, 180, * 270 *

*

* The value auto generally works only if the file that you're * transcoding contains rotation metadata. *

* * @param rotate * The number of degrees clockwise by which you want Elastic * Transcoder to rotate the output relative to the input. Enter one * of the following values:

*

* auto, 0, 90, * 180, 270 *

*

* The value auto generally works only if the file that * you're transcoding contains rotation metadata. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withRotate(String rotate) { setRotate(rotate); return this; } /** *

* The value of the Id object for the preset that you want to * use for this job. The preset determines the audio, video, and thumbnail * settings that Elastic Transcoder uses for transcoding. To use a preset * that you created, specify the preset ID that Elastic Transcoder returned * in the response when you created the preset. You can also use the Elastic * Transcoder system presets, which you can get with * ListPresets. *

* * @param presetId * The value of the Id object for the preset that you * want to use for this job. The preset determines the audio, video, * and thumbnail settings that Elastic Transcoder uses for * transcoding. To use a preset that you created, specify the preset * ID that Elastic Transcoder returned in the response when you * created the preset. You can also use the Elastic Transcoder system * presets, which you can get with ListPresets. */ public void setPresetId(String presetId) { this.presetId = presetId; } /** *

* The value of the Id object for the preset that you want to * use for this job. The preset determines the audio, video, and thumbnail * settings that Elastic Transcoder uses for transcoding. To use a preset * that you created, specify the preset ID that Elastic Transcoder returned * in the response when you created the preset. You can also use the Elastic * Transcoder system presets, which you can get with * ListPresets. *

* * @return The value of the Id object for the preset that you * want to use for this job. The preset determines the audio, video, * and thumbnail settings that Elastic Transcoder uses for * transcoding. To use a preset that you created, specify the preset * ID that Elastic Transcoder returned in the response when you * created the preset. You can also use the Elastic Transcoder * system presets, which you can get with ListPresets. */ public String getPresetId() { return this.presetId; } /** *

* The value of the Id object for the preset that you want to * use for this job. The preset determines the audio, video, and thumbnail * settings that Elastic Transcoder uses for transcoding. To use a preset * that you created, specify the preset ID that Elastic Transcoder returned * in the response when you created the preset. You can also use the Elastic * Transcoder system presets, which you can get with * ListPresets. *

* * @param presetId * The value of the Id object for the preset that you * want to use for this job. The preset determines the audio, video, * and thumbnail settings that Elastic Transcoder uses for * transcoding. To use a preset that you created, specify the preset * ID that Elastic Transcoder returned in the response when you * created the preset. You can also use the Elastic Transcoder system * presets, which you can get with ListPresets. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withPresetId(String presetId) { setPresetId(presetId); return this; } /** *

* (Outputs in Fragmented MP4 or MPEG-TS format * only.If you specify a preset in PresetId for * which the value of Container is fmp4 * (Fragmented MP4) or ts (MPEG-TS), * SegmentDuration is the target maximum duration of each * segment in seconds. For HLSv3 format playlists, each media * segment is stored in a separate .ts file. For * HLSv4 and Smooth playlists, all media segments * for an output are stored in a single file. Each segment is approximately * the length of the SegmentDuration, though individual * segments might be shorter or longer. *

*

* The range of valid values is 1 to 60 seconds. If the duration of the * video is not evenly divisible by SegmentDuration, the * duration of the last segment is the remainder of total * length/SegmentDuration. *

*

* Elastic Transcoder creates an output-specific playlist for each output * HLS output that you specify in OutputKeys. To add an output * to the master playlist for this job, include it in the * OutputKeys of the associated playlist. *

* * @param segmentDuration * (Outputs in Fragmented MP4 or MPEG-TS format only.If * you specify a preset in PresetId for which the value * of Container is fmp4 (Fragmented MP4) or * ts (MPEG-TS), SegmentDuration is the * target maximum duration of each segment in seconds. For * HLSv3 format playlists, each media segment is stored * in a separate .ts file. For HLSv4 and * Smooth playlists, all media segments for an output * are stored in a single file. Each segment is approximately the * length of the SegmentDuration, though individual * segments might be shorter or longer.

*

* The range of valid values is 1 to 60 seconds. If the duration of * the video is not evenly divisible by SegmentDuration, * the duration of the last segment is the remainder of total * length/SegmentDuration. *

*

* Elastic Transcoder creates an output-specific playlist for each * output HLS output that you specify in OutputKeys. To * add an output to the master playlist for this job, include it in * the OutputKeys */ public void setSegmentDuration(String segmentDuration) { this.segmentDuration = segmentDuration; } /** *

* (Outputs in Fragmented MP4 or MPEG-TS format * only.If you specify a preset in PresetId for * which the value of Container is fmp4 * (Fragmented MP4) or ts (MPEG-TS), * SegmentDuration is the target maximum duration of each * segment in seconds. For HLSv3 format playlists, each media * segment is stored in a separate .ts file. For * HLSv4 and Smooth playlists, all media segments * for an output are stored in a single file. Each segment is approximately * the length of the SegmentDuration, though individual * segments might be shorter or longer. *

*

* The range of valid values is 1 to 60 seconds. If the duration of the * video is not evenly divisible by SegmentDuration, the * duration of the last segment is the remainder of total * length/SegmentDuration. *

*

* Elastic Transcoder creates an output-specific playlist for each output * HLS output that you specify in OutputKeys. To add an output * to the master playlist for this job, include it in the * OutputKeys of the associated playlist. *

* * @return (Outputs in Fragmented MP4 or MPEG-TS format only.If * you specify a preset in PresetId for which the value * of Container is fmp4 (Fragmented MP4) * or ts (MPEG-TS), SegmentDuration is the * target maximum duration of each segment in seconds. For * HLSv3 format playlists, each media segment is stored * in a separate .ts file. For HLSv4 and * Smooth playlists, all media segments for an output * are stored in a single file. Each segment is approximately the * length of the SegmentDuration, though individual * segments might be shorter or longer.

*

* The range of valid values is 1 to 60 seconds. If the duration of * the video is not evenly divisible by SegmentDuration * , the duration of the last segment is the remainder of total * length/SegmentDuration. *

*

* Elastic Transcoder creates an output-specific playlist for each * output HLS output that you specify in OutputKeys. To * add an output to the master playlist for this job, include it in * the OutputKeys */ public String getSegmentDuration() { return this.segmentDuration; } /** *

* (Outputs in Fragmented MP4 or MPEG-TS format * only.If you specify a preset in PresetId for * which the value of Container is fmp4 * (Fragmented MP4) or ts (MPEG-TS), * SegmentDuration is the target maximum duration of each * segment in seconds. For HLSv3 format playlists, each media * segment is stored in a separate .ts file. For * HLSv4 and Smooth playlists, all media segments * for an output are stored in a single file. Each segment is approximately * the length of the SegmentDuration, though individual * segments might be shorter or longer. *

*

* The range of valid values is 1 to 60 seconds. If the duration of the * video is not evenly divisible by SegmentDuration, the * duration of the last segment is the remainder of total * length/SegmentDuration. *

*

* Elastic Transcoder creates an output-specific playlist for each output * HLS output that you specify in OutputKeys. To add an output * to the master playlist for this job, include it in the * OutputKeys of the associated playlist. *

* * @param segmentDuration * (Outputs in Fragmented MP4 or MPEG-TS format only.If * you specify a preset in PresetId for which the value * of Container is fmp4 (Fragmented MP4) or * ts (MPEG-TS), SegmentDuration is the * target maximum duration of each segment in seconds. For * HLSv3 format playlists, each media segment is stored * in a separate .ts file. For HLSv4 and * Smooth playlists, all media segments for an output * are stored in a single file. Each segment is approximately the * length of the SegmentDuration, though individual * segments might be shorter or longer.

*

* The range of valid values is 1 to 60 seconds. If the duration of * the video is not evenly divisible by SegmentDuration, * the duration of the last segment is the remainder of total * length/SegmentDuration. *

*

* Elastic Transcoder creates an output-specific playlist for each * output HLS output that you specify in OutputKeys. To * add an output to the master playlist for this job, include it in * the OutputKeys * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withSegmentDuration(String segmentDuration) { setSegmentDuration(segmentDuration); return this; } /** *

* The status of one output in a job. If you specified only one output for * the job, Outputs:Status is always the same as * Job:Status. If you specified more than one output: *

    *
  • Job:Status and Outputs:Status for all of * the outputs is Submitted until Elastic Transcoder starts to process the * first output.
  • *
  • When Elastic Transcoder starts to process the first output, * Outputs:Status for that output and Job:Status * both change to Progressing. For each output, the value of * Outputs:Status remains Submitted until Elastic Transcoder * starts to process the output.
  • *
  • Job:Status remains Progressing until all of the outputs reach a * terminal status, either Complete or Error.
  • *
  • When all of the outputs reach a terminal status, * Job:Status changes to Complete only if * Outputs:Status for all of the outputs is * Complete. If Outputs:Status for one or more * outputs is Error, the terminal status for * Job:Status is also Error.
  • *
* The value of Status is one of the following: * Submitted, Progressing, Complete, * Canceled, or Error. *

* * @param status * The status of one output in a job. If you specified only one * output for the job, Outputs:Status is always the same * as Job:Status. If you specified more than one output: *
    *
  • Job:Status and Outputs:Status for * all of the outputs is Submitted until Elastic Transcoder starts to * process the first output.
  • *
  • When Elastic Transcoder starts to process the first output, * Outputs:Status for that output and * Job:Status both change to Progressing. For each * output, the value of Outputs:Status remains Submitted * until Elastic Transcoder starts to process the output.
  • *
  • Job:Status remains Progressing until all of the outputs reach * a terminal status, either Complete or Error.
  • *
  • When all of the outputs reach a terminal status, * Job:Status changes to Complete only if * Outputs:Status for all of the outputs is * Complete. If Outputs:Status for one or * more outputs is Error, the terminal status for * Job:Status is also Error.
  • *
* The value of Status is one of the following: * Submitted, Progressing, * Complete, Canceled, or * Error. */ public void setStatus(String status) { this.status = status; } /** *

* The status of one output in a job. If you specified only one output for * the job, Outputs:Status is always the same as * Job:Status. If you specified more than one output: *

    *
  • Job:Status and Outputs:Status for all of * the outputs is Submitted until Elastic Transcoder starts to process the * first output.
  • *
  • When Elastic Transcoder starts to process the first output, * Outputs:Status for that output and Job:Status * both change to Progressing. For each output, the value of * Outputs:Status remains Submitted until Elastic Transcoder * starts to process the output.
  • *
  • Job:Status remains Progressing until all of the outputs reach a * terminal status, either Complete or Error.
  • *
  • When all of the outputs reach a terminal status, * Job:Status changes to Complete only if * Outputs:Status for all of the outputs is * Complete. If Outputs:Status for one or more * outputs is Error, the terminal status for * Job:Status is also Error.
  • *
* The value of Status is one of the following: * Submitted, Progressing, Complete, * Canceled, or Error. *

* * @return The status of one output in a job. If you specified only one * output for the job, Outputs:Status is always the * same as Job:Status. If you specified more than one * output: *
    *
  • Job:Status and Outputs:Status for * all of the outputs is Submitted until Elastic Transcoder starts * to process the first output.
  • *
  • When Elastic Transcoder starts to process the first output, * Outputs:Status for that output and * Job:Status both change to Progressing. For each * output, the value of Outputs:Status remains * Submitted until Elastic Transcoder starts to process the output.
  • *
  • Job:Status remains Progressing until all of the outputs reach * a terminal status, either Complete or Error.
  • *
  • When all of the outputs reach a terminal status, * Job:Status changes to Complete only if * Outputs:Status for all of the outputs is * Complete. If Outputs:Status for one or * more outputs is Error, the terminal status for * Job:Status is also Error.
  • *
* The value of Status is one of the following: * Submitted, Progressing, * Complete, Canceled, or * Error. */ public String getStatus() { return this.status; } /** *

* The status of one output in a job. If you specified only one output for * the job, Outputs:Status is always the same as * Job:Status. If you specified more than one output: *

    *
  • Job:Status and Outputs:Status for all of * the outputs is Submitted until Elastic Transcoder starts to process the * first output.
  • *
  • When Elastic Transcoder starts to process the first output, * Outputs:Status for that output and Job:Status * both change to Progressing. For each output, the value of * Outputs:Status remains Submitted until Elastic Transcoder * starts to process the output.
  • *
  • Job:Status remains Progressing until all of the outputs reach a * terminal status, either Complete or Error.
  • *
  • When all of the outputs reach a terminal status, * Job:Status changes to Complete only if * Outputs:Status for all of the outputs is * Complete. If Outputs:Status for one or more * outputs is Error, the terminal status for * Job:Status is also Error.
  • *
* The value of Status is one of the following: * Submitted, Progressing, Complete, * Canceled, or Error. *

* * @param status * The status of one output in a job. If you specified only one * output for the job, Outputs:Status is always the same * as Job:Status. If you specified more than one output: *
    *
  • Job:Status and Outputs:Status for * all of the outputs is Submitted until Elastic Transcoder starts to * process the first output.
  • *
  • When Elastic Transcoder starts to process the first output, * Outputs:Status for that output and * Job:Status both change to Progressing. For each * output, the value of Outputs:Status remains Submitted * until Elastic Transcoder starts to process the output.
  • *
  • Job:Status remains Progressing until all of the outputs reach * a terminal status, either Complete or Error.
  • *
  • When all of the outputs reach a terminal status, * Job:Status changes to Complete only if * Outputs:Status for all of the outputs is * Complete. If Outputs:Status for one or * more outputs is Error, the terminal status for * Job:Status is also Error.
  • *
* The value of Status is one of the following: * Submitted, Progressing, * Complete, Canceled, or * Error. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withStatus(String status) { setStatus(status); return this; } /** *

* Information that further explains Status. *

* * @param statusDetail * Information that further explains Status. */ public void setStatusDetail(String statusDetail) { this.statusDetail = statusDetail; } /** *

* Information that further explains Status. *

* * @return Information that further explains Status. */ public String getStatusDetail() { return this.statusDetail; } /** *

* Information that further explains Status. *

* * @param statusDetail * Information that further explains Status. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withStatusDetail(String statusDetail) { setStatusDetail(statusDetail); return this; } /** *

* Duration of the output file, in seconds. *

* * @param duration * Duration of the output file, in seconds. */ public void setDuration(Long duration) { this.duration = duration; } /** *

* Duration of the output file, in seconds. *

* * @return Duration of the output file, in seconds. */ public Long getDuration() { return this.duration; } /** *

* Duration of the output file, in seconds. *

* * @param duration * Duration of the output file, in seconds. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withDuration(Long duration) { setDuration(duration); return this; } /** *

* Specifies the width of the output file in pixels. *

* * @param width * Specifies the width of the output file in pixels. */ public void setWidth(Integer width) { this.width = width; } /** *

* Specifies the width of the output file in pixels. *

* * @return Specifies the width of the output file in pixels. */ public Integer getWidth() { return this.width; } /** *

* Specifies the width of the output file in pixels. *

* * @param width * Specifies the width of the output file in pixels. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withWidth(Integer width) { setWidth(width); return this; } /** *

* Height of the output file, in pixels. *

* * @param height * Height of the output file, in pixels. */ public void setHeight(Integer height) { this.height = height; } /** *

* Height of the output file, in pixels. *

* * @return Height of the output file, in pixels. */ public Integer getHeight() { return this.height; } /** *

* Height of the output file, in pixels. *

* * @param height * Height of the output file, in pixels. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withHeight(Integer height) { setHeight(height); return this; } /** *

* Frame rate of the output file, in frames per second. *

* * @param frameRate * Frame rate of the output file, in frames per second. */ public void setFrameRate(String frameRate) { this.frameRate = frameRate; } /** *

* Frame rate of the output file, in frames per second. *

* * @return Frame rate of the output file, in frames per second. */ public String getFrameRate() { return this.frameRate; } /** *

* Frame rate of the output file, in frames per second. *

* * @param frameRate * Frame rate of the output file, in frames per second. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withFrameRate(String frameRate) { setFrameRate(frameRate); return this; } /** *

* File size of the output file, in bytes. *

* * @param fileSize * File size of the output file, in bytes. */ public void setFileSize(Long fileSize) { this.fileSize = fileSize; } /** *

* File size of the output file, in bytes. *

* * @return File size of the output file, in bytes. */ public Long getFileSize() { return this.fileSize; } /** *

* File size of the output file, in bytes. *

* * @param fileSize * File size of the output file, in bytes. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withFileSize(Long fileSize) { setFileSize(fileSize); return this; } /** *

* Duration of the output file, in milliseconds. *

* * @param durationMillis * Duration of the output file, in milliseconds. */ public void setDurationMillis(Long durationMillis) { this.durationMillis = durationMillis; } /** *

* Duration of the output file, in milliseconds. *

* * @return Duration of the output file, in milliseconds. */ public Long getDurationMillis() { return this.durationMillis; } /** *

* Duration of the output file, in milliseconds. *

* * @param durationMillis * Duration of the output file, in milliseconds. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withDurationMillis(Long durationMillis) { setDurationMillis(durationMillis); return this; } /** *

* Information about the watermarks that you want Elastic Transcoder to add * to the video during transcoding. You can specify up to four watermarks * for each output. Settings for each watermark must be defined in the * preset that you specify in Preset for the current output. *

*

* Watermarks are added to the output video in the sequence in which you * list them in the job output—the first watermark in the list is * added to the output video first, the second watermark in the list is * added next, and so on. As a result, if the settings in a preset cause * Elastic Transcoder to place all watermarks in the same location, the * second watermark that you add will cover the first one, the third one * will cover the second, and the fourth one will cover the third. *

* * @return Information about the watermarks that you want Elastic Transcoder * to add to the video during transcoding. You can specify up to * four watermarks for each output. Settings for each watermark must * be defined in the preset that you specify in Preset * for the current output.

*

* Watermarks are added to the output video in the sequence in which * you list them in the job output—the first watermark in the * list is added to the output video first, the second watermark in * the list is added next, and so on. As a result, if the settings * in a preset cause Elastic Transcoder to place all watermarks in * the same location, the second watermark that you add will cover * the first one, the third one will cover the second, and the * fourth one will cover the third. */ public java.util.List getWatermarks() { if (watermarks == null) { watermarks = new com.amazonaws.internal.SdkInternalList(); } return watermarks; } /** *

* Information about the watermarks that you want Elastic Transcoder to add * to the video during transcoding. You can specify up to four watermarks * for each output. Settings for each watermark must be defined in the * preset that you specify in Preset for the current output. *

*

* Watermarks are added to the output video in the sequence in which you * list them in the job output—the first watermark in the list is * added to the output video first, the second watermark in the list is * added next, and so on. As a result, if the settings in a preset cause * Elastic Transcoder to place all watermarks in the same location, the * second watermark that you add will cover the first one, the third one * will cover the second, and the fourth one will cover the third. *

* * @param watermarks * Information about the watermarks that you want Elastic Transcoder * to add to the video during transcoding. You can specify up to four * watermarks for each output. Settings for each watermark must be * defined in the preset that you specify in Preset for * the current output.

*

* Watermarks are added to the output video in the sequence in which * you list them in the job output—the first watermark in the * list is added to the output video first, the second watermark in * the list is added next, and so on. As a result, if the settings in * a preset cause Elastic Transcoder to place all watermarks in the * same location, the second watermark that you add will cover the * first one, the third one will cover the second, and the fourth one * will cover the third. */ public void setWatermarks(java.util.Collection watermarks) { if (watermarks == null) { this.watermarks = null; return; } this.watermarks = new com.amazonaws.internal.SdkInternalList( watermarks); } /** *

* Information about the watermarks that you want Elastic Transcoder to add * to the video during transcoding. You can specify up to four watermarks * for each output. Settings for each watermark must be defined in the * preset that you specify in Preset for the current output. *

*

* Watermarks are added to the output video in the sequence in which you * list them in the job output—the first watermark in the list is * added to the output video first, the second watermark in the list is * added next, and so on. As a result, if the settings in a preset cause * Elastic Transcoder to place all watermarks in the same location, the * second watermark that you add will cover the first one, the third one * will cover the second, and the fourth one will cover the third. *

*

* NOTE: This method appends the values to the existing list (if * any). Use {@link #setWatermarks(java.util.Collection)} or * {@link #withWatermarks(java.util.Collection)} if you want to override the * existing values. *

* * @param watermarks * Information about the watermarks that you want Elastic Transcoder * to add to the video during transcoding. You can specify up to four * watermarks for each output. Settings for each watermark must be * defined in the preset that you specify in Preset for * the current output.

*

* Watermarks are added to the output video in the sequence in which * you list them in the job output—the first watermark in the * list is added to the output video first, the second watermark in * the list is added next, and so on. As a result, if the settings in * a preset cause Elastic Transcoder to place all watermarks in the * same location, the second watermark that you add will cover the * first one, the third one will cover the second, and the fourth one * will cover the third. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withWatermarks(JobWatermark... watermarks) { if (this.watermarks == null) { setWatermarks(new com.amazonaws.internal.SdkInternalList( watermarks.length)); } for (JobWatermark ele : watermarks) { this.watermarks.add(ele); } return this; } /** *

* Information about the watermarks that you want Elastic Transcoder to add * to the video during transcoding. You can specify up to four watermarks * for each output. Settings for each watermark must be defined in the * preset that you specify in Preset for the current output. *

*

* Watermarks are added to the output video in the sequence in which you * list them in the job output—the first watermark in the list is * added to the output video first, the second watermark in the list is * added next, and so on. As a result, if the settings in a preset cause * Elastic Transcoder to place all watermarks in the same location, the * second watermark that you add will cover the first one, the third one * will cover the second, and the fourth one will cover the third. *

* * @param watermarks * Information about the watermarks that you want Elastic Transcoder * to add to the video during transcoding. You can specify up to four * watermarks for each output. Settings for each watermark must be * defined in the preset that you specify in Preset for * the current output.

*

* Watermarks are added to the output video in the sequence in which * you list them in the job output—the first watermark in the * list is added to the output video first, the second watermark in * the list is added next, and so on. As a result, if the settings in * a preset cause Elastic Transcoder to place all watermarks in the * same location, the second watermark that you add will cover the * first one, the third one will cover the second, and the fourth one * will cover the third. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withWatermarks( java.util.Collection watermarks) { setWatermarks(watermarks); return this; } /** *

* The album art to be associated with the output file, if any. *

* * @param albumArt * The album art to be associated with the output file, if any. */ public void setAlbumArt(JobAlbumArt albumArt) { this.albumArt = albumArt; } /** *

* The album art to be associated with the output file, if any. *

* * @return The album art to be associated with the output file, if any. */ public JobAlbumArt getAlbumArt() { return this.albumArt; } /** *

* The album art to be associated with the output file, if any. *

* * @param albumArt * The album art to be associated with the output file, if any. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withAlbumArt(JobAlbumArt albumArt) { setAlbumArt(albumArt); return this; } /** *

* You can create an output file that contains an excerpt from the input * file. This excerpt, called a clip, can come from the beginning, middle, * or end of the file. The Composition object contains settings for the * clips that make up an output file. For the current release, you can only * specify settings for a single clip per output file. The Composition * object cannot be null. *

* * @return You can create an output file that contains an excerpt from the * input file. This excerpt, called a clip, can come from the * beginning, middle, or end of the file. The Composition object * contains settings for the clips that make up an output file. For * the current release, you can only specify settings for a single * clip per output file. The Composition object cannot be null. */ public java.util.List getComposition() { if (composition == null) { composition = new com.amazonaws.internal.SdkInternalList(); } return composition; } /** *

* You can create an output file that contains an excerpt from the input * file. This excerpt, called a clip, can come from the beginning, middle, * or end of the file. The Composition object contains settings for the * clips that make up an output file. For the current release, you can only * specify settings for a single clip per output file. The Composition * object cannot be null. *

* * @param composition * You can create an output file that contains an excerpt from the * input file. This excerpt, called a clip, can come from the * beginning, middle, or end of the file. The Composition object * contains settings for the clips that make up an output file. For * the current release, you can only specify settings for a single * clip per output file. The Composition object cannot be null. */ public void setComposition(java.util.Collection composition) { if (composition == null) { this.composition = null; return; } this.composition = new com.amazonaws.internal.SdkInternalList( composition); } /** *

* You can create an output file that contains an excerpt from the input * file. This excerpt, called a clip, can come from the beginning, middle, * or end of the file. The Composition object contains settings for the * clips that make up an output file. For the current release, you can only * specify settings for a single clip per output file. The Composition * object cannot be null. *

*

* NOTE: This method appends the values to the existing list (if * any). Use {@link #setComposition(java.util.Collection)} or * {@link #withComposition(java.util.Collection)} if you want to override * the existing values. *

* * @param composition * You can create an output file that contains an excerpt from the * input file. This excerpt, called a clip, can come from the * beginning, middle, or end of the file. The Composition object * contains settings for the clips that make up an output file. For * the current release, you can only specify settings for a single * clip per output file. The Composition object cannot be null. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withComposition(Clip... composition) { if (this.composition == null) { setComposition(new com.amazonaws.internal.SdkInternalList( composition.length)); } for (Clip ele : composition) { this.composition.add(ele); } return this; } /** *

* You can create an output file that contains an excerpt from the input * file. This excerpt, called a clip, can come from the beginning, middle, * or end of the file. The Composition object contains settings for the * clips that make up an output file. For the current release, you can only * specify settings for a single clip per output file. The Composition * object cannot be null. *

* * @param composition * You can create an output file that contains an excerpt from the * input file. This excerpt, called a clip, can come from the * beginning, middle, or end of the file. The Composition object * contains settings for the clips that make up an output file. For * the current release, you can only specify settings for a single * clip per output file. The Composition object cannot be null. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withComposition(java.util.Collection composition) { setComposition(composition); return this; } /** *

* You can configure Elastic Transcoder to transcode captions, or subtitles, * from one format to another. All captions must be in UTF-8. Elastic * Transcoder supports two types of captions: *

*
    *
  • *

    * Embedded: Embedded captions are included in the same file as the * audio and video. Elastic Transcoder supports only one embedded caption * per language, to a maximum of 300 embedded captions per file. *

    *

    * Valid input values include: CEA-608 (EIA-608, first * non-empty channel only), CEA-708 (EIA-708, first non-empty * channel only), and mov-text *

    *

    * Valid outputs include: mov-text *

    *

    * Elastic Transcoder supports a maximum of one embedded format per output. *

    *
  • *
  • *

    * Sidecar: Sidecar captions are kept in a separate metadata file * from the audio and video data. Sidecar captions require a player that is * capable of understanding the relationship between the video file and the * sidecar file. Elastic Transcoder supports only one sidecar caption per * language, to a maximum of 20 sidecar captions per file. *

    *

    * Valid input values include: dfxp (first div element only), * ebu-tt, scc, smpt, * srt, ttml (first div element only), and * webvtt *

    *

    * Valid outputs include: dfxp (first div element only), * scc, srt, and webvtt. *

    *
  • *
*

* If you want ttml or smpte-tt compatible captions, specify dfxp as your * output format. *

*

* Elastic Transcoder does not support OCR (Optical Character Recognition), * does not accept pictures as a valid input for captions, and is not * available for audio-only transcoding. Elastic Transcoder does not * preserve text formatting (for example, italics) during the transcoding * process. *

*

* To remove captions or leave the captions empty, set Captions * to null. To pass through existing captions unchanged, set the * MergePolicy to MergeRetain, and pass in a null * CaptionSources array. *

*

* For more information on embedded files, see the Subtitles Wikipedia page. *

*

* For more information on sidecar files, see the Extensible Metadata * Platform and Sidecar file Wikipedia pages. *

* * @param captions * You can configure Elastic Transcoder to transcode captions, or * subtitles, from one format to another. All captions must be in * UTF-8. Elastic Transcoder supports two types of captions:

*
    *
  • *

    * Embedded: Embedded captions are included in the same file * as the audio and video. Elastic Transcoder supports only one * embedded caption per language, to a maximum of 300 embedded * captions per file. *

    *

    * Valid input values include: CEA-608 (EIA-608, first * non-empty channel only), CEA-708 (EIA-708, first * non-empty channel only), and mov-text *

    *

    * Valid outputs include: mov-text *

    *

    * Elastic Transcoder supports a maximum of one embedded format per * output. *

    *
  • *
  • *

    * Sidecar: Sidecar captions are kept in a separate metadata * file from the audio and video data. Sidecar captions require a * player that is capable of understanding the relationship between * the video file and the sidecar file. Elastic Transcoder supports * only one sidecar caption per language, to a maximum of 20 sidecar * captions per file. *

    *

    * Valid input values include: dfxp (first div element * only), ebu-tt, scc, smpt, * srt, ttml (first div element only), and * webvtt *

    *

    * Valid outputs include: dfxp (first div element only), * scc, srt, and webvtt. *

    *
  • *
*

* If you want ttml or smpte-tt compatible captions, specify dfxp as * your output format. *

*

* Elastic Transcoder does not support OCR (Optical Character * Recognition), does not accept pictures as a valid input for * captions, and is not available for audio-only transcoding. Elastic * Transcoder does not preserve text formatting (for example, * italics) during the transcoding process. *

*

* To remove captions or leave the captions empty, set * Captions to null. To pass through existing captions * unchanged, set the MergePolicy to * MergeRetain, and pass in a null * CaptionSources array. *

*

* For more information on embedded files, see the Subtitles * Wikipedia page. *

*

* For more information on sidecar files, see the Extensible Metadata * Platform and Sidecar file Wikipedia pages. */ public void setCaptions(Captions captions) { this.captions = captions; } /** *

* You can configure Elastic Transcoder to transcode captions, or subtitles, * from one format to another. All captions must be in UTF-8. Elastic * Transcoder supports two types of captions: *

*
    *
  • *

    * Embedded: Embedded captions are included in the same file as the * audio and video. Elastic Transcoder supports only one embedded caption * per language, to a maximum of 300 embedded captions per file. *

    *

    * Valid input values include: CEA-608 (EIA-608, first * non-empty channel only), CEA-708 (EIA-708, first non-empty * channel only), and mov-text *

    *

    * Valid outputs include: mov-text *

    *

    * Elastic Transcoder supports a maximum of one embedded format per output. *

    *
  • *
  • *

    * Sidecar: Sidecar captions are kept in a separate metadata file * from the audio and video data. Sidecar captions require a player that is * capable of understanding the relationship between the video file and the * sidecar file. Elastic Transcoder supports only one sidecar caption per * language, to a maximum of 20 sidecar captions per file. *

    *

    * Valid input values include: dfxp (first div element only), * ebu-tt, scc, smpt, * srt, ttml (first div element only), and * webvtt *

    *

    * Valid outputs include: dfxp (first div element only), * scc, srt, and webvtt. *

    *
  • *
*

* If you want ttml or smpte-tt compatible captions, specify dfxp as your * output format. *

*

* Elastic Transcoder does not support OCR (Optical Character Recognition), * does not accept pictures as a valid input for captions, and is not * available for audio-only transcoding. Elastic Transcoder does not * preserve text formatting (for example, italics) during the transcoding * process. *

*

* To remove captions or leave the captions empty, set Captions * to null. To pass through existing captions unchanged, set the * MergePolicy to MergeRetain, and pass in a null * CaptionSources array. *

*

* For more information on embedded files, see the Subtitles Wikipedia page. *

*

* For more information on sidecar files, see the Extensible Metadata * Platform and Sidecar file Wikipedia pages. *

* * @return You can configure Elastic Transcoder to transcode captions, or * subtitles, from one format to another. All captions must be in * UTF-8. Elastic Transcoder supports two types of captions:

*
    *
  • *

    * Embedded: Embedded captions are included in the same file * as the audio and video. Elastic Transcoder supports only one * embedded caption per language, to a maximum of 300 embedded * captions per file. *

    *

    * Valid input values include: CEA-608 (EIA-608, first * non-empty channel only), CEA-708 (EIA-708, first * non-empty channel only), and mov-text *

    *

    * Valid outputs include: mov-text *

    *

    * Elastic Transcoder supports a maximum of one embedded format per * output. *

    *
  • *
  • *

    * Sidecar: Sidecar captions are kept in a separate metadata * file from the audio and video data. Sidecar captions require a * player that is capable of understanding the relationship between * the video file and the sidecar file. Elastic Transcoder supports * only one sidecar caption per language, to a maximum of 20 sidecar * captions per file. *

    *

    * Valid input values include: dfxp (first div element * only), ebu-tt, scc, smpt, * srt, ttml (first div element only), and * webvtt *

    *

    * Valid outputs include: dfxp (first div element * only), scc, srt, and * webvtt. *

    *
  • *
*

* If you want ttml or smpte-tt compatible captions, specify dfxp as * your output format. *

*

* Elastic Transcoder does not support OCR (Optical Character * Recognition), does not accept pictures as a valid input for * captions, and is not available for audio-only transcoding. * Elastic Transcoder does not preserve text formatting (for * example, italics) during the transcoding process. *

*

* To remove captions or leave the captions empty, set * Captions to null. To pass through existing captions * unchanged, set the MergePolicy to * MergeRetain, and pass in a null * CaptionSources array. *

*

* For more information on embedded files, see the Subtitles * Wikipedia page. *

*

* For more information on sidecar files, see the Extensible * Metadata Platform and Sidecar file Wikipedia pages. */ public Captions getCaptions() { return this.captions; } /** *

* You can configure Elastic Transcoder to transcode captions, or subtitles, * from one format to another. All captions must be in UTF-8. Elastic * Transcoder supports two types of captions: *

*
    *
  • *

    * Embedded: Embedded captions are included in the same file as the * audio and video. Elastic Transcoder supports only one embedded caption * per language, to a maximum of 300 embedded captions per file. *

    *

    * Valid input values include: CEA-608 (EIA-608, first * non-empty channel only), CEA-708 (EIA-708, first non-empty * channel only), and mov-text *

    *

    * Valid outputs include: mov-text *

    *

    * Elastic Transcoder supports a maximum of one embedded format per output. *

    *
  • *
  • *

    * Sidecar: Sidecar captions are kept in a separate metadata file * from the audio and video data. Sidecar captions require a player that is * capable of understanding the relationship between the video file and the * sidecar file. Elastic Transcoder supports only one sidecar caption per * language, to a maximum of 20 sidecar captions per file. *

    *

    * Valid input values include: dfxp (first div element only), * ebu-tt, scc, smpt, * srt, ttml (first div element only), and * webvtt *

    *

    * Valid outputs include: dfxp (first div element only), * scc, srt, and webvtt. *

    *
  • *
*

* If you want ttml or smpte-tt compatible captions, specify dfxp as your * output format. *

*

* Elastic Transcoder does not support OCR (Optical Character Recognition), * does not accept pictures as a valid input for captions, and is not * available for audio-only transcoding. Elastic Transcoder does not * preserve text formatting (for example, italics) during the transcoding * process. *

*

* To remove captions or leave the captions empty, set Captions * to null. To pass through existing captions unchanged, set the * MergePolicy to MergeRetain, and pass in a null * CaptionSources array. *

*

* For more information on embedded files, see the Subtitles Wikipedia page. *

*

* For more information on sidecar files, see the Extensible Metadata * Platform and Sidecar file Wikipedia pages. *

* * @param captions * You can configure Elastic Transcoder to transcode captions, or * subtitles, from one format to another. All captions must be in * UTF-8. Elastic Transcoder supports two types of captions:

*
    *
  • *

    * Embedded: Embedded captions are included in the same file * as the audio and video. Elastic Transcoder supports only one * embedded caption per language, to a maximum of 300 embedded * captions per file. *

    *

    * Valid input values include: CEA-608 (EIA-608, first * non-empty channel only), CEA-708 (EIA-708, first * non-empty channel only), and mov-text *

    *

    * Valid outputs include: mov-text *

    *

    * Elastic Transcoder supports a maximum of one embedded format per * output. *

    *
  • *
  • *

    * Sidecar: Sidecar captions are kept in a separate metadata * file from the audio and video data. Sidecar captions require a * player that is capable of understanding the relationship between * the video file and the sidecar file. Elastic Transcoder supports * only one sidecar caption per language, to a maximum of 20 sidecar * captions per file. *

    *

    * Valid input values include: dfxp (first div element * only), ebu-tt, scc, smpt, * srt, ttml (first div element only), and * webvtt *

    *

    * Valid outputs include: dfxp (first div element only), * scc, srt, and webvtt. *

    *
  • *
*

* If you want ttml or smpte-tt compatible captions, specify dfxp as * your output format. *

*

* Elastic Transcoder does not support OCR (Optical Character * Recognition), does not accept pictures as a valid input for * captions, and is not available for audio-only transcoding. Elastic * Transcoder does not preserve text formatting (for example, * italics) during the transcoding process. *

*

* To remove captions or leave the captions empty, set * Captions to null. To pass through existing captions * unchanged, set the MergePolicy to * MergeRetain, and pass in a null * CaptionSources array. *

*

* For more information on embedded files, see the Subtitles * Wikipedia page. *

*

* For more information on sidecar files, see the Extensible Metadata * Platform and Sidecar file Wikipedia pages. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withCaptions(Captions captions) { setCaptions(captions); return this; } /** *

* The encryption settings, if any, that you want Elastic Transcoder to * apply to your output files. If you choose to use encryption, you must * specify a mode to use. If you choose not to use encryption, Elastic * Transcoder will write an unencrypted file to your Amazon S3 bucket. *

* * @param encryption * The encryption settings, if any, that you want Elastic Transcoder * to apply to your output files. If you choose to use encryption, * you must specify a mode to use. If you choose not to use * encryption, Elastic Transcoder will write an unencrypted file to * your Amazon S3 bucket. */ public void setEncryption(Encryption encryption) { this.encryption = encryption; } /** *

* The encryption settings, if any, that you want Elastic Transcoder to * apply to your output files. If you choose to use encryption, you must * specify a mode to use. If you choose not to use encryption, Elastic * Transcoder will write an unencrypted file to your Amazon S3 bucket. *

* * @return The encryption settings, if any, that you want Elastic Transcoder * to apply to your output files. If you choose to use encryption, * you must specify a mode to use. If you choose not to use * encryption, Elastic Transcoder will write an unencrypted file to * your Amazon S3 bucket. */ public Encryption getEncryption() { return this.encryption; } /** *

* The encryption settings, if any, that you want Elastic Transcoder to * apply to your output files. If you choose to use encryption, you must * specify a mode to use. If you choose not to use encryption, Elastic * Transcoder will write an unencrypted file to your Amazon S3 bucket. *

* * @param encryption * The encryption settings, if any, that you want Elastic Transcoder * to apply to your output files. If you choose to use encryption, * you must specify a mode to use. If you choose not to use * encryption, Elastic Transcoder will write an unencrypted file to * your Amazon S3 bucket. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withEncryption(Encryption encryption) { setEncryption(encryption); return this; } /** *

* If Elastic Transcoder used a preset with a * ColorSpaceConversionMode to transcode the output file, the * AppliedColorSpaceConversion parameter shows the conversion * used. If no ColorSpaceConversionMode was defined in the * preset, this parameter will not be included in the job response. *

* * @param appliedColorSpaceConversion * If Elastic Transcoder used a preset with a * ColorSpaceConversionMode to transcode the output * file, the AppliedColorSpaceConversion parameter shows * the conversion used. If no ColorSpaceConversionMode * was defined in the preset, this parameter will not be included in * the job response. */ public void setAppliedColorSpaceConversion( String appliedColorSpaceConversion) { this.appliedColorSpaceConversion = appliedColorSpaceConversion; } /** *

* If Elastic Transcoder used a preset with a * ColorSpaceConversionMode to transcode the output file, the * AppliedColorSpaceConversion parameter shows the conversion * used. If no ColorSpaceConversionMode was defined in the * preset, this parameter will not be included in the job response. *

* * @return If Elastic Transcoder used a preset with a * ColorSpaceConversionMode to transcode the output * file, the AppliedColorSpaceConversion parameter * shows the conversion used. If no * ColorSpaceConversionMode was defined in the preset, * this parameter will not be included in the job response. */ public String getAppliedColorSpaceConversion() { return this.appliedColorSpaceConversion; } /** *

* If Elastic Transcoder used a preset with a * ColorSpaceConversionMode to transcode the output file, the * AppliedColorSpaceConversion parameter shows the conversion * used. If no ColorSpaceConversionMode was defined in the * preset, this parameter will not be included in the job response. *

* * @param appliedColorSpaceConversion * If Elastic Transcoder used a preset with a * ColorSpaceConversionMode to transcode the output * file, the AppliedColorSpaceConversion parameter shows * the conversion used. If no ColorSpaceConversionMode * was defined in the preset, this parameter will not be included in * the job response. * @return Returns a reference to this object so that method calls can be * chained together. */ public JobOutput withAppliedColorSpaceConversion( String appliedColorSpaceConversion) { setAppliedColorSpaceConversion(appliedColorSpaceConversion); return this; } /** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getId() != null) sb.append("Id: " + getId() + ","); if (getKey() != null) sb.append("Key: " + getKey() + ","); if (getThumbnailPattern() != null) sb.append("ThumbnailPattern: " + getThumbnailPattern() + ","); if (getThumbnailEncryption() != null) sb.append("ThumbnailEncryption: " + getThumbnailEncryption() + ","); if (getRotate() != null) sb.append("Rotate: " + getRotate() + ","); if (getPresetId() != null) sb.append("PresetId: " + getPresetId() + ","); if (getSegmentDuration() != null) sb.append("SegmentDuration: " + getSegmentDuration() + ","); if (getStatus() != null) sb.append("Status: " + getStatus() + ","); if (getStatusDetail() != null) sb.append("StatusDetail: " + getStatusDetail() + ","); if (getDuration() != null) sb.append("Duration: " + getDuration() + ","); if (getWidth() != null) sb.append("Width: " + getWidth() + ","); if (getHeight() != null) sb.append("Height: " + getHeight() + ","); if (getFrameRate() != null) sb.append("FrameRate: " + getFrameRate() + ","); if (getFileSize() != null) sb.append("FileSize: " + getFileSize() + ","); if (getDurationMillis() != null) sb.append("DurationMillis: " + getDurationMillis() + ","); if (getWatermarks() != null) sb.append("Watermarks: " + getWatermarks() + ","); if (getAlbumArt() != null) sb.append("AlbumArt: " + getAlbumArt() + ","); if (getComposition() != null) sb.append("Composition: " + getComposition() + ","); if (getCaptions() != null) sb.append("Captions: " + getCaptions() + ","); if (getEncryption() != null) sb.append("Encryption: " + getEncryption() + ","); if (getAppliedColorSpaceConversion() != null) sb.append("AppliedColorSpaceConversion: " + getAppliedColorSpaceConversion()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof JobOutput == false) return false; JobOutput other = (JobOutput) obj; if (other.getId() == null ^ this.getId() == null) return false; if (other.getId() != null && other.getId().equals(this.getId()) == false) return false; if (other.getKey() == null ^ this.getKey() == null) return false; if (other.getKey() != null && other.getKey().equals(this.getKey()) == false) return false; if (other.getThumbnailPattern() == null ^ this.getThumbnailPattern() == null) return false; if (other.getThumbnailPattern() != null && other.getThumbnailPattern().equals( this.getThumbnailPattern()) == false) return false; if (other.getThumbnailEncryption() == null ^ this.getThumbnailEncryption() == null) return false; if (other.getThumbnailEncryption() != null && other.getThumbnailEncryption().equals( this.getThumbnailEncryption()) == false) return false; if (other.getRotate() == null ^ this.getRotate() == null) return false; if (other.getRotate() != null && other.getRotate().equals(this.getRotate()) == false) return false; if (other.getPresetId() == null ^ this.getPresetId() == null) return false; if (other.getPresetId() != null && other.getPresetId().equals(this.getPresetId()) == false) return false; if (other.getSegmentDuration() == null ^ this.getSegmentDuration() == null) return false; if (other.getSegmentDuration() != null && other.getSegmentDuration().equals(this.getSegmentDuration()) == false) return false; if (other.getStatus() == null ^ this.getStatus() == null) return false; if (other.getStatus() != null && other.getStatus().equals(this.getStatus()) == false) return false; if (other.getStatusDetail() == null ^ this.getStatusDetail() == null) return false; if (other.getStatusDetail() != null && other.getStatusDetail().equals(this.getStatusDetail()) == false) return false; if (other.getDuration() == null ^ this.getDuration() == null) return false; if (other.getDuration() != null && other.getDuration().equals(this.getDuration()) == false) return false; if (other.getWidth() == null ^ this.getWidth() == null) return false; if (other.getWidth() != null && other.getWidth().equals(this.getWidth()) == false) return false; if (other.getHeight() == null ^ this.getHeight() == null) return false; if (other.getHeight() != null && other.getHeight().equals(this.getHeight()) == false) return false; if (other.getFrameRate() == null ^ this.getFrameRate() == null) return false; if (other.getFrameRate() != null && other.getFrameRate().equals(this.getFrameRate()) == false) return false; if (other.getFileSize() == null ^ this.getFileSize() == null) return false; if (other.getFileSize() != null && other.getFileSize().equals(this.getFileSize()) == false) return false; if (other.getDurationMillis() == null ^ this.getDurationMillis() == null) return false; if (other.getDurationMillis() != null && other.getDurationMillis().equals(this.getDurationMillis()) == false) return false; if (other.getWatermarks() == null ^ this.getWatermarks() == null) return false; if (other.getWatermarks() != null && other.getWatermarks().equals(this.getWatermarks()) == false) return false; if (other.getAlbumArt() == null ^ this.getAlbumArt() == null) return false; if (other.getAlbumArt() != null && other.getAlbumArt().equals(this.getAlbumArt()) == false) return false; if (other.getComposition() == null ^ this.getComposition() == null) return false; if (other.getComposition() != null && other.getComposition().equals(this.getComposition()) == false) return false; if (other.getCaptions() == null ^ this.getCaptions() == null) return false; if (other.getCaptions() != null && other.getCaptions().equals(this.getCaptions()) == false) return false; if (other.getEncryption() == null ^ this.getEncryption() == null) return false; if (other.getEncryption() != null && other.getEncryption().equals(this.getEncryption()) == false) return false; if (other.getAppliedColorSpaceConversion() == null ^ this.getAppliedColorSpaceConversion() == null) return false; if (other.getAppliedColorSpaceConversion() != null && other.getAppliedColorSpaceConversion().equals( this.getAppliedColorSpaceConversion()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getId() == null) ? 0 : getId().hashCode()); hashCode = prime * hashCode + ((getKey() == null) ? 0 : getKey().hashCode()); hashCode = prime * hashCode + ((getThumbnailPattern() == null) ? 0 : getThumbnailPattern() .hashCode()); hashCode = prime * hashCode + ((getThumbnailEncryption() == null) ? 0 : getThumbnailEncryption().hashCode()); hashCode = prime * hashCode + ((getRotate() == null) ? 0 : getRotate().hashCode()); hashCode = prime * hashCode + ((getPresetId() == null) ? 0 : getPresetId().hashCode()); hashCode = prime * hashCode + ((getSegmentDuration() == null) ? 0 : getSegmentDuration() .hashCode()); hashCode = prime * hashCode + ((getStatus() == null) ? 0 : getStatus().hashCode()); hashCode = prime * hashCode + ((getStatusDetail() == null) ? 0 : getStatusDetail() .hashCode()); hashCode = prime * hashCode + ((getDuration() == null) ? 0 : getDuration().hashCode()); hashCode = prime * hashCode + ((getWidth() == null) ? 0 : getWidth().hashCode()); hashCode = prime * hashCode + ((getHeight() == null) ? 0 : getHeight().hashCode()); hashCode = prime * hashCode + ((getFrameRate() == null) ? 0 : getFrameRate().hashCode()); hashCode = prime * hashCode + ((getFileSize() == null) ? 0 : getFileSize().hashCode()); hashCode = prime * hashCode + ((getDurationMillis() == null) ? 0 : getDurationMillis() .hashCode()); hashCode = prime * hashCode + ((getWatermarks() == null) ? 0 : getWatermarks().hashCode()); hashCode = prime * hashCode + ((getAlbumArt() == null) ? 0 : getAlbumArt().hashCode()); hashCode = prime * hashCode + ((getComposition() == null) ? 0 : getComposition().hashCode()); hashCode = prime * hashCode + ((getCaptions() == null) ? 0 : getCaptions().hashCode()); hashCode = prime * hashCode + ((getEncryption() == null) ? 0 : getEncryption().hashCode()); hashCode = prime * hashCode + ((getAppliedColorSpaceConversion() == null) ? 0 : getAppliedColorSpaceConversion().hashCode()); return hashCode; } @Override public JobOutput clone() { try { return (JobOutput) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException( "Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } }