/*
* Copyright 2012-2017 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;
import javax.annotation.Generated;
import com.amazonaws.protocol.StructuredPojo;
import com.amazonaws.protocol.ProtocolMarshaller;
/**
* <p>
* The <code>VideoParameters</code> structure.
* </p>
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class VideoParameters implements Serializable, Cloneable, StructuredPojo {
/**
* <p>
* The video codec for the output file. Valid values include <code>gif</code>, <code>H.264</code>,
* <code>mpeg2</code>, <code>vp8</code>, and <code>vp9</code>. You can only specify <code>vp8</code> and
* <code>vp9</code> when the container type is <code>webm</code>, <code>gif</code> when the container type is
* <code>gif</code>, and <code>mpeg2</code> when the container type is <code>mpg</code>.
* </p>
*/
private String codec;
/**
* <p>
* <b>Profile (H.264/VP8/VP9 Only)</b>
* </p>
* <p>
* The H.264 profile that you want to use for the output file. Elastic Transcoder supports the following profiles:
* </p>
* <ul>
* <li>
* <p>
* <code>baseline</code>: The profile most commonly used for videoconferencing and for mobile applications.
* </p>
* </li>
* <li>
* <p>
* <code>main</code>: The profile used for standard-definition digital TV broadcasts.
* </p>
* </li>
* <li>
* <p>
* <code>high</code>: The profile used for high-definition digital TV broadcasts and for Blu-ray discs.
* </p>
* </li>
* </ul>
* <p>
* <b>Level (H.264 Only)</b>
* </p>
* <p>
* The H.264 level that you want to use for the output file. Elastic Transcoder supports the following levels:
* </p>
* <p>
* <code>1</code>, <code>1b</code>, <code>1.1</code>, <code>1.2</code>, <code>1.3</code>, <code>2</code>,
* <code>2.1</code>, <code>2.2</code>, <code>3</code>, <code>3.1</code>, <code>3.2</code>, <code>4</code>,
* <code>4.1</code>
* </p>
* <p>
* <b>MaxReferenceFrames (H.264 Only)</b>
* </p>
* <p>
* Applicable only when the value of Video:Codec is H.264. The maximum number of previously decoded frames to use as
* a reference for decoding future frames. Valid values are integers 0 through 16, but we recommend that you not use
* a value greater than the following:
* </p>
* <p>
* <code>Min(Floor(Maximum decoded picture buffer in macroblocks * 256 / (Width in pixels * Height in pixels)), 16)</code>
* </p>
* <p>
* where <i>Width in pixels</i> and <i>Height in pixels</i> represent either MaxWidth and MaxHeight, or Resolution.
* <i>Maximum decoded picture buffer in macroblocks</i> depends on the value of the <code>Level</code> object. See
* the list below. (A macroblock is a block of pixels measuring 16x16.)
* </p>
* <ul>
* <li>
* <p>
* 1 - 396
* </p>
* </li>
* <li>
* <p>
* 1b - 396
* </p>
* </li>
* <li>
* <p>
* 1.1 - 900
* </p>
* </li>
* <li>
* <p>
* 1.2 - 2376
* </p>
* </li>
* <li>
* <p>
* 1.3 - 2376
* </p>
* </li>
* <li>
* <p>
* 2 - 2376
* </p>
* </li>
* <li>
* <p>
* 2.1 - 4752
* </p>
* </li>
* <li>
* <p>
* 2.2 - 8100
* </p>
* </li>
* <li>
* <p>
* 3 - 8100
* </p>
* </li>
* <li>
* <p>
* 3.1 - 18000
* </p>
* </li>
* <li>
* <p>
* 3.2 - 20480
* </p>
* </li>
* <li>
* <p>
* 4 - 32768
* </p>
* </li>
* <li>
* <p>
* 4.1 - 32768
* </p>
* </li>
* </ul>
* <p>
* <b>MaxBitRate (Optional, H.264/MPEG2/VP8/VP9 only)</b>
* </p>
* <p>
* The maximum number of bits per second in a video buffer; the size of the buffer is specified by
* <code>BufferSize</code>. Specify a value between 16 and 62,500. You can reduce the bandwidth required to stream a
* video by reducing the maximum bit rate, but this also reduces the quality of the video.
* </p>
* <p>
* <b>BufferSize (Optional, H.264/MPEG2/VP8/VP9 only)</b>
* </p>
* <p>
* The maximum number of bits in any x seconds of the output video. This window is commonly 10 seconds, the standard
* segment duration when you're using FMP4 or MPEG-TS for the container type of the output video. Specify an integer
* greater than 0. If you specify <code>MaxBitRate</code> and omit <code>BufferSize</code>, Elastic Transcoder sets
* <code>BufferSize</code> to 10 times the value of <code>MaxBitRate</code>.
* </p>
* <p>
* <b>InterlacedMode (Optional, H.264/MPEG2 Only)</b>
* </p>
* <p>
* The interlace mode for the output video.
* </p>
* <p>
* Interlaced video is used to double the perceived frame rate for a video by interlacing two fields (one field on
* every other line, the other field on the other lines) so that the human eye registers multiple pictures per
* frame. Interlacing reduces the bandwidth required for transmitting a video, but can result in blurred images and
* flickering.
* </p>
* <p>
* Valid values include <code>Progressive</code> (no interlacing, top to bottom), <code>TopFirst</code> (top field
* first), <code>BottomFirst</code> (bottom field first), and <code>Auto</code>.
* </p>
* <p>
* If <code>InterlaceMode</code> is not specified, Elastic Transcoder uses <code>Progressive</code> for the output.
* If <code>Auto</code> is specified, Elastic Transcoder interlaces the output.
* </p>
* <p>
* <b>ColorSpaceConversionMode (Optional, H.264/MPEG2 Only)</b>
* </p>
* <p>
* The color space conversion Elastic Transcoder applies to the output video. Color spaces are the algorithms used
* by the computer to store information about how to render color. <code>Bt.601</code> is the standard for standard
* definition video, while <code>Bt.709</code> is the standard for high definition video.
* </p>
* <p>
* Valid values include <code>None</code>, <code>Bt709toBt601</code>, <code>Bt601toBt709</code>, and
* <code>Auto</code>.
* </p>
* <p>
* If you chose <code>Auto</code> for <code>ColorSpaceConversionMode</code> and your output is interlaced, your
* frame rate is one of <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>, <code>50</code>,
* or <code>60</code>, your <code>SegmentDuration</code> is null, and you are using one of the resolution changes
* from the list below, Elastic Transcoder applies the following color space conversions:
* </p>
* <ul>
* <li>
* <p>
* <i>Standard to HD, 720x480 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>
* </p>
* </li>
* <li>
* <p>
* <i>Standard to HD, 720x576 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>
* </p>
* </li>
* <li>
* <p>
* <i>HD to Standard, 1920x1080 to 720x480</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>
* </p>
* </li>
* <li>
* <p>
* <i>HD to Standard, 1920x1080 to 720x576</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>
* </p>
* </li>
* </ul>
* <note>
* <p>
* Elastic Transcoder may change the behavior of the <code>ColorspaceConversionMode</code> <code>Auto</code> mode in
* the future. All outputs in a playlist must use the same <code>ColorSpaceConversionMode</code>.
* </p>
* </note>
* <p>
* If you do not specify a <code>ColorSpaceConversionMode</code>, Elastic Transcoder does not change the color space
* of a file. If you are unsure what <code>ColorSpaceConversionMode</code> was applied to your output file, you can
* check the <code>AppliedColorSpaceConversion</code> parameter included in your job response. If your job does not
* have an <code>AppliedColorSpaceConversion</code> in its response, no <code>ColorSpaceConversionMode</code> was
* applied.
* </p>
* <p>
* <b>ChromaSubsampling</b>
* </p>
* <p>
* The sampling pattern for the chroma (color) channels of the output video. Valid values include
* <code>yuv420p</code> and <code>yuv422p</code>.
* </p>
* <p>
* <code>yuv420p</code> samples the chroma information of every other horizontal and every other vertical line,
* <code>yuv422p</code> samples the color information of every horizontal line and every other vertical line.
* </p>
* <p>
* <b>LoopCount (Gif Only)</b>
* </p>
* <p>
* The number of times you want the output gif to loop. Valid values include <code>Infinite</code> and integers
* between <code>0</code> and <code>100</code>, inclusive.
* </p>
*/
private com.amazonaws.internal.SdkInternalMap<String, String> codecOptions;
/**
* <p>
* Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or
* <code>VP8</code>.
* </p>
* <p>
* The maximum number of frames between key frames. Key frames are fully encoded frames; the frames between key
* frames are encoded based, in part, on the content of the key frames. The value is an integer formatted as a
* string; valid values are between 1 (every frame is a key frame) and 100000, inclusive. A higher value results in
* higher compression but may also discernibly decrease video quality.
* </p>
* <p>
* For <code>Smooth</code> outputs, the <code>FrameRate</code> must have a constant ratio to the
* <code>KeyframesMaxDist</code>. This allows <code>Smooth</code> playlists to switch between different quality
* levels while the file is being played.
* </p>
* <p>
* For example, an input file can have a <code>FrameRate</code> of 30 with a <code>KeyframesMaxDist</code> of 90.
* The output file then needs to have a ratio of 1:3. Valid outputs would have <code>FrameRate</code> of 30, 25, and
* 10, and <code>KeyframesMaxDist</code> of 90, 75, and 30, respectively.
* </p>
* <p>
* Alternately, this can be achieved by setting <code>FrameRate</code> to auto and having the same values for
* <code>MaxFrameRate</code> and <code>KeyframesMaxDist</code>.
* </p>
*/
private String keyframesMaxDist;
/**
* <p>
* Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or
* <code>VP8</code>.
* </p>
* <p>
* Whether to use a fixed value for <code>FixedGOP</code>. Valid values are <code>true</code> and <code>false</code>
* :
* </p>
* <ul>
* <li>
* <p>
* <code>true</code>: Elastic Transcoder uses the value of <code>KeyframesMaxDist</code> for the distance between
* key frames (the number of frames in a group of pictures, or GOP).
* </p>
* </li>
* <li>
* <p>
* <code>false</code>: The distance between key frames can vary.
* </p>
* </li>
* </ul>
* <important>
* <p>
* <code>FixedGOP</code> must be set to <code>true</code> for <code>fmp4</code> containers.
* </p>
* </important>
*/
private String fixedGOP;
/**
* <p>
* The bit rate of the video stream in the output file, in kilobits/second. Valid values depend on the values of
* <code>Level</code> and <code>Profile</code>. If you specify <code>auto</code>, Elastic Transcoder uses the
* detected bit rate of the input source. If you specify a value other than <code>auto</code>, we recommend that you
* specify a value less than or equal to the maximum H.264-compliant value listed for your level and profile:
* </p>
* <p>
* <i>Level - Maximum video bit rate in kilobits/second (baseline and main Profile) : maximum video bit rate in
* kilobits/second (high Profile)</i>
* </p>
* <ul>
* <li>
* <p>
* 1 - 64 : 80
* </p>
* </li>
* <li>
* <p>
* 1b - 128 : 160
* </p>
* </li>
* <li>
* <p>
* 1.1 - 192 : 240
* </p>
* </li>
* <li>
* <p>
* 1.2 - 384 : 480
* </p>
* </li>
* <li>
* <p>
* 1.3 - 768 : 960
* </p>
* </li>
* <li>
* <p>
* 2 - 2000 : 2500
* </p>
* </li>
* <li>
* <p>
* 3 - 10000 : 12500
* </p>
* </li>
* <li>
* <p>
* 3.1 - 14000 : 17500
* </p>
* </li>
* <li>
* <p>
* 3.2 - 20000 : 25000
* </p>
* </li>
* <li>
* <p>
* 4 - 20000 : 25000
* </p>
* </li>
* <li>
* <p>
* 4.1 - 50000 : 62500
* </p>
* </li>
* </ul>
*/
private String bitRate;
/**
* <p>
* The frames per second for the video stream in the output file. Valid values include:
* </p>
* <p>
* <code>auto</code>, <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>,
* <code>29.97</code>, <code>30</code>, <code>60</code>
* </p>
* <p>
* If you specify <code>auto</code>, Elastic Transcoder uses the detected frame rate of the input source. If you
* specify a frame rate, we recommend that you perform the following calculation:
* </p>
* <p>
* <code>Frame rate = maximum recommended decoding speed in luma samples/second / (width in pixels * height in pixels)</code>
* </p>
* <p>
* where:
* </p>
* <ul>
* <li>
* <p>
* <i>width in pixels</i> and <i>height in pixels</i> represent the Resolution of the output video.
* </p>
* </li>
* <li>
* <p>
* <i>maximum recommended decoding speed in Luma samples/second</i> is less than or equal to the maximum value
* listed in the following table, based on the value that you specified for Level.
* </p>
* </li>
* </ul>
* <p>
* The maximum recommended decoding speed in Luma samples/second for each level is described in the following list
* (<i>Level - Decoding speed</i>):
* </p>
* <ul>
* <li>
* <p>
* 1 - 380160
* </p>
* </li>
* <li>
* <p>
* 1b - 380160
* </p>
* </li>
* <li>
* <p>
* 1.1 - 76800
* </p>
* </li>
* <li>
* <p>
* 1.2 - 1536000
* </p>
* </li>
* <li>
* <p>
* 1.3 - 3041280
* </p>
* </li>
* <li>
* <p>
* 2 - 3041280
* </p>
* </li>
* <li>
* <p>
* 2.1 - 5068800
* </p>
* </li>
* <li>
* <p>
* 2.2 - 5184000
* </p>
* </li>
* <li>
* <p>
* 3 - 10368000
* </p>
* </li>
* <li>
* <p>
* 3.1 - 27648000
* </p>
* </li>
* <li>
* <p>
* 3.2 - 55296000
* </p>
* </li>
* <li>
* <p>
* 4 - 62914560
* </p>
* </li>
* <li>
* <p>
* 4.1 - 62914560
* </p>
* </li>
* </ul>
*/
private String frameRate;
/**
* <p>
* If you specify <code>auto</code> for <code>FrameRate</code>, Elastic Transcoder uses the frame rate of the input
* video for the frame rate of the output video. Specify the maximum frame rate that you want Elastic Transcoder to
* use when the frame rate of the input video is greater than the desired maximum frame rate of the output video.
* Valid values include: <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>,
* <code>29.97</code>, <code>30</code>, <code>60</code>.
* </p>
*/
private String maxFrameRate;
/**
* <important>
* <p>
* To better control resolution and aspect ratio of output videos, we recommend that you use the values
* <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and
* <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups
* of settings are mutually exclusive. Do not use them together.
* </p>
* </important>
* <p>
* The width and height of the video in the output file, in pixels. Valid values are <code>auto</code> and
* <i>width</i> x <i>height</i>:
* </p>
* <ul>
* <li>
* <p>
* <code>auto</code>: Elastic Transcoder attempts to preserve the width and height of the input file, subject to the
* following rules.
* </p>
* </li>
* <li>
* <p>
* <code> <i>width</i> x <i>height</i> </code>: The width and height of the output video in pixels.
* </p>
* </li>
* </ul>
* <p>
* Note the following about specifying the width and height:
* </p>
* <ul>
* <li>
* <p>
* The width must be an even integer between 128 and 4096, inclusive.
* </p>
* </li>
* <li>
* <p>
* The height must be an even integer between 96 and 3072, inclusive.
* </p>
* </li>
* <li>
* <p>
* If you specify a resolution that is less than the resolution of the input file, Elastic Transcoder rescales the
* output file to the lower resolution.
* </p>
* </li>
* <li>
* <p>
* If you specify a resolution that is greater than the resolution of the input file, Elastic Transcoder rescales
* the output to the higher resolution.
* </p>
* </li>
* <li>
* <p>
* We recommend that you specify a resolution for which the product of width and height is less than or equal to the
* applicable value in the following list (<i>List - Max width x height value</i>):
* </p>
* <ul>
* <li>
* <p>
* 1 - 25344
* </p>
* </li>
* <li>
* <p>
* 1b - 25344
* </p>
* </li>
* <li>
* <p>
* 1.1 - 101376
* </p>
* </li>
* <li>
* <p>
* 1.2 - 101376
* </p>
* </li>
* <li>
* <p>
* 1.3 - 101376
* </p>
* </li>
* <li>
* <p>
* 2 - 101376
* </p>
* </li>
* <li>
* <p>
* 2.1 - 202752
* </p>
* </li>
* <li>
* <p>
* 2.2 - 404720
* </p>
* </li>
* <li>
* <p>
* 3 - 404720
* </p>
* </li>
* <li>
* <p>
* 3.1 - 921600
* </p>
* </li>
* <li>
* <p>
* 3.2 - 1310720
* </p>
* </li>
* <li>
* <p>
* 4 - 2097152
* </p>
* </li>
* <li>
* <p>
* 4.1 - 2097152
* </p>
* </li>
* </ul>
* </li>
* </ul>
*/
private String resolution;
/**
* <important>
* <p>
* To better control resolution and aspect ratio of output videos, we recommend that you use the values
* <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and
* <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups
* of settings are mutually exclusive. Do not use them together.
* </p>
* </important>
* <p>
* The display aspect ratio of the video in the output file. Valid values include:
* </p>
* <p>
* <code>auto</code>, <code>1:1</code>, <code>4:3</code>, <code>3:2</code>, <code>16:9</code>
* </p>
* <p>
* If you specify <code>auto</code>, Elastic Transcoder tries to preserve the aspect ratio of the input file.
* </p>
* <p>
* If you specify an aspect ratio for the output file that differs from aspect ratio of the input file, Elastic
* Transcoder adds pillarboxing (black bars on the sides) or letterboxing (black bars on the top and bottom) to
* maintain the aspect ratio of the active region of the video.
* </p>
*/
private String aspectRatio;
/**
* <p>
* The maximum width of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder uses 1920
* (Full HD) as the default value. If you specify a numeric value, enter an even integer between 128 and 4096.
* </p>
*/
private String maxWidth;
/**
* <p>
* The maximum height of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder uses 1080
* (Full HD) as the default value. If you specify a numeric value, enter an even integer between 96 and 3072.
* </p>
*/
private String maxHeight;
/**
* <p>
* The value that Elastic Transcoder adds to the metadata in the output file.
* </p>
*/
private String displayAspectRatio;
/**
* <p>
* Specify one of the following values to control scaling of the output video:
* </p>
* <ul>
* <li>
* <p>
* <code>Fit</code>: Elastic Transcoder scales the output video so it matches the value that you specified in either
* <code>MaxWidth</code> or <code>MaxHeight</code> without exceeding the other value.
* </p>
* </li>
* <li>
* <p>
* <code>Fill</code>: Elastic Transcoder scales the output video so it matches the value that you specified in
* either <code>MaxWidth</code> or <code>MaxHeight</code> and matches or exceeds the other value. Elastic Transcoder
* centers the output video and then crops it in the dimension (if any) that exceeds the maximum value.
* </p>
* </li>
* <li>
* <p>
* <code>Stretch</code>: Elastic Transcoder stretches the output video to match the values that you specified for
* <code>MaxWidth</code> and <code>MaxHeight</code>. If the relative proportions of the input video and the output
* video are different, the output video will be distorted.
* </p>
* </li>
* <li>
* <p>
* <code>Keep</code>: Elastic Transcoder does not scale the output video. If either dimension of the input video
* exceeds the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>, Elastic Transcoder
* crops the output video.
* </p>
* </li>
* <li>
* <p>
* <code>ShrinkToFit</code>: Elastic Transcoder scales the output video down so that its dimensions match the values
* that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without exceeding either
* value. If you specify this option, Elastic Transcoder does not scale the video up.
* </p>
* </li>
* <li>
* <p>
* <code>ShrinkToFill</code>: Elastic Transcoder scales the output video down so that its dimensions match the
* values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without dropping
* below either value. If you specify this option, Elastic Transcoder does not scale the video up.
* </p>
* </li>
* </ul>
*/
private String sizingPolicy;
/**
* <p>
* When you set <code>PaddingPolicy</code> to <code>Pad</code>, Elastic Transcoder may add black bars to the top and
* bottom and/or left and right sides of the output video to make the total size of the output video match the
* values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>.
* </p>
*/
private String paddingPolicy;
/**
* <p>
* Settings for the size, location, and opacity of graphics that you want Elastic Transcoder to overlay over videos
* that are transcoded using this preset. You can specify settings for up to four watermarks. Watermarks appear in
* the specified size and location, and with the specified opacity for the duration of the transcoded video.
* </p>
* <p>
* Watermarks can be in .png or .jpg format. If you want to display a watermark that is not rectangular, use the
* .png format, which supports transparency.
* </p>
* <p>
* When you create a job that uses this preset, you specify the .png or .jpg graphics that you want Elastic
* Transcoder to include in the transcoded videos. You can specify fewer graphics in the job than you specify
* watermark settings in the preset, which allows you to use the same preset for up to four watermarks that have
* different dimensions.
* </p>
*/
private com.amazonaws.internal.SdkInternalList<PresetWatermark> watermarks;
/**
* <p>
* The video codec for the output file. Valid values include <code>gif</code>, <code>H.264</code>,
* <code>mpeg2</code>, <code>vp8</code>, and <code>vp9</code>. You can only specify <code>vp8</code> and
* <code>vp9</code> when the container type is <code>webm</code>, <code>gif</code> when the container type is
* <code>gif</code>, and <code>mpeg2</code> when the container type is <code>mpg</code>.
* </p>
*
* @param codec
* The video codec for the output file. Valid values include <code>gif</code>, <code>H.264</code>,
* <code>mpeg2</code>, <code>vp8</code>, and <code>vp9</code>. You can only specify <code>vp8</code> and
* <code>vp9</code> when the container type is <code>webm</code>, <code>gif</code> when the container type is
* <code>gif</code>, and <code>mpeg2</code> when the container type is <code>mpg</code>.
*/
public void setCodec(String codec) {
this.codec = codec;
}
/**
* <p>
* The video codec for the output file. Valid values include <code>gif</code>, <code>H.264</code>,
* <code>mpeg2</code>, <code>vp8</code>, and <code>vp9</code>. You can only specify <code>vp8</code> and
* <code>vp9</code> when the container type is <code>webm</code>, <code>gif</code> when the container type is
* <code>gif</code>, and <code>mpeg2</code> when the container type is <code>mpg</code>.
* </p>
*
* @return The video codec for the output file. Valid values include <code>gif</code>, <code>H.264</code>,
* <code>mpeg2</code>, <code>vp8</code>, and <code>vp9</code>. You can only specify <code>vp8</code> and
* <code>vp9</code> when the container type is <code>webm</code>, <code>gif</code> when the container type
* is <code>gif</code>, and <code>mpeg2</code> when the container type is <code>mpg</code>.
*/
public String getCodec() {
return this.codec;
}
/**
* <p>
* The video codec for the output file. Valid values include <code>gif</code>, <code>H.264</code>,
* <code>mpeg2</code>, <code>vp8</code>, and <code>vp9</code>. You can only specify <code>vp8</code> and
* <code>vp9</code> when the container type is <code>webm</code>, <code>gif</code> when the container type is
* <code>gif</code>, and <code>mpeg2</code> when the container type is <code>mpg</code>.
* </p>
*
* @param codec
* The video codec for the output file. Valid values include <code>gif</code>, <code>H.264</code>,
* <code>mpeg2</code>, <code>vp8</code>, and <code>vp9</code>. You can only specify <code>vp8</code> and
* <code>vp9</code> when the container type is <code>webm</code>, <code>gif</code> when the container type is
* <code>gif</code>, and <code>mpeg2</code> when the container type is <code>mpg</code>.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public VideoParameters withCodec(String codec) {
setCodec(codec);
return this;
}
/**
* <p>
* <b>Profile (H.264/VP8/VP9 Only)</b>
* </p>
* <p>
* The H.264 profile that you want to use for the output file. Elastic Transcoder supports the following profiles:
* </p>
* <ul>
* <li>
* <p>
* <code>baseline</code>: The profile most commonly used for videoconferencing and for mobile applications.
* </p>
* </li>
* <li>
* <p>
* <code>main</code>: The profile used for standard-definition digital TV broadcasts.
* </p>
* </li>
* <li>
* <p>
* <code>high</code>: The profile used for high-definition digital TV broadcasts and for Blu-ray discs.
* </p>
* </li>
* </ul>
* <p>
* <b>Level (H.264 Only)</b>
* </p>
* <p>
* The H.264 level that you want to use for the output file. Elastic Transcoder supports the following levels:
* </p>
* <p>
* <code>1</code>, <code>1b</code>, <code>1.1</code>, <code>1.2</code>, <code>1.3</code>, <code>2</code>,
* <code>2.1</code>, <code>2.2</code>, <code>3</code>, <code>3.1</code>, <code>3.2</code>, <code>4</code>,
* <code>4.1</code>
* </p>
* <p>
* <b>MaxReferenceFrames (H.264 Only)</b>
* </p>
* <p>
* Applicable only when the value of Video:Codec is H.264. The maximum number of previously decoded frames to use as
* a reference for decoding future frames. Valid values are integers 0 through 16, but we recommend that you not use
* a value greater than the following:
* </p>
* <p>
* <code>Min(Floor(Maximum decoded picture buffer in macroblocks * 256 / (Width in pixels * Height in pixels)), 16)</code>
* </p>
* <p>
* where <i>Width in pixels</i> and <i>Height in pixels</i> represent either MaxWidth and MaxHeight, or Resolution.
* <i>Maximum decoded picture buffer in macroblocks</i> depends on the value of the <code>Level</code> object. See
* the list below. (A macroblock is a block of pixels measuring 16x16.)
* </p>
* <ul>
* <li>
* <p>
* 1 - 396
* </p>
* </li>
* <li>
* <p>
* 1b - 396
* </p>
* </li>
* <li>
* <p>
* 1.1 - 900
* </p>
* </li>
* <li>
* <p>
* 1.2 - 2376
* </p>
* </li>
* <li>
* <p>
* 1.3 - 2376
* </p>
* </li>
* <li>
* <p>
* 2 - 2376
* </p>
* </li>
* <li>
* <p>
* 2.1 - 4752
* </p>
* </li>
* <li>
* <p>
* 2.2 - 8100
* </p>
* </li>
* <li>
* <p>
* 3 - 8100
* </p>
* </li>
* <li>
* <p>
* 3.1 - 18000
* </p>
* </li>
* <li>
* <p>
* 3.2 - 20480
* </p>
* </li>
* <li>
* <p>
* 4 - 32768
* </p>
* </li>
* <li>
* <p>
* 4.1 - 32768
* </p>
* </li>
* </ul>
* <p>
* <b>MaxBitRate (Optional, H.264/MPEG2/VP8/VP9 only)</b>
* </p>
* <p>
* The maximum number of bits per second in a video buffer; the size of the buffer is specified by
* <code>BufferSize</code>. Specify a value between 16 and 62,500. You can reduce the bandwidth required to stream a
* video by reducing the maximum bit rate, but this also reduces the quality of the video.
* </p>
* <p>
* <b>BufferSize (Optional, H.264/MPEG2/VP8/VP9 only)</b>
* </p>
* <p>
* The maximum number of bits in any x seconds of the output video. This window is commonly 10 seconds, the standard
* segment duration when you're using FMP4 or MPEG-TS for the container type of the output video. Specify an integer
* greater than 0. If you specify <code>MaxBitRate</code> and omit <code>BufferSize</code>, Elastic Transcoder sets
* <code>BufferSize</code> to 10 times the value of <code>MaxBitRate</code>.
* </p>
* <p>
* <b>InterlacedMode (Optional, H.264/MPEG2 Only)</b>
* </p>
* <p>
* The interlace mode for the output video.
* </p>
* <p>
* Interlaced video is used to double the perceived frame rate for a video by interlacing two fields (one field on
* every other line, the other field on the other lines) so that the human eye registers multiple pictures per
* frame. Interlacing reduces the bandwidth required for transmitting a video, but can result in blurred images and
* flickering.
* </p>
* <p>
* Valid values include <code>Progressive</code> (no interlacing, top to bottom), <code>TopFirst</code> (top field
* first), <code>BottomFirst</code> (bottom field first), and <code>Auto</code>.
* </p>
* <p>
* If <code>InterlaceMode</code> is not specified, Elastic Transcoder uses <code>Progressive</code> for the output.
* If <code>Auto</code> is specified, Elastic Transcoder interlaces the output.
* </p>
* <p>
* <b>ColorSpaceConversionMode (Optional, H.264/MPEG2 Only)</b>
* </p>
* <p>
* The color space conversion Elastic Transcoder applies to the output video. Color spaces are the algorithms used
* by the computer to store information about how to render color. <code>Bt.601</code> is the standard for standard
* definition video, while <code>Bt.709</code> is the standard for high definition video.
* </p>
* <p>
* Valid values include <code>None</code>, <code>Bt709toBt601</code>, <code>Bt601toBt709</code>, and
* <code>Auto</code>.
* </p>
* <p>
* If you chose <code>Auto</code> for <code>ColorSpaceConversionMode</code> and your output is interlaced, your
* frame rate is one of <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>, <code>50</code>,
* or <code>60</code>, your <code>SegmentDuration</code> is null, and you are using one of the resolution changes
* from the list below, Elastic Transcoder applies the following color space conversions:
* </p>
* <ul>
* <li>
* <p>
* <i>Standard to HD, 720x480 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>
* </p>
* </li>
* <li>
* <p>
* <i>Standard to HD, 720x576 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>
* </p>
* </li>
* <li>
* <p>
* <i>HD to Standard, 1920x1080 to 720x480</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>
* </p>
* </li>
* <li>
* <p>
* <i>HD to Standard, 1920x1080 to 720x576</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>
* </p>
* </li>
* </ul>
* <note>
* <p>
* Elastic Transcoder may change the behavior of the <code>ColorspaceConversionMode</code> <code>Auto</code> mode in
* the future. All outputs in a playlist must use the same <code>ColorSpaceConversionMode</code>.
* </p>
* </note>
* <p>
* If you do not specify a <code>ColorSpaceConversionMode</code>, Elastic Transcoder does not change the color space
* of a file. If you are unsure what <code>ColorSpaceConversionMode</code> was applied to your output file, you can
* check the <code>AppliedColorSpaceConversion</code> parameter included in your job response. If your job does not
* have an <code>AppliedColorSpaceConversion</code> in its response, no <code>ColorSpaceConversionMode</code> was
* applied.
* </p>
* <p>
* <b>ChromaSubsampling</b>
* </p>
* <p>
* The sampling pattern for the chroma (color) channels of the output video. Valid values include
* <code>yuv420p</code> and <code>yuv422p</code>.
* </p>
* <p>
* <code>yuv420p</code> samples the chroma information of every other horizontal and every other vertical line,
* <code>yuv422p</code> samples the color information of every horizontal line and every other vertical line.
* </p>
* <p>
* <b>LoopCount (Gif Only)</b>
* </p>
* <p>
* The number of times you want the output gif to loop. Valid values include <code>Infinite</code> and integers
* between <code>0</code> and <code>100</code>, inclusive.
* </p>
*
* @return <b>Profile (H.264/VP8/VP9 Only)</b> </p>
* <p>
* The H.264 profile that you want to use for the output file. Elastic Transcoder supports the following
* profiles:
* </p>
* <ul>
* <li>
* <p>
* <code>baseline</code>: The profile most commonly used for videoconferencing and for mobile applications.
* </p>
* </li>
* <li>
* <p>
* <code>main</code>: The profile used for standard-definition digital TV broadcasts.
* </p>
* </li>
* <li>
* <p>
* <code>high</code>: The profile used for high-definition digital TV broadcasts and for Blu-ray discs.
* </p>
* </li>
* </ul>
* <p>
* <b>Level (H.264 Only)</b>
* </p>
* <p>
* The H.264 level that you want to use for the output file. Elastic Transcoder supports the following
* levels:
* </p>
* <p>
* <code>1</code>, <code>1b</code>, <code>1.1</code>, <code>1.2</code>, <code>1.3</code>, <code>2</code>,
* <code>2.1</code>, <code>2.2</code>, <code>3</code>, <code>3.1</code>, <code>3.2</code>, <code>4</code>,
* <code>4.1</code>
* </p>
* <p>
* <b>MaxReferenceFrames (H.264 Only)</b>
* </p>
* <p>
* Applicable only when the value of Video:Codec is H.264. The maximum number of previously decoded frames
* to use as a reference for decoding future frames. Valid values are integers 0 through 16, but we
* recommend that you not use a value greater than the following:
* </p>
* <p>
* <code>Min(Floor(Maximum decoded picture buffer in macroblocks * 256 / (Width in pixels * Height in pixels)), 16)</code>
* </p>
* <p>
* where <i>Width in pixels</i> and <i>Height in pixels</i> represent either MaxWidth and MaxHeight, or
* Resolution. <i>Maximum decoded picture buffer in macroblocks</i> depends on the value of the
* <code>Level</code> object. See the list below. (A macroblock is a block of pixels measuring 16x16.)
* </p>
* <ul>
* <li>
* <p>
* 1 - 396
* </p>
* </li>
* <li>
* <p>
* 1b - 396
* </p>
* </li>
* <li>
* <p>
* 1.1 - 900
* </p>
* </li>
* <li>
* <p>
* 1.2 - 2376
* </p>
* </li>
* <li>
* <p>
* 1.3 - 2376
* </p>
* </li>
* <li>
* <p>
* 2 - 2376
* </p>
* </li>
* <li>
* <p>
* 2.1 - 4752
* </p>
* </li>
* <li>
* <p>
* 2.2 - 8100
* </p>
* </li>
* <li>
* <p>
* 3 - 8100
* </p>
* </li>
* <li>
* <p>
* 3.1 - 18000
* </p>
* </li>
* <li>
* <p>
* 3.2 - 20480
* </p>
* </li>
* <li>
* <p>
* 4 - 32768
* </p>
* </li>
* <li>
* <p>
* 4.1 - 32768
* </p>
* </li>
* </ul>
* <p>
* <b>MaxBitRate (Optional, H.264/MPEG2/VP8/VP9 only)</b>
* </p>
* <p>
* The maximum number of bits per second in a video buffer; the size of the buffer is specified by
* <code>BufferSize</code>. Specify a value between 16 and 62,500. You can reduce the bandwidth required to
* stream a video by reducing the maximum bit rate, but this also reduces the quality of the video.
* </p>
* <p>
* <b>BufferSize (Optional, H.264/MPEG2/VP8/VP9 only)</b>
* </p>
* <p>
* The maximum number of bits in any x seconds of the output video. This window is commonly 10 seconds, the
* standard segment duration when you're using FMP4 or MPEG-TS for the container type of the output video.
* Specify an integer greater than 0. If you specify <code>MaxBitRate</code> and omit
* <code>BufferSize</code>, Elastic Transcoder sets <code>BufferSize</code> to 10 times the value of
* <code>MaxBitRate</code>.
* </p>
* <p>
* <b>InterlacedMode (Optional, H.264/MPEG2 Only)</b>
* </p>
* <p>
* The interlace mode for the output video.
* </p>
* <p>
* Interlaced video is used to double the perceived frame rate for a video by interlacing two fields (one
* field on every other line, the other field on the other lines) so that the human eye registers multiple
* pictures per frame. Interlacing reduces the bandwidth required for transmitting a video, but can result
* in blurred images and flickering.
* </p>
* <p>
* Valid values include <code>Progressive</code> (no interlacing, top to bottom), <code>TopFirst</code> (top
* field first), <code>BottomFirst</code> (bottom field first), and <code>Auto</code>.
* </p>
* <p>
* If <code>InterlaceMode</code> is not specified, Elastic Transcoder uses <code>Progressive</code> for the
* output. If <code>Auto</code> is specified, Elastic Transcoder interlaces the output.
* </p>
* <p>
* <b>ColorSpaceConversionMode (Optional, H.264/MPEG2 Only)</b>
* </p>
* <p>
* The color space conversion Elastic Transcoder applies to the output video. Color spaces are the
* algorithms used by the computer to store information about how to render color. <code>Bt.601</code> is
* the standard for standard definition video, while <code>Bt.709</code> is the standard for high definition
* video.
* </p>
* <p>
* Valid values include <code>None</code>, <code>Bt709toBt601</code>, <code>Bt601toBt709</code>, and
* <code>Auto</code>.
* </p>
* <p>
* If you chose <code>Auto</code> for <code>ColorSpaceConversionMode</code> and your output is interlaced,
* your frame rate is one of <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>,
* <code>50</code>, or <code>60</code>, your <code>SegmentDuration</code> is null, and you are using one of
* the resolution changes from the list below, Elastic Transcoder applies the following color space
* conversions:
* </p>
* <ul>
* <li>
* <p>
* <i>Standard to HD, 720x480 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>
* </p>
* </li>
* <li>
* <p>
* <i>Standard to HD, 720x576 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>
* </p>
* </li>
* <li>
* <p>
* <i>HD to Standard, 1920x1080 to 720x480</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>
* </p>
* </li>
* <li>
* <p>
* <i>HD to Standard, 1920x1080 to 720x576</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>
* </p>
* </li>
* </ul>
* <note>
* <p>
* Elastic Transcoder may change the behavior of the <code>ColorspaceConversionMode</code> <code>Auto</code>
* mode in the future. All outputs in a playlist must use the same <code>ColorSpaceConversionMode</code>.
* </p>
* </note>
* <p>
* If you do not specify a <code>ColorSpaceConversionMode</code>, Elastic Transcoder does not change the
* color space of a file. If you are unsure what <code>ColorSpaceConversionMode</code> was applied to your
* output file, you can check the <code>AppliedColorSpaceConversion</code> parameter included in your job
* response. If your job does not have an <code>AppliedColorSpaceConversion</code> in its response, no
* <code>ColorSpaceConversionMode</code> was applied.
* </p>
* <p>
* <b>ChromaSubsampling</b>
* </p>
* <p>
* The sampling pattern for the chroma (color) channels of the output video. Valid values include
* <code>yuv420p</code> and <code>yuv422p</code>.
* </p>
* <p>
* <code>yuv420p</code> samples the chroma information of every other horizontal and every other vertical
* line, <code>yuv422p</code> samples the color information of every horizontal line and every other
* vertical line.
* </p>
* <p>
* <b>LoopCount (Gif Only)</b>
* </p>
* <p>
* The number of times you want the output gif to loop. Valid values include <code>Infinite</code> and
* integers between <code>0</code> and <code>100</code>, inclusive.
*/
public java.util.Map<String, String> getCodecOptions() {
if (codecOptions == null) {
codecOptions = new com.amazonaws.internal.SdkInternalMap<String, String>();
}
return codecOptions;
}
/**
* <p>
* <b>Profile (H.264/VP8/VP9 Only)</b>
* </p>
* <p>
* The H.264 profile that you want to use for the output file. Elastic Transcoder supports the following profiles:
* </p>
* <ul>
* <li>
* <p>
* <code>baseline</code>: The profile most commonly used for videoconferencing and for mobile applications.
* </p>
* </li>
* <li>
* <p>
* <code>main</code>: The profile used for standard-definition digital TV broadcasts.
* </p>
* </li>
* <li>
* <p>
* <code>high</code>: The profile used for high-definition digital TV broadcasts and for Blu-ray discs.
* </p>
* </li>
* </ul>
* <p>
* <b>Level (H.264 Only)</b>
* </p>
* <p>
* The H.264 level that you want to use for the output file. Elastic Transcoder supports the following levels:
* </p>
* <p>
* <code>1</code>, <code>1b</code>, <code>1.1</code>, <code>1.2</code>, <code>1.3</code>, <code>2</code>,
* <code>2.1</code>, <code>2.2</code>, <code>3</code>, <code>3.1</code>, <code>3.2</code>, <code>4</code>,
* <code>4.1</code>
* </p>
* <p>
* <b>MaxReferenceFrames (H.264 Only)</b>
* </p>
* <p>
* Applicable only when the value of Video:Codec is H.264. The maximum number of previously decoded frames to use as
* a reference for decoding future frames. Valid values are integers 0 through 16, but we recommend that you not use
* a value greater than the following:
* </p>
* <p>
* <code>Min(Floor(Maximum decoded picture buffer in macroblocks * 256 / (Width in pixels * Height in pixels)), 16)</code>
* </p>
* <p>
* where <i>Width in pixels</i> and <i>Height in pixels</i> represent either MaxWidth and MaxHeight, or Resolution.
* <i>Maximum decoded picture buffer in macroblocks</i> depends on the value of the <code>Level</code> object. See
* the list below. (A macroblock is a block of pixels measuring 16x16.)
* </p>
* <ul>
* <li>
* <p>
* 1 - 396
* </p>
* </li>
* <li>
* <p>
* 1b - 396
* </p>
* </li>
* <li>
* <p>
* 1.1 - 900
* </p>
* </li>
* <li>
* <p>
* 1.2 - 2376
* </p>
* </li>
* <li>
* <p>
* 1.3 - 2376
* </p>
* </li>
* <li>
* <p>
* 2 - 2376
* </p>
* </li>
* <li>
* <p>
* 2.1 - 4752
* </p>
* </li>
* <li>
* <p>
* 2.2 - 8100
* </p>
* </li>
* <li>
* <p>
* 3 - 8100
* </p>
* </li>
* <li>
* <p>
* 3.1 - 18000
* </p>
* </li>
* <li>
* <p>
* 3.2 - 20480
* </p>
* </li>
* <li>
* <p>
* 4 - 32768
* </p>
* </li>
* <li>
* <p>
* 4.1 - 32768
* </p>
* </li>
* </ul>
* <p>
* <b>MaxBitRate (Optional, H.264/MPEG2/VP8/VP9 only)</b>
* </p>
* <p>
* The maximum number of bits per second in a video buffer; the size of the buffer is specified by
* <code>BufferSize</code>. Specify a value between 16 and 62,500. You can reduce the bandwidth required to stream a
* video by reducing the maximum bit rate, but this also reduces the quality of the video.
* </p>
* <p>
* <b>BufferSize (Optional, H.264/MPEG2/VP8/VP9 only)</b>
* </p>
* <p>
* The maximum number of bits in any x seconds of the output video. This window is commonly 10 seconds, the standard
* segment duration when you're using FMP4 or MPEG-TS for the container type of the output video. Specify an integer
* greater than 0. If you specify <code>MaxBitRate</code> and omit <code>BufferSize</code>, Elastic Transcoder sets
* <code>BufferSize</code> to 10 times the value of <code>MaxBitRate</code>.
* </p>
* <p>
* <b>InterlacedMode (Optional, H.264/MPEG2 Only)</b>
* </p>
* <p>
* The interlace mode for the output video.
* </p>
* <p>
* Interlaced video is used to double the perceived frame rate for a video by interlacing two fields (one field on
* every other line, the other field on the other lines) so that the human eye registers multiple pictures per
* frame. Interlacing reduces the bandwidth required for transmitting a video, but can result in blurred images and
* flickering.
* </p>
* <p>
* Valid values include <code>Progressive</code> (no interlacing, top to bottom), <code>TopFirst</code> (top field
* first), <code>BottomFirst</code> (bottom field first), and <code>Auto</code>.
* </p>
* <p>
* If <code>InterlaceMode</code> is not specified, Elastic Transcoder uses <code>Progressive</code> for the output.
* If <code>Auto</code> is specified, Elastic Transcoder interlaces the output.
* </p>
* <p>
* <b>ColorSpaceConversionMode (Optional, H.264/MPEG2 Only)</b>
* </p>
* <p>
* The color space conversion Elastic Transcoder applies to the output video. Color spaces are the algorithms used
* by the computer to store information about how to render color. <code>Bt.601</code> is the standard for standard
* definition video, while <code>Bt.709</code> is the standard for high definition video.
* </p>
* <p>
* Valid values include <code>None</code>, <code>Bt709toBt601</code>, <code>Bt601toBt709</code>, and
* <code>Auto</code>.
* </p>
* <p>
* If you chose <code>Auto</code> for <code>ColorSpaceConversionMode</code> and your output is interlaced, your
* frame rate is one of <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>, <code>50</code>,
* or <code>60</code>, your <code>SegmentDuration</code> is null, and you are using one of the resolution changes
* from the list below, Elastic Transcoder applies the following color space conversions:
* </p>
* <ul>
* <li>
* <p>
* <i>Standard to HD, 720x480 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>
* </p>
* </li>
* <li>
* <p>
* <i>Standard to HD, 720x576 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>
* </p>
* </li>
* <li>
* <p>
* <i>HD to Standard, 1920x1080 to 720x480</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>
* </p>
* </li>
* <li>
* <p>
* <i>HD to Standard, 1920x1080 to 720x576</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>
* </p>
* </li>
* </ul>
* <note>
* <p>
* Elastic Transcoder may change the behavior of the <code>ColorspaceConversionMode</code> <code>Auto</code> mode in
* the future. All outputs in a playlist must use the same <code>ColorSpaceConversionMode</code>.
* </p>
* </note>
* <p>
* If you do not specify a <code>ColorSpaceConversionMode</code>, Elastic Transcoder does not change the color space
* of a file. If you are unsure what <code>ColorSpaceConversionMode</code> was applied to your output file, you can
* check the <code>AppliedColorSpaceConversion</code> parameter included in your job response. If your job does not
* have an <code>AppliedColorSpaceConversion</code> in its response, no <code>ColorSpaceConversionMode</code> was
* applied.
* </p>
* <p>
* <b>ChromaSubsampling</b>
* </p>
* <p>
* The sampling pattern for the chroma (color) channels of the output video. Valid values include
* <code>yuv420p</code> and <code>yuv422p</code>.
* </p>
* <p>
* <code>yuv420p</code> samples the chroma information of every other horizontal and every other vertical line,
* <code>yuv422p</code> samples the color information of every horizontal line and every other vertical line.
* </p>
* <p>
* <b>LoopCount (Gif Only)</b>
* </p>
* <p>
* The number of times you want the output gif to loop. Valid values include <code>Infinite</code> and integers
* between <code>0</code> and <code>100</code>, inclusive.
* </p>
*
* @param codecOptions
* <b>Profile (H.264/VP8/VP9 Only)</b> </p>
* <p>
* The H.264 profile that you want to use for the output file. Elastic Transcoder supports the following
* profiles:
* </p>
* <ul>
* <li>
* <p>
* <code>baseline</code>: The profile most commonly used for videoconferencing and for mobile applications.
* </p>
* </li>
* <li>
* <p>
* <code>main</code>: The profile used for standard-definition digital TV broadcasts.
* </p>
* </li>
* <li>
* <p>
* <code>high</code>: The profile used for high-definition digital TV broadcasts and for Blu-ray discs.
* </p>
* </li>
* </ul>
* <p>
* <b>Level (H.264 Only)</b>
* </p>
* <p>
* The H.264 level that you want to use for the output file. Elastic Transcoder supports the following
* levels:
* </p>
* <p>
* <code>1</code>, <code>1b</code>, <code>1.1</code>, <code>1.2</code>, <code>1.3</code>, <code>2</code>,
* <code>2.1</code>, <code>2.2</code>, <code>3</code>, <code>3.1</code>, <code>3.2</code>, <code>4</code>,
* <code>4.1</code>
* </p>
* <p>
* <b>MaxReferenceFrames (H.264 Only)</b>
* </p>
* <p>
* Applicable only when the value of Video:Codec is H.264. The maximum number of previously decoded frames to
* use as a reference for decoding future frames. Valid values are integers 0 through 16, but we recommend
* that you not use a value greater than the following:
* </p>
* <p>
* <code>Min(Floor(Maximum decoded picture buffer in macroblocks * 256 / (Width in pixels * Height in pixels)), 16)</code>
* </p>
* <p>
* where <i>Width in pixels</i> and <i>Height in pixels</i> represent either MaxWidth and MaxHeight, or
* Resolution. <i>Maximum decoded picture buffer in macroblocks</i> depends on the value of the
* <code>Level</code> object. See the list below. (A macroblock is a block of pixels measuring 16x16.)
* </p>
* <ul>
* <li>
* <p>
* 1 - 396
* </p>
* </li>
* <li>
* <p>
* 1b - 396
* </p>
* </li>
* <li>
* <p>
* 1.1 - 900
* </p>
* </li>
* <li>
* <p>
* 1.2 - 2376
* </p>
* </li>
* <li>
* <p>
* 1.3 - 2376
* </p>
* </li>
* <li>
* <p>
* 2 - 2376
* </p>
* </li>
* <li>
* <p>
* 2.1 - 4752
* </p>
* </li>
* <li>
* <p>
* 2.2 - 8100
* </p>
* </li>
* <li>
* <p>
* 3 - 8100
* </p>
* </li>
* <li>
* <p>
* 3.1 - 18000
* </p>
* </li>
* <li>
* <p>
* 3.2 - 20480
* </p>
* </li>
* <li>
* <p>
* 4 - 32768
* </p>
* </li>
* <li>
* <p>
* 4.1 - 32768
* </p>
* </li>
* </ul>
* <p>
* <b>MaxBitRate (Optional, H.264/MPEG2/VP8/VP9 only)</b>
* </p>
* <p>
* The maximum number of bits per second in a video buffer; the size of the buffer is specified by
* <code>BufferSize</code>. Specify a value between 16 and 62,500. You can reduce the bandwidth required to
* stream a video by reducing the maximum bit rate, but this also reduces the quality of the video.
* </p>
* <p>
* <b>BufferSize (Optional, H.264/MPEG2/VP8/VP9 only)</b>
* </p>
* <p>
* The maximum number of bits in any x seconds of the output video. This window is commonly 10 seconds, the
* standard segment duration when you're using FMP4 or MPEG-TS for the container type of the output video.
* Specify an integer greater than 0. If you specify <code>MaxBitRate</code> and omit <code>BufferSize</code>
* , Elastic Transcoder sets <code>BufferSize</code> to 10 times the value of <code>MaxBitRate</code>.
* </p>
* <p>
* <b>InterlacedMode (Optional, H.264/MPEG2 Only)</b>
* </p>
* <p>
* The interlace mode for the output video.
* </p>
* <p>
* Interlaced video is used to double the perceived frame rate for a video by interlacing two fields (one
* field on every other line, the other field on the other lines) so that the human eye registers multiple
* pictures per frame. Interlacing reduces the bandwidth required for transmitting a video, but can result in
* blurred images and flickering.
* </p>
* <p>
* Valid values include <code>Progressive</code> (no interlacing, top to bottom), <code>TopFirst</code> (top
* field first), <code>BottomFirst</code> (bottom field first), and <code>Auto</code>.
* </p>
* <p>
* If <code>InterlaceMode</code> is not specified, Elastic Transcoder uses <code>Progressive</code> for the
* output. If <code>Auto</code> is specified, Elastic Transcoder interlaces the output.
* </p>
* <p>
* <b>ColorSpaceConversionMode (Optional, H.264/MPEG2 Only)</b>
* </p>
* <p>
* The color space conversion Elastic Transcoder applies to the output video. Color spaces are the algorithms
* used by the computer to store information about how to render color. <code>Bt.601</code> is the standard
* for standard definition video, while <code>Bt.709</code> is the standard for high definition video.
* </p>
* <p>
* Valid values include <code>None</code>, <code>Bt709toBt601</code>, <code>Bt601toBt709</code>, and
* <code>Auto</code>.
* </p>
* <p>
* If you chose <code>Auto</code> for <code>ColorSpaceConversionMode</code> and your output is interlaced,
* your frame rate is one of <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>,
* <code>50</code>, or <code>60</code>, your <code>SegmentDuration</code> is null, and you are using one of
* the resolution changes from the list below, Elastic Transcoder applies the following color space
* conversions:
* </p>
* <ul>
* <li>
* <p>
* <i>Standard to HD, 720x480 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>
* </p>
* </li>
* <li>
* <p>
* <i>Standard to HD, 720x576 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>
* </p>
* </li>
* <li>
* <p>
* <i>HD to Standard, 1920x1080 to 720x480</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>
* </p>
* </li>
* <li>
* <p>
* <i>HD to Standard, 1920x1080 to 720x576</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>
* </p>
* </li>
* </ul>
* <note>
* <p>
* Elastic Transcoder may change the behavior of the <code>ColorspaceConversionMode</code> <code>Auto</code>
* mode in the future. All outputs in a playlist must use the same <code>ColorSpaceConversionMode</code>.
* </p>
* </note>
* <p>
* If you do not specify a <code>ColorSpaceConversionMode</code>, Elastic Transcoder does not change the
* color space of a file. If you are unsure what <code>ColorSpaceConversionMode</code> was applied to your
* output file, you can check the <code>AppliedColorSpaceConversion</code> parameter included in your job
* response. If your job does not have an <code>AppliedColorSpaceConversion</code> in its response, no
* <code>ColorSpaceConversionMode</code> was applied.
* </p>
* <p>
* <b>ChromaSubsampling</b>
* </p>
* <p>
* The sampling pattern for the chroma (color) channels of the output video. Valid values include
* <code>yuv420p</code> and <code>yuv422p</code>.
* </p>
* <p>
* <code>yuv420p</code> samples the chroma information of every other horizontal and every other vertical
* line, <code>yuv422p</code> samples the color information of every horizontal line and every other vertical
* line.
* </p>
* <p>
* <b>LoopCount (Gif Only)</b>
* </p>
* <p>
* The number of times you want the output gif to loop. Valid values include <code>Infinite</code> and
* integers between <code>0</code> and <code>100</code>, inclusive.
*/
public void setCodecOptions(java.util.Map<String, String> codecOptions) {
this.codecOptions = codecOptions == null ? null : new com.amazonaws.internal.SdkInternalMap<String, String>(codecOptions);
}
/**
* <p>
* <b>Profile (H.264/VP8/VP9 Only)</b>
* </p>
* <p>
* The H.264 profile that you want to use for the output file. Elastic Transcoder supports the following profiles:
* </p>
* <ul>
* <li>
* <p>
* <code>baseline</code>: The profile most commonly used for videoconferencing and for mobile applications.
* </p>
* </li>
* <li>
* <p>
* <code>main</code>: The profile used for standard-definition digital TV broadcasts.
* </p>
* </li>
* <li>
* <p>
* <code>high</code>: The profile used for high-definition digital TV broadcasts and for Blu-ray discs.
* </p>
* </li>
* </ul>
* <p>
* <b>Level (H.264 Only)</b>
* </p>
* <p>
* The H.264 level that you want to use for the output file. Elastic Transcoder supports the following levels:
* </p>
* <p>
* <code>1</code>, <code>1b</code>, <code>1.1</code>, <code>1.2</code>, <code>1.3</code>, <code>2</code>,
* <code>2.1</code>, <code>2.2</code>, <code>3</code>, <code>3.1</code>, <code>3.2</code>, <code>4</code>,
* <code>4.1</code>
* </p>
* <p>
* <b>MaxReferenceFrames (H.264 Only)</b>
* </p>
* <p>
* Applicable only when the value of Video:Codec is H.264. The maximum number of previously decoded frames to use as
* a reference for decoding future frames. Valid values are integers 0 through 16, but we recommend that you not use
* a value greater than the following:
* </p>
* <p>
* <code>Min(Floor(Maximum decoded picture buffer in macroblocks * 256 / (Width in pixels * Height in pixels)), 16)</code>
* </p>
* <p>
* where <i>Width in pixels</i> and <i>Height in pixels</i> represent either MaxWidth and MaxHeight, or Resolution.
* <i>Maximum decoded picture buffer in macroblocks</i> depends on the value of the <code>Level</code> object. See
* the list below. (A macroblock is a block of pixels measuring 16x16.)
* </p>
* <ul>
* <li>
* <p>
* 1 - 396
* </p>
* </li>
* <li>
* <p>
* 1b - 396
* </p>
* </li>
* <li>
* <p>
* 1.1 - 900
* </p>
* </li>
* <li>
* <p>
* 1.2 - 2376
* </p>
* </li>
* <li>
* <p>
* 1.3 - 2376
* </p>
* </li>
* <li>
* <p>
* 2 - 2376
* </p>
* </li>
* <li>
* <p>
* 2.1 - 4752
* </p>
* </li>
* <li>
* <p>
* 2.2 - 8100
* </p>
* </li>
* <li>
* <p>
* 3 - 8100
* </p>
* </li>
* <li>
* <p>
* 3.1 - 18000
* </p>
* </li>
* <li>
* <p>
* 3.2 - 20480
* </p>
* </li>
* <li>
* <p>
* 4 - 32768
* </p>
* </li>
* <li>
* <p>
* 4.1 - 32768
* </p>
* </li>
* </ul>
* <p>
* <b>MaxBitRate (Optional, H.264/MPEG2/VP8/VP9 only)</b>
* </p>
* <p>
* The maximum number of bits per second in a video buffer; the size of the buffer is specified by
* <code>BufferSize</code>. Specify a value between 16 and 62,500. You can reduce the bandwidth required to stream a
* video by reducing the maximum bit rate, but this also reduces the quality of the video.
* </p>
* <p>
* <b>BufferSize (Optional, H.264/MPEG2/VP8/VP9 only)</b>
* </p>
* <p>
* The maximum number of bits in any x seconds of the output video. This window is commonly 10 seconds, the standard
* segment duration when you're using FMP4 or MPEG-TS for the container type of the output video. Specify an integer
* greater than 0. If you specify <code>MaxBitRate</code> and omit <code>BufferSize</code>, Elastic Transcoder sets
* <code>BufferSize</code> to 10 times the value of <code>MaxBitRate</code>.
* </p>
* <p>
* <b>InterlacedMode (Optional, H.264/MPEG2 Only)</b>
* </p>
* <p>
* The interlace mode for the output video.
* </p>
* <p>
* Interlaced video is used to double the perceived frame rate for a video by interlacing two fields (one field on
* every other line, the other field on the other lines) so that the human eye registers multiple pictures per
* frame. Interlacing reduces the bandwidth required for transmitting a video, but can result in blurred images and
* flickering.
* </p>
* <p>
* Valid values include <code>Progressive</code> (no interlacing, top to bottom), <code>TopFirst</code> (top field
* first), <code>BottomFirst</code> (bottom field first), and <code>Auto</code>.
* </p>
* <p>
* If <code>InterlaceMode</code> is not specified, Elastic Transcoder uses <code>Progressive</code> for the output.
* If <code>Auto</code> is specified, Elastic Transcoder interlaces the output.
* </p>
* <p>
* <b>ColorSpaceConversionMode (Optional, H.264/MPEG2 Only)</b>
* </p>
* <p>
* The color space conversion Elastic Transcoder applies to the output video. Color spaces are the algorithms used
* by the computer to store information about how to render color. <code>Bt.601</code> is the standard for standard
* definition video, while <code>Bt.709</code> is the standard for high definition video.
* </p>
* <p>
* Valid values include <code>None</code>, <code>Bt709toBt601</code>, <code>Bt601toBt709</code>, and
* <code>Auto</code>.
* </p>
* <p>
* If you chose <code>Auto</code> for <code>ColorSpaceConversionMode</code> and your output is interlaced, your
* frame rate is one of <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>, <code>50</code>,
* or <code>60</code>, your <code>SegmentDuration</code> is null, and you are using one of the resolution changes
* from the list below, Elastic Transcoder applies the following color space conversions:
* </p>
* <ul>
* <li>
* <p>
* <i>Standard to HD, 720x480 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>
* </p>
* </li>
* <li>
* <p>
* <i>Standard to HD, 720x576 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>
* </p>
* </li>
* <li>
* <p>
* <i>HD to Standard, 1920x1080 to 720x480</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>
* </p>
* </li>
* <li>
* <p>
* <i>HD to Standard, 1920x1080 to 720x576</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>
* </p>
* </li>
* </ul>
* <note>
* <p>
* Elastic Transcoder may change the behavior of the <code>ColorspaceConversionMode</code> <code>Auto</code> mode in
* the future. All outputs in a playlist must use the same <code>ColorSpaceConversionMode</code>.
* </p>
* </note>
* <p>
* If you do not specify a <code>ColorSpaceConversionMode</code>, Elastic Transcoder does not change the color space
* of a file. If you are unsure what <code>ColorSpaceConversionMode</code> was applied to your output file, you can
* check the <code>AppliedColorSpaceConversion</code> parameter included in your job response. If your job does not
* have an <code>AppliedColorSpaceConversion</code> in its response, no <code>ColorSpaceConversionMode</code> was
* applied.
* </p>
* <p>
* <b>ChromaSubsampling</b>
* </p>
* <p>
* The sampling pattern for the chroma (color) channels of the output video. Valid values include
* <code>yuv420p</code> and <code>yuv422p</code>.
* </p>
* <p>
* <code>yuv420p</code> samples the chroma information of every other horizontal and every other vertical line,
* <code>yuv422p</code> samples the color information of every horizontal line and every other vertical line.
* </p>
* <p>
* <b>LoopCount (Gif Only)</b>
* </p>
* <p>
* The number of times you want the output gif to loop. Valid values include <code>Infinite</code> and integers
* between <code>0</code> and <code>100</code>, inclusive.
* </p>
*
* @param codecOptions
* <b>Profile (H.264/VP8/VP9 Only)</b> </p>
* <p>
* The H.264 profile that you want to use for the output file. Elastic Transcoder supports the following
* profiles:
* </p>
* <ul>
* <li>
* <p>
* <code>baseline</code>: The profile most commonly used for videoconferencing and for mobile applications.
* </p>
* </li>
* <li>
* <p>
* <code>main</code>: The profile used for standard-definition digital TV broadcasts.
* </p>
* </li>
* <li>
* <p>
* <code>high</code>: The profile used for high-definition digital TV broadcasts and for Blu-ray discs.
* </p>
* </li>
* </ul>
* <p>
* <b>Level (H.264 Only)</b>
* </p>
* <p>
* The H.264 level that you want to use for the output file. Elastic Transcoder supports the following
* levels:
* </p>
* <p>
* <code>1</code>, <code>1b</code>, <code>1.1</code>, <code>1.2</code>, <code>1.3</code>, <code>2</code>,
* <code>2.1</code>, <code>2.2</code>, <code>3</code>, <code>3.1</code>, <code>3.2</code>, <code>4</code>,
* <code>4.1</code>
* </p>
* <p>
* <b>MaxReferenceFrames (H.264 Only)</b>
* </p>
* <p>
* Applicable only when the value of Video:Codec is H.264. The maximum number of previously decoded frames to
* use as a reference for decoding future frames. Valid values are integers 0 through 16, but we recommend
* that you not use a value greater than the following:
* </p>
* <p>
* <code>Min(Floor(Maximum decoded picture buffer in macroblocks * 256 / (Width in pixels * Height in pixels)), 16)</code>
* </p>
* <p>
* where <i>Width in pixels</i> and <i>Height in pixels</i> represent either MaxWidth and MaxHeight, or
* Resolution. <i>Maximum decoded picture buffer in macroblocks</i> depends on the value of the
* <code>Level</code> object. See the list below. (A macroblock is a block of pixels measuring 16x16.)
* </p>
* <ul>
* <li>
* <p>
* 1 - 396
* </p>
* </li>
* <li>
* <p>
* 1b - 396
* </p>
* </li>
* <li>
* <p>
* 1.1 - 900
* </p>
* </li>
* <li>
* <p>
* 1.2 - 2376
* </p>
* </li>
* <li>
* <p>
* 1.3 - 2376
* </p>
* </li>
* <li>
* <p>
* 2 - 2376
* </p>
* </li>
* <li>
* <p>
* 2.1 - 4752
* </p>
* </li>
* <li>
* <p>
* 2.2 - 8100
* </p>
* </li>
* <li>
* <p>
* 3 - 8100
* </p>
* </li>
* <li>
* <p>
* 3.1 - 18000
* </p>
* </li>
* <li>
* <p>
* 3.2 - 20480
* </p>
* </li>
* <li>
* <p>
* 4 - 32768
* </p>
* </li>
* <li>
* <p>
* 4.1 - 32768
* </p>
* </li>
* </ul>
* <p>
* <b>MaxBitRate (Optional, H.264/MPEG2/VP8/VP9 only)</b>
* </p>
* <p>
* The maximum number of bits per second in a video buffer; the size of the buffer is specified by
* <code>BufferSize</code>. Specify a value between 16 and 62,500. You can reduce the bandwidth required to
* stream a video by reducing the maximum bit rate, but this also reduces the quality of the video.
* </p>
* <p>
* <b>BufferSize (Optional, H.264/MPEG2/VP8/VP9 only)</b>
* </p>
* <p>
* The maximum number of bits in any x seconds of the output video. This window is commonly 10 seconds, the
* standard segment duration when you're using FMP4 or MPEG-TS for the container type of the output video.
* Specify an integer greater than 0. If you specify <code>MaxBitRate</code> and omit <code>BufferSize</code>
* , Elastic Transcoder sets <code>BufferSize</code> to 10 times the value of <code>MaxBitRate</code>.
* </p>
* <p>
* <b>InterlacedMode (Optional, H.264/MPEG2 Only)</b>
* </p>
* <p>
* The interlace mode for the output video.
* </p>
* <p>
* Interlaced video is used to double the perceived frame rate for a video by interlacing two fields (one
* field on every other line, the other field on the other lines) so that the human eye registers multiple
* pictures per frame. Interlacing reduces the bandwidth required for transmitting a video, but can result in
* blurred images and flickering.
* </p>
* <p>
* Valid values include <code>Progressive</code> (no interlacing, top to bottom), <code>TopFirst</code> (top
* field first), <code>BottomFirst</code> (bottom field first), and <code>Auto</code>.
* </p>
* <p>
* If <code>InterlaceMode</code> is not specified, Elastic Transcoder uses <code>Progressive</code> for the
* output. If <code>Auto</code> is specified, Elastic Transcoder interlaces the output.
* </p>
* <p>
* <b>ColorSpaceConversionMode (Optional, H.264/MPEG2 Only)</b>
* </p>
* <p>
* The color space conversion Elastic Transcoder applies to the output video. Color spaces are the algorithms
* used by the computer to store information about how to render color. <code>Bt.601</code> is the standard
* for standard definition video, while <code>Bt.709</code> is the standard for high definition video.
* </p>
* <p>
* Valid values include <code>None</code>, <code>Bt709toBt601</code>, <code>Bt601toBt709</code>, and
* <code>Auto</code>.
* </p>
* <p>
* If you chose <code>Auto</code> for <code>ColorSpaceConversionMode</code> and your output is interlaced,
* your frame rate is one of <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>,
* <code>50</code>, or <code>60</code>, your <code>SegmentDuration</code> is null, and you are using one of
* the resolution changes from the list below, Elastic Transcoder applies the following color space
* conversions:
* </p>
* <ul>
* <li>
* <p>
* <i>Standard to HD, 720x480 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>
* </p>
* </li>
* <li>
* <p>
* <i>Standard to HD, 720x576 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>
* </p>
* </li>
* <li>
* <p>
* <i>HD to Standard, 1920x1080 to 720x480</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>
* </p>
* </li>
* <li>
* <p>
* <i>HD to Standard, 1920x1080 to 720x576</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>
* </p>
* </li>
* </ul>
* <note>
* <p>
* Elastic Transcoder may change the behavior of the <code>ColorspaceConversionMode</code> <code>Auto</code>
* mode in the future. All outputs in a playlist must use the same <code>ColorSpaceConversionMode</code>.
* </p>
* </note>
* <p>
* If you do not specify a <code>ColorSpaceConversionMode</code>, Elastic Transcoder does not change the
* color space of a file. If you are unsure what <code>ColorSpaceConversionMode</code> was applied to your
* output file, you can check the <code>AppliedColorSpaceConversion</code> parameter included in your job
* response. If your job does not have an <code>AppliedColorSpaceConversion</code> in its response, no
* <code>ColorSpaceConversionMode</code> was applied.
* </p>
* <p>
* <b>ChromaSubsampling</b>
* </p>
* <p>
* The sampling pattern for the chroma (color) channels of the output video. Valid values include
* <code>yuv420p</code> and <code>yuv422p</code>.
* </p>
* <p>
* <code>yuv420p</code> samples the chroma information of every other horizontal and every other vertical
* line, <code>yuv422p</code> samples the color information of every horizontal line and every other vertical
* line.
* </p>
* <p>
* <b>LoopCount (Gif Only)</b>
* </p>
* <p>
* The number of times you want the output gif to loop. Valid values include <code>Infinite</code> and
* integers between <code>0</code> and <code>100</code>, inclusive.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public VideoParameters withCodecOptions(java.util.Map<String, String> codecOptions) {
setCodecOptions(codecOptions);
return this;
}
public VideoParameters addCodecOptionsEntry(String key, String value) {
if (null == this.codecOptions) {
this.codecOptions = new com.amazonaws.internal.SdkInternalMap<String, String>();
}
if (this.codecOptions.containsKey(key))
throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided.");
this.codecOptions.put(key, value);
return this;
}
/**
* Removes all the entries added into CodecOptions.
*
* @return Returns a reference to this object so that method calls can be chained together.
*/
public VideoParameters clearCodecOptionsEntries() {
this.codecOptions = null;
return this;
}
/**
* <p>
* Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or
* <code>VP8</code>.
* </p>
* <p>
* The maximum number of frames between key frames. Key frames are fully encoded frames; the frames between key
* frames are encoded based, in part, on the content of the key frames. The value is an integer formatted as a
* string; valid values are between 1 (every frame is a key frame) and 100000, inclusive. A higher value results in
* higher compression but may also discernibly decrease video quality.
* </p>
* <p>
* For <code>Smooth</code> outputs, the <code>FrameRate</code> must have a constant ratio to the
* <code>KeyframesMaxDist</code>. This allows <code>Smooth</code> playlists to switch between different quality
* levels while the file is being played.
* </p>
* <p>
* For example, an input file can have a <code>FrameRate</code> of 30 with a <code>KeyframesMaxDist</code> of 90.
* The output file then needs to have a ratio of 1:3. Valid outputs would have <code>FrameRate</code> of 30, 25, and
* 10, and <code>KeyframesMaxDist</code> of 90, 75, and 30, respectively.
* </p>
* <p>
* Alternately, this can be achieved by setting <code>FrameRate</code> to auto and having the same values for
* <code>MaxFrameRate</code> and <code>KeyframesMaxDist</code>.
* </p>
*
* @param keyframesMaxDist
* Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or
* <code>VP8</code>.</p>
* <p>
* The maximum number of frames between key frames. Key frames are fully encoded frames; the frames between
* key frames are encoded based, in part, on the content of the key frames. The value is an integer formatted
* as a string; valid values are between 1 (every frame is a key frame) and 100000, inclusive. A higher value
* results in higher compression but may also discernibly decrease video quality.
* </p>
* <p>
* For <code>Smooth</code> outputs, the <code>FrameRate</code> must have a constant ratio to the
* <code>KeyframesMaxDist</code>. This allows <code>Smooth</code> playlists to switch between different
* quality levels while the file is being played.
* </p>
* <p>
* For example, an input file can have a <code>FrameRate</code> of 30 with a <code>KeyframesMaxDist</code> of
* 90. The output file then needs to have a ratio of 1:3. Valid outputs would have <code>FrameRate</code> of
* 30, 25, and 10, and <code>KeyframesMaxDist</code> of 90, 75, and 30, respectively.
* </p>
* <p>
* Alternately, this can be achieved by setting <code>FrameRate</code> to auto and having the same values for
* <code>MaxFrameRate</code> and <code>KeyframesMaxDist</code>.
*/
public void setKeyframesMaxDist(String keyframesMaxDist) {
this.keyframesMaxDist = keyframesMaxDist;
}
/**
* <p>
* Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or
* <code>VP8</code>.
* </p>
* <p>
* The maximum number of frames between key frames. Key frames are fully encoded frames; the frames between key
* frames are encoded based, in part, on the content of the key frames. The value is an integer formatted as a
* string; valid values are between 1 (every frame is a key frame) and 100000, inclusive. A higher value results in
* higher compression but may also discernibly decrease video quality.
* </p>
* <p>
* For <code>Smooth</code> outputs, the <code>FrameRate</code> must have a constant ratio to the
* <code>KeyframesMaxDist</code>. This allows <code>Smooth</code> playlists to switch between different quality
* levels while the file is being played.
* </p>
* <p>
* For example, an input file can have a <code>FrameRate</code> of 30 with a <code>KeyframesMaxDist</code> of 90.
* The output file then needs to have a ratio of 1:3. Valid outputs would have <code>FrameRate</code> of 30, 25, and
* 10, and <code>KeyframesMaxDist</code> of 90, 75, and 30, respectively.
* </p>
* <p>
* Alternately, this can be achieved by setting <code>FrameRate</code> to auto and having the same values for
* <code>MaxFrameRate</code> and <code>KeyframesMaxDist</code>.
* </p>
*
* @return Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or
* <code>VP8</code>.</p>
* <p>
* The maximum number of frames between key frames. Key frames are fully encoded frames; the frames between
* key frames are encoded based, in part, on the content of the key frames. The value is an integer
* formatted as a string; valid values are between 1 (every frame is a key frame) and 100000, inclusive. A
* higher value results in higher compression but may also discernibly decrease video quality.
* </p>
* <p>
* For <code>Smooth</code> outputs, the <code>FrameRate</code> must have a constant ratio to the
* <code>KeyframesMaxDist</code>. This allows <code>Smooth</code> playlists to switch between different
* quality levels while the file is being played.
* </p>
* <p>
* For example, an input file can have a <code>FrameRate</code> of 30 with a <code>KeyframesMaxDist</code>
* of 90. The output file then needs to have a ratio of 1:3. Valid outputs would have <code>FrameRate</code>
* of 30, 25, and 10, and <code>KeyframesMaxDist</code> of 90, 75, and 30, respectively.
* </p>
* <p>
* Alternately, this can be achieved by setting <code>FrameRate</code> to auto and having the same values
* for <code>MaxFrameRate</code> and <code>KeyframesMaxDist</code>.
*/
public String getKeyframesMaxDist() {
return this.keyframesMaxDist;
}
/**
* <p>
* Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or
* <code>VP8</code>.
* </p>
* <p>
* The maximum number of frames between key frames. Key frames are fully encoded frames; the frames between key
* frames are encoded based, in part, on the content of the key frames. The value is an integer formatted as a
* string; valid values are between 1 (every frame is a key frame) and 100000, inclusive. A higher value results in
* higher compression but may also discernibly decrease video quality.
* </p>
* <p>
* For <code>Smooth</code> outputs, the <code>FrameRate</code> must have a constant ratio to the
* <code>KeyframesMaxDist</code>. This allows <code>Smooth</code> playlists to switch between different quality
* levels while the file is being played.
* </p>
* <p>
* For example, an input file can have a <code>FrameRate</code> of 30 with a <code>KeyframesMaxDist</code> of 90.
* The output file then needs to have a ratio of 1:3. Valid outputs would have <code>FrameRate</code> of 30, 25, and
* 10, and <code>KeyframesMaxDist</code> of 90, 75, and 30, respectively.
* </p>
* <p>
* Alternately, this can be achieved by setting <code>FrameRate</code> to auto and having the same values for
* <code>MaxFrameRate</code> and <code>KeyframesMaxDist</code>.
* </p>
*
* @param keyframesMaxDist
* Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or
* <code>VP8</code>.</p>
* <p>
* The maximum number of frames between key frames. Key frames are fully encoded frames; the frames between
* key frames are encoded based, in part, on the content of the key frames. The value is an integer formatted
* as a string; valid values are between 1 (every frame is a key frame) and 100000, inclusive. A higher value
* results in higher compression but may also discernibly decrease video quality.
* </p>
* <p>
* For <code>Smooth</code> outputs, the <code>FrameRate</code> must have a constant ratio to the
* <code>KeyframesMaxDist</code>. This allows <code>Smooth</code> playlists to switch between different
* quality levels while the file is being played.
* </p>
* <p>
* For example, an input file can have a <code>FrameRate</code> of 30 with a <code>KeyframesMaxDist</code> of
* 90. The output file then needs to have a ratio of 1:3. Valid outputs would have <code>FrameRate</code> of
* 30, 25, and 10, and <code>KeyframesMaxDist</code> of 90, 75, and 30, respectively.
* </p>
* <p>
* Alternately, this can be achieved by setting <code>FrameRate</code> to auto and having the same values for
* <code>MaxFrameRate</code> and <code>KeyframesMaxDist</code>.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public VideoParameters withKeyframesMaxDist(String keyframesMaxDist) {
setKeyframesMaxDist(keyframesMaxDist);
return this;
}
/**
* <p>
* Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or
* <code>VP8</code>.
* </p>
* <p>
* Whether to use a fixed value for <code>FixedGOP</code>. Valid values are <code>true</code> and <code>false</code>
* :
* </p>
* <ul>
* <li>
* <p>
* <code>true</code>: Elastic Transcoder uses the value of <code>KeyframesMaxDist</code> for the distance between
* key frames (the number of frames in a group of pictures, or GOP).
* </p>
* </li>
* <li>
* <p>
* <code>false</code>: The distance between key frames can vary.
* </p>
* </li>
* </ul>
* <important>
* <p>
* <code>FixedGOP</code> must be set to <code>true</code> for <code>fmp4</code> containers.
* </p>
* </important>
*
* @param fixedGOP
* Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or
* <code>VP8</code>.</p>
* <p>
* Whether to use a fixed value for <code>FixedGOP</code>. Valid values are <code>true</code> and
* <code>false</code>:
* </p>
* <ul>
* <li>
* <p>
* <code>true</code>: Elastic Transcoder uses the value of <code>KeyframesMaxDist</code> for the distance
* between key frames (the number of frames in a group of pictures, or GOP).
* </p>
* </li>
* <li>
* <p>
* <code>false</code>: The distance between key frames can vary.
* </p>
* </li>
* </ul>
* <important>
* <p>
* <code>FixedGOP</code> must be set to <code>true</code> for <code>fmp4</code> containers.
* </p>
*/
public void setFixedGOP(String fixedGOP) {
this.fixedGOP = fixedGOP;
}
/**
* <p>
* Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or
* <code>VP8</code>.
* </p>
* <p>
* Whether to use a fixed value for <code>FixedGOP</code>. Valid values are <code>true</code> and <code>false</code>
* :
* </p>
* <ul>
* <li>
* <p>
* <code>true</code>: Elastic Transcoder uses the value of <code>KeyframesMaxDist</code> for the distance between
* key frames (the number of frames in a group of pictures, or GOP).
* </p>
* </li>
* <li>
* <p>
* <code>false</code>: The distance between key frames can vary.
* </p>
* </li>
* </ul>
* <important>
* <p>
* <code>FixedGOP</code> must be set to <code>true</code> for <code>fmp4</code> containers.
* </p>
* </important>
*
* @return Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or
* <code>VP8</code>.</p>
* <p>
* Whether to use a fixed value for <code>FixedGOP</code>. Valid values are <code>true</code> and
* <code>false</code>:
* </p>
* <ul>
* <li>
* <p>
* <code>true</code>: Elastic Transcoder uses the value of <code>KeyframesMaxDist</code> for the distance
* between key frames (the number of frames in a group of pictures, or GOP).
* </p>
* </li>
* <li>
* <p>
* <code>false</code>: The distance between key frames can vary.
* </p>
* </li>
* </ul>
* <important>
* <p>
* <code>FixedGOP</code> must be set to <code>true</code> for <code>fmp4</code> containers.
* </p>
*/
public String getFixedGOP() {
return this.fixedGOP;
}
/**
* <p>
* Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or
* <code>VP8</code>.
* </p>
* <p>
* Whether to use a fixed value for <code>FixedGOP</code>. Valid values are <code>true</code> and <code>false</code>
* :
* </p>
* <ul>
* <li>
* <p>
* <code>true</code>: Elastic Transcoder uses the value of <code>KeyframesMaxDist</code> for the distance between
* key frames (the number of frames in a group of pictures, or GOP).
* </p>
* </li>
* <li>
* <p>
* <code>false</code>: The distance between key frames can vary.
* </p>
* </li>
* </ul>
* <important>
* <p>
* <code>FixedGOP</code> must be set to <code>true</code> for <code>fmp4</code> containers.
* </p>
* </important>
*
* @param fixedGOP
* Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or
* <code>VP8</code>.</p>
* <p>
* Whether to use a fixed value for <code>FixedGOP</code>. Valid values are <code>true</code> and
* <code>false</code>:
* </p>
* <ul>
* <li>
* <p>
* <code>true</code>: Elastic Transcoder uses the value of <code>KeyframesMaxDist</code> for the distance
* between key frames (the number of frames in a group of pictures, or GOP).
* </p>
* </li>
* <li>
* <p>
* <code>false</code>: The distance between key frames can vary.
* </p>
* </li>
* </ul>
* <important>
* <p>
* <code>FixedGOP</code> must be set to <code>true</code> for <code>fmp4</code> containers.
* </p>
* @return Returns a reference to this object so that method calls can be chained together.
*/
public VideoParameters withFixedGOP(String fixedGOP) {
setFixedGOP(fixedGOP);
return this;
}
/**
* <p>
* The bit rate of the video stream in the output file, in kilobits/second. Valid values depend on the values of
* <code>Level</code> and <code>Profile</code>. If you specify <code>auto</code>, Elastic Transcoder uses the
* detected bit rate of the input source. If you specify a value other than <code>auto</code>, we recommend that you
* specify a value less than or equal to the maximum H.264-compliant value listed for your level and profile:
* </p>
* <p>
* <i>Level - Maximum video bit rate in kilobits/second (baseline and main Profile) : maximum video bit rate in
* kilobits/second (high Profile)</i>
* </p>
* <ul>
* <li>
* <p>
* 1 - 64 : 80
* </p>
* </li>
* <li>
* <p>
* 1b - 128 : 160
* </p>
* </li>
* <li>
* <p>
* 1.1 - 192 : 240
* </p>
* </li>
* <li>
* <p>
* 1.2 - 384 : 480
* </p>
* </li>
* <li>
* <p>
* 1.3 - 768 : 960
* </p>
* </li>
* <li>
* <p>
* 2 - 2000 : 2500
* </p>
* </li>
* <li>
* <p>
* 3 - 10000 : 12500
* </p>
* </li>
* <li>
* <p>
* 3.1 - 14000 : 17500
* </p>
* </li>
* <li>
* <p>
* 3.2 - 20000 : 25000
* </p>
* </li>
* <li>
* <p>
* 4 - 20000 : 25000
* </p>
* </li>
* <li>
* <p>
* 4.1 - 50000 : 62500
* </p>
* </li>
* </ul>
*
* @param bitRate
* The bit rate of the video stream in the output file, in kilobits/second. Valid values depend on the values
* of <code>Level</code> and <code>Profile</code>. If you specify <code>auto</code>, Elastic Transcoder uses
* the detected bit rate of the input source. If you specify a value other than <code>auto</code>, we
* recommend that you specify a value less than or equal to the maximum H.264-compliant value listed for your
* level and profile:</p>
* <p>
* <i>Level - Maximum video bit rate in kilobits/second (baseline and main Profile) : maximum video bit rate
* in kilobits/second (high Profile)</i>
* </p>
* <ul>
* <li>
* <p>
* 1 - 64 : 80
* </p>
* </li>
* <li>
* <p>
* 1b - 128 : 160
* </p>
* </li>
* <li>
* <p>
* 1.1 - 192 : 240
* </p>
* </li>
* <li>
* <p>
* 1.2 - 384 : 480
* </p>
* </li>
* <li>
* <p>
* 1.3 - 768 : 960
* </p>
* </li>
* <li>
* <p>
* 2 - 2000 : 2500
* </p>
* </li>
* <li>
* <p>
* 3 - 10000 : 12500
* </p>
* </li>
* <li>
* <p>
* 3.1 - 14000 : 17500
* </p>
* </li>
* <li>
* <p>
* 3.2 - 20000 : 25000
* </p>
* </li>
* <li>
* <p>
* 4 - 20000 : 25000
* </p>
* </li>
* <li>
* <p>
* 4.1 - 50000 : 62500
* </p>
* </li>
*/
public void setBitRate(String bitRate) {
this.bitRate = bitRate;
}
/**
* <p>
* The bit rate of the video stream in the output file, in kilobits/second. Valid values depend on the values of
* <code>Level</code> and <code>Profile</code>. If you specify <code>auto</code>, Elastic Transcoder uses the
* detected bit rate of the input source. If you specify a value other than <code>auto</code>, we recommend that you
* specify a value less than or equal to the maximum H.264-compliant value listed for your level and profile:
* </p>
* <p>
* <i>Level - Maximum video bit rate in kilobits/second (baseline and main Profile) : maximum video bit rate in
* kilobits/second (high Profile)</i>
* </p>
* <ul>
* <li>
* <p>
* 1 - 64 : 80
* </p>
* </li>
* <li>
* <p>
* 1b - 128 : 160
* </p>
* </li>
* <li>
* <p>
* 1.1 - 192 : 240
* </p>
* </li>
* <li>
* <p>
* 1.2 - 384 : 480
* </p>
* </li>
* <li>
* <p>
* 1.3 - 768 : 960
* </p>
* </li>
* <li>
* <p>
* 2 - 2000 : 2500
* </p>
* </li>
* <li>
* <p>
* 3 - 10000 : 12500
* </p>
* </li>
* <li>
* <p>
* 3.1 - 14000 : 17500
* </p>
* </li>
* <li>
* <p>
* 3.2 - 20000 : 25000
* </p>
* </li>
* <li>
* <p>
* 4 - 20000 : 25000
* </p>
* </li>
* <li>
* <p>
* 4.1 - 50000 : 62500
* </p>
* </li>
* </ul>
*
* @return The bit rate of the video stream in the output file, in kilobits/second. Valid values depend on the
* values of <code>Level</code> and <code>Profile</code>. If you specify <code>auto</code>, Elastic
* Transcoder uses the detected bit rate of the input source. If you specify a value other than
* <code>auto</code>, we recommend that you specify a value less than or equal to the maximum
* H.264-compliant value listed for your level and profile:</p>
* <p>
* <i>Level - Maximum video bit rate in kilobits/second (baseline and main Profile) : maximum video bit rate
* in kilobits/second (high Profile)</i>
* </p>
* <ul>
* <li>
* <p>
* 1 - 64 : 80
* </p>
* </li>
* <li>
* <p>
* 1b - 128 : 160
* </p>
* </li>
* <li>
* <p>
* 1.1 - 192 : 240
* </p>
* </li>
* <li>
* <p>
* 1.2 - 384 : 480
* </p>
* </li>
* <li>
* <p>
* 1.3 - 768 : 960
* </p>
* </li>
* <li>
* <p>
* 2 - 2000 : 2500
* </p>
* </li>
* <li>
* <p>
* 3 - 10000 : 12500
* </p>
* </li>
* <li>
* <p>
* 3.1 - 14000 : 17500
* </p>
* </li>
* <li>
* <p>
* 3.2 - 20000 : 25000
* </p>
* </li>
* <li>
* <p>
* 4 - 20000 : 25000
* </p>
* </li>
* <li>
* <p>
* 4.1 - 50000 : 62500
* </p>
* </li>
*/
public String getBitRate() {
return this.bitRate;
}
/**
* <p>
* The bit rate of the video stream in the output file, in kilobits/second. Valid values depend on the values of
* <code>Level</code> and <code>Profile</code>. If you specify <code>auto</code>, Elastic Transcoder uses the
* detected bit rate of the input source. If you specify a value other than <code>auto</code>, we recommend that you
* specify a value less than or equal to the maximum H.264-compliant value listed for your level and profile:
* </p>
* <p>
* <i>Level - Maximum video bit rate in kilobits/second (baseline and main Profile) : maximum video bit rate in
* kilobits/second (high Profile)</i>
* </p>
* <ul>
* <li>
* <p>
* 1 - 64 : 80
* </p>
* </li>
* <li>
* <p>
* 1b - 128 : 160
* </p>
* </li>
* <li>
* <p>
* 1.1 - 192 : 240
* </p>
* </li>
* <li>
* <p>
* 1.2 - 384 : 480
* </p>
* </li>
* <li>
* <p>
* 1.3 - 768 : 960
* </p>
* </li>
* <li>
* <p>
* 2 - 2000 : 2500
* </p>
* </li>
* <li>
* <p>
* 3 - 10000 : 12500
* </p>
* </li>
* <li>
* <p>
* 3.1 - 14000 : 17500
* </p>
* </li>
* <li>
* <p>
* 3.2 - 20000 : 25000
* </p>
* </li>
* <li>
* <p>
* 4 - 20000 : 25000
* </p>
* </li>
* <li>
* <p>
* 4.1 - 50000 : 62500
* </p>
* </li>
* </ul>
*
* @param bitRate
* The bit rate of the video stream in the output file, in kilobits/second. Valid values depend on the values
* of <code>Level</code> and <code>Profile</code>. If you specify <code>auto</code>, Elastic Transcoder uses
* the detected bit rate of the input source. If you specify a value other than <code>auto</code>, we
* recommend that you specify a value less than or equal to the maximum H.264-compliant value listed for your
* level and profile:</p>
* <p>
* <i>Level - Maximum video bit rate in kilobits/second (baseline and main Profile) : maximum video bit rate
* in kilobits/second (high Profile)</i>
* </p>
* <ul>
* <li>
* <p>
* 1 - 64 : 80
* </p>
* </li>
* <li>
* <p>
* 1b - 128 : 160
* </p>
* </li>
* <li>
* <p>
* 1.1 - 192 : 240
* </p>
* </li>
* <li>
* <p>
* 1.2 - 384 : 480
* </p>
* </li>
* <li>
* <p>
* 1.3 - 768 : 960
* </p>
* </li>
* <li>
* <p>
* 2 - 2000 : 2500
* </p>
* </li>
* <li>
* <p>
* 3 - 10000 : 12500
* </p>
* </li>
* <li>
* <p>
* 3.1 - 14000 : 17500
* </p>
* </li>
* <li>
* <p>
* 3.2 - 20000 : 25000
* </p>
* </li>
* <li>
* <p>
* 4 - 20000 : 25000
* </p>
* </li>
* <li>
* <p>
* 4.1 - 50000 : 62500
* </p>
* </li>
* @return Returns a reference to this object so that method calls can be chained together.
*/
public VideoParameters withBitRate(String bitRate) {
setBitRate(bitRate);
return this;
}
/**
* <p>
* The frames per second for the video stream in the output file. Valid values include:
* </p>
* <p>
* <code>auto</code>, <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>,
* <code>29.97</code>, <code>30</code>, <code>60</code>
* </p>
* <p>
* If you specify <code>auto</code>, Elastic Transcoder uses the detected frame rate of the input source. If you
* specify a frame rate, we recommend that you perform the following calculation:
* </p>
* <p>
* <code>Frame rate = maximum recommended decoding speed in luma samples/second / (width in pixels * height in pixels)</code>
* </p>
* <p>
* where:
* </p>
* <ul>
* <li>
* <p>
* <i>width in pixels</i> and <i>height in pixels</i> represent the Resolution of the output video.
* </p>
* </li>
* <li>
* <p>
* <i>maximum recommended decoding speed in Luma samples/second</i> is less than or equal to the maximum value
* listed in the following table, based on the value that you specified for Level.
* </p>
* </li>
* </ul>
* <p>
* The maximum recommended decoding speed in Luma samples/second for each level is described in the following list
* (<i>Level - Decoding speed</i>):
* </p>
* <ul>
* <li>
* <p>
* 1 - 380160
* </p>
* </li>
* <li>
* <p>
* 1b - 380160
* </p>
* </li>
* <li>
* <p>
* 1.1 - 76800
* </p>
* </li>
* <li>
* <p>
* 1.2 - 1536000
* </p>
* </li>
* <li>
* <p>
* 1.3 - 3041280
* </p>
* </li>
* <li>
* <p>
* 2 - 3041280
* </p>
* </li>
* <li>
* <p>
* 2.1 - 5068800
* </p>
* </li>
* <li>
* <p>
* 2.2 - 5184000
* </p>
* </li>
* <li>
* <p>
* 3 - 10368000
* </p>
* </li>
* <li>
* <p>
* 3.1 - 27648000
* </p>
* </li>
* <li>
* <p>
* 3.2 - 55296000
* </p>
* </li>
* <li>
* <p>
* 4 - 62914560
* </p>
* </li>
* <li>
* <p>
* 4.1 - 62914560
* </p>
* </li>
* </ul>
*
* @param frameRate
* The frames per second for the video stream in the output file. Valid values include:</p>
* <p>
* <code>auto</code>, <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>,
* <code>29.97</code>, <code>30</code>, <code>60</code>
* </p>
* <p>
* If you specify <code>auto</code>, Elastic Transcoder uses the detected frame rate of the input source. If
* you specify a frame rate, we recommend that you perform the following calculation:
* </p>
* <p>
* <code>Frame rate = maximum recommended decoding speed in luma samples/second / (width in pixels * height in pixels)</code>
* </p>
* <p>
* where:
* </p>
* <ul>
* <li>
* <p>
* <i>width in pixels</i> and <i>height in pixels</i> represent the Resolution of the output video.
* </p>
* </li>
* <li>
* <p>
* <i>maximum recommended decoding speed in Luma samples/second</i> is less than or equal to the maximum
* value listed in the following table, based on the value that you specified for Level.
* </p>
* </li>
* </ul>
* <p>
* The maximum recommended decoding speed in Luma samples/second for each level is described in the following
* list (<i>Level - Decoding speed</i>):
* </p>
* <ul>
* <li>
* <p>
* 1 - 380160
* </p>
* </li>
* <li>
* <p>
* 1b - 380160
* </p>
* </li>
* <li>
* <p>
* 1.1 - 76800
* </p>
* </li>
* <li>
* <p>
* 1.2 - 1536000
* </p>
* </li>
* <li>
* <p>
* 1.3 - 3041280
* </p>
* </li>
* <li>
* <p>
* 2 - 3041280
* </p>
* </li>
* <li>
* <p>
* 2.1 - 5068800
* </p>
* </li>
* <li>
* <p>
* 2.2 - 5184000
* </p>
* </li>
* <li>
* <p>
* 3 - 10368000
* </p>
* </li>
* <li>
* <p>
* 3.1 - 27648000
* </p>
* </li>
* <li>
* <p>
* 3.2 - 55296000
* </p>
* </li>
* <li>
* <p>
* 4 - 62914560
* </p>
* </li>
* <li>
* <p>
* 4.1 - 62914560
* </p>
* </li>
*/
public void setFrameRate(String frameRate) {
this.frameRate = frameRate;
}
/**
* <p>
* The frames per second for the video stream in the output file. Valid values include:
* </p>
* <p>
* <code>auto</code>, <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>,
* <code>29.97</code>, <code>30</code>, <code>60</code>
* </p>
* <p>
* If you specify <code>auto</code>, Elastic Transcoder uses the detected frame rate of the input source. If you
* specify a frame rate, we recommend that you perform the following calculation:
* </p>
* <p>
* <code>Frame rate = maximum recommended decoding speed in luma samples/second / (width in pixels * height in pixels)</code>
* </p>
* <p>
* where:
* </p>
* <ul>
* <li>
* <p>
* <i>width in pixels</i> and <i>height in pixels</i> represent the Resolution of the output video.
* </p>
* </li>
* <li>
* <p>
* <i>maximum recommended decoding speed in Luma samples/second</i> is less than or equal to the maximum value
* listed in the following table, based on the value that you specified for Level.
* </p>
* </li>
* </ul>
* <p>
* The maximum recommended decoding speed in Luma samples/second for each level is described in the following list
* (<i>Level - Decoding speed</i>):
* </p>
* <ul>
* <li>
* <p>
* 1 - 380160
* </p>
* </li>
* <li>
* <p>
* 1b - 380160
* </p>
* </li>
* <li>
* <p>
* 1.1 - 76800
* </p>
* </li>
* <li>
* <p>
* 1.2 - 1536000
* </p>
* </li>
* <li>
* <p>
* 1.3 - 3041280
* </p>
* </li>
* <li>
* <p>
* 2 - 3041280
* </p>
* </li>
* <li>
* <p>
* 2.1 - 5068800
* </p>
* </li>
* <li>
* <p>
* 2.2 - 5184000
* </p>
* </li>
* <li>
* <p>
* 3 - 10368000
* </p>
* </li>
* <li>
* <p>
* 3.1 - 27648000
* </p>
* </li>
* <li>
* <p>
* 3.2 - 55296000
* </p>
* </li>
* <li>
* <p>
* 4 - 62914560
* </p>
* </li>
* <li>
* <p>
* 4.1 - 62914560
* </p>
* </li>
* </ul>
*
* @return The frames per second for the video stream in the output file. Valid values include:</p>
* <p>
* <code>auto</code>, <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>, <code>30</code>, <code>60</code>
* </p>
* <p>
* If you specify <code>auto</code>, Elastic Transcoder uses the detected frame rate of the input source. If
* you specify a frame rate, we recommend that you perform the following calculation:
* </p>
* <p>
* <code>Frame rate = maximum recommended decoding speed in luma samples/second / (width in pixels * height in pixels)</code>
* </p>
* <p>
* where:
* </p>
* <ul>
* <li>
* <p>
* <i>width in pixels</i> and <i>height in pixels</i> represent the Resolution of the output video.
* </p>
* </li>
* <li>
* <p>
* <i>maximum recommended decoding speed in Luma samples/second</i> is less than or equal to the maximum
* value listed in the following table, based on the value that you specified for Level.
* </p>
* </li>
* </ul>
* <p>
* The maximum recommended decoding speed in Luma samples/second for each level is described in the
* following list (<i>Level - Decoding speed</i>):
* </p>
* <ul>
* <li>
* <p>
* 1 - 380160
* </p>
* </li>
* <li>
* <p>
* 1b - 380160
* </p>
* </li>
* <li>
* <p>
* 1.1 - 76800
* </p>
* </li>
* <li>
* <p>
* 1.2 - 1536000
* </p>
* </li>
* <li>
* <p>
* 1.3 - 3041280
* </p>
* </li>
* <li>
* <p>
* 2 - 3041280
* </p>
* </li>
* <li>
* <p>
* 2.1 - 5068800
* </p>
* </li>
* <li>
* <p>
* 2.2 - 5184000
* </p>
* </li>
* <li>
* <p>
* 3 - 10368000
* </p>
* </li>
* <li>
* <p>
* 3.1 - 27648000
* </p>
* </li>
* <li>
* <p>
* 3.2 - 55296000
* </p>
* </li>
* <li>
* <p>
* 4 - 62914560
* </p>
* </li>
* <li>
* <p>
* 4.1 - 62914560
* </p>
* </li>
*/
public String getFrameRate() {
return this.frameRate;
}
/**
* <p>
* The frames per second for the video stream in the output file. Valid values include:
* </p>
* <p>
* <code>auto</code>, <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>,
* <code>29.97</code>, <code>30</code>, <code>60</code>
* </p>
* <p>
* If you specify <code>auto</code>, Elastic Transcoder uses the detected frame rate of the input source. If you
* specify a frame rate, we recommend that you perform the following calculation:
* </p>
* <p>
* <code>Frame rate = maximum recommended decoding speed in luma samples/second / (width in pixels * height in pixels)</code>
* </p>
* <p>
* where:
* </p>
* <ul>
* <li>
* <p>
* <i>width in pixels</i> and <i>height in pixels</i> represent the Resolution of the output video.
* </p>
* </li>
* <li>
* <p>
* <i>maximum recommended decoding speed in Luma samples/second</i> is less than or equal to the maximum value
* listed in the following table, based on the value that you specified for Level.
* </p>
* </li>
* </ul>
* <p>
* The maximum recommended decoding speed in Luma samples/second for each level is described in the following list
* (<i>Level - Decoding speed</i>):
* </p>
* <ul>
* <li>
* <p>
* 1 - 380160
* </p>
* </li>
* <li>
* <p>
* 1b - 380160
* </p>
* </li>
* <li>
* <p>
* 1.1 - 76800
* </p>
* </li>
* <li>
* <p>
* 1.2 - 1536000
* </p>
* </li>
* <li>
* <p>
* 1.3 - 3041280
* </p>
* </li>
* <li>
* <p>
* 2 - 3041280
* </p>
* </li>
* <li>
* <p>
* 2.1 - 5068800
* </p>
* </li>
* <li>
* <p>
* 2.2 - 5184000
* </p>
* </li>
* <li>
* <p>
* 3 - 10368000
* </p>
* </li>
* <li>
* <p>
* 3.1 - 27648000
* </p>
* </li>
* <li>
* <p>
* 3.2 - 55296000
* </p>
* </li>
* <li>
* <p>
* 4 - 62914560
* </p>
* </li>
* <li>
* <p>
* 4.1 - 62914560
* </p>
* </li>
* </ul>
*
* @param frameRate
* The frames per second for the video stream in the output file. Valid values include:</p>
* <p>
* <code>auto</code>, <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>,
* <code>29.97</code>, <code>30</code>, <code>60</code>
* </p>
* <p>
* If you specify <code>auto</code>, Elastic Transcoder uses the detected frame rate of the input source. If
* you specify a frame rate, we recommend that you perform the following calculation:
* </p>
* <p>
* <code>Frame rate = maximum recommended decoding speed in luma samples/second / (width in pixels * height in pixels)</code>
* </p>
* <p>
* where:
* </p>
* <ul>
* <li>
* <p>
* <i>width in pixels</i> and <i>height in pixels</i> represent the Resolution of the output video.
* </p>
* </li>
* <li>
* <p>
* <i>maximum recommended decoding speed in Luma samples/second</i> is less than or equal to the maximum
* value listed in the following table, based on the value that you specified for Level.
* </p>
* </li>
* </ul>
* <p>
* The maximum recommended decoding speed in Luma samples/second for each level is described in the following
* list (<i>Level - Decoding speed</i>):
* </p>
* <ul>
* <li>
* <p>
* 1 - 380160
* </p>
* </li>
* <li>
* <p>
* 1b - 380160
* </p>
* </li>
* <li>
* <p>
* 1.1 - 76800
* </p>
* </li>
* <li>
* <p>
* 1.2 - 1536000
* </p>
* </li>
* <li>
* <p>
* 1.3 - 3041280
* </p>
* </li>
* <li>
* <p>
* 2 - 3041280
* </p>
* </li>
* <li>
* <p>
* 2.1 - 5068800
* </p>
* </li>
* <li>
* <p>
* 2.2 - 5184000
* </p>
* </li>
* <li>
* <p>
* 3 - 10368000
* </p>
* </li>
* <li>
* <p>
* 3.1 - 27648000
* </p>
* </li>
* <li>
* <p>
* 3.2 - 55296000
* </p>
* </li>
* <li>
* <p>
* 4 - 62914560
* </p>
* </li>
* <li>
* <p>
* 4.1 - 62914560
* </p>
* </li>
* @return Returns a reference to this object so that method calls can be chained together.
*/
public VideoParameters withFrameRate(String frameRate) {
setFrameRate(frameRate);
return this;
}
/**
* <p>
* If you specify <code>auto</code> for <code>FrameRate</code>, Elastic Transcoder uses the frame rate of the input
* video for the frame rate of the output video. Specify the maximum frame rate that you want Elastic Transcoder to
* use when the frame rate of the input video is greater than the desired maximum frame rate of the output video.
* Valid values include: <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>,
* <code>29.97</code>, <code>30</code>, <code>60</code>.
* </p>
*
* @param maxFrameRate
* If you specify <code>auto</code> for <code>FrameRate</code>, Elastic Transcoder uses the frame rate of the
* input video for the frame rate of the output video. Specify the maximum frame rate that you want Elastic
* Transcoder to use when the frame rate of the input video is greater than the desired maximum frame rate of
* the output video. Valid values include: <code>10</code>, <code>15</code>, <code>23.97</code>,
* <code>24</code>, <code>25</code>, <code>29.97</code>, <code>30</code>, <code>60</code>.
*/
public void setMaxFrameRate(String maxFrameRate) {
this.maxFrameRate = maxFrameRate;
}
/**
* <p>
* If you specify <code>auto</code> for <code>FrameRate</code>, Elastic Transcoder uses the frame rate of the input
* video for the frame rate of the output video. Specify the maximum frame rate that you want Elastic Transcoder to
* use when the frame rate of the input video is greater than the desired maximum frame rate of the output video.
* Valid values include: <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>,
* <code>29.97</code>, <code>30</code>, <code>60</code>.
* </p>
*
* @return If you specify <code>auto</code> for <code>FrameRate</code>, Elastic Transcoder uses the frame rate of
* the input video for the frame rate of the output video. Specify the maximum frame rate that you want
* Elastic Transcoder to use when the frame rate of the input video is greater than the desired maximum
* frame rate of the output video. Valid values include: <code>10</code>, <code>15</code>,
* <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>, <code>30</code>,
* <code>60</code>.
*/
public String getMaxFrameRate() {
return this.maxFrameRate;
}
/**
* <p>
* If you specify <code>auto</code> for <code>FrameRate</code>, Elastic Transcoder uses the frame rate of the input
* video for the frame rate of the output video. Specify the maximum frame rate that you want Elastic Transcoder to
* use when the frame rate of the input video is greater than the desired maximum frame rate of the output video.
* Valid values include: <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>,
* <code>29.97</code>, <code>30</code>, <code>60</code>.
* </p>
*
* @param maxFrameRate
* If you specify <code>auto</code> for <code>FrameRate</code>, Elastic Transcoder uses the frame rate of the
* input video for the frame rate of the output video. Specify the maximum frame rate that you want Elastic
* Transcoder to use when the frame rate of the input video is greater than the desired maximum frame rate of
* the output video. Valid values include: <code>10</code>, <code>15</code>, <code>23.97</code>,
* <code>24</code>, <code>25</code>, <code>29.97</code>, <code>30</code>, <code>60</code>.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public VideoParameters withMaxFrameRate(String maxFrameRate) {
setMaxFrameRate(maxFrameRate);
return this;
}
/**
* <important>
* <p>
* To better control resolution and aspect ratio of output videos, we recommend that you use the values
* <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and
* <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups
* of settings are mutually exclusive. Do not use them together.
* </p>
* </important>
* <p>
* The width and height of the video in the output file, in pixels. Valid values are <code>auto</code> and
* <i>width</i> x <i>height</i>:
* </p>
* <ul>
* <li>
* <p>
* <code>auto</code>: Elastic Transcoder attempts to preserve the width and height of the input file, subject to the
* following rules.
* </p>
* </li>
* <li>
* <p>
* <code> <i>width</i> x <i>height</i> </code>: The width and height of the output video in pixels.
* </p>
* </li>
* </ul>
* <p>
* Note the following about specifying the width and height:
* </p>
* <ul>
* <li>
* <p>
* The width must be an even integer between 128 and 4096, inclusive.
* </p>
* </li>
* <li>
* <p>
* The height must be an even integer between 96 and 3072, inclusive.
* </p>
* </li>
* <li>
* <p>
* If you specify a resolution that is less than the resolution of the input file, Elastic Transcoder rescales the
* output file to the lower resolution.
* </p>
* </li>
* <li>
* <p>
* If you specify a resolution that is greater than the resolution of the input file, Elastic Transcoder rescales
* the output to the higher resolution.
* </p>
* </li>
* <li>
* <p>
* We recommend that you specify a resolution for which the product of width and height is less than or equal to the
* applicable value in the following list (<i>List - Max width x height value</i>):
* </p>
* <ul>
* <li>
* <p>
* 1 - 25344
* </p>
* </li>
* <li>
* <p>
* 1b - 25344
* </p>
* </li>
* <li>
* <p>
* 1.1 - 101376
* </p>
* </li>
* <li>
* <p>
* 1.2 - 101376
* </p>
* </li>
* <li>
* <p>
* 1.3 - 101376
* </p>
* </li>
* <li>
* <p>
* 2 - 101376
* </p>
* </li>
* <li>
* <p>
* 2.1 - 202752
* </p>
* </li>
* <li>
* <p>
* 2.2 - 404720
* </p>
* </li>
* <li>
* <p>
* 3 - 404720
* </p>
* </li>
* <li>
* <p>
* 3.1 - 921600
* </p>
* </li>
* <li>
* <p>
* 3.2 - 1310720
* </p>
* </li>
* <li>
* <p>
* 4 - 2097152
* </p>
* </li>
* <li>
* <p>
* 4.1 - 2097152
* </p>
* </li>
* </ul>
* </li>
* </ul>
*
* @param resolution
* <p>
* To better control resolution and aspect ratio of output videos, we recommend that you use the values
* <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and
* <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two
* groups of settings are mutually exclusive. Do not use them together.
* </p>
* </important>
* <p>
* The width and height of the video in the output file, in pixels. Valid values are <code>auto</code> and
* <i>width</i> x <i>height</i>:
* </p>
* <ul>
* <li>
* <p>
* <code>auto</code>: Elastic Transcoder attempts to preserve the width and height of the input file, subject
* to the following rules.
* </p>
* </li>
* <li>
* <p>
* <code> <i>width</i> x <i>height</i> </code>: The width and height of the output video in pixels.
* </p>
* </li>
* </ul>
* <p>
* Note the following about specifying the width and height:
* </p>
* <ul>
* <li>
* <p>
* The width must be an even integer between 128 and 4096, inclusive.
* </p>
* </li>
* <li>
* <p>
* The height must be an even integer between 96 and 3072, inclusive.
* </p>
* </li>
* <li>
* <p>
* If you specify a resolution that is less than the resolution of the input file, Elastic Transcoder
* rescales the output file to the lower resolution.
* </p>
* </li>
* <li>
* <p>
* If you specify a resolution that is greater than the resolution of the input file, Elastic Transcoder
* rescales the output to the higher resolution.
* </p>
* </li>
* <li>
* <p>
* We recommend that you specify a resolution for which the product of width and height is less than or equal
* to the applicable value in the following list (<i>List - Max width x height value</i>):
* </p>
* <ul>
* <li>
* <p>
* 1 - 25344
* </p>
* </li>
* <li>
* <p>
* 1b - 25344
* </p>
* </li>
* <li>
* <p>
* 1.1 - 101376
* </p>
* </li>
* <li>
* <p>
* 1.2 - 101376
* </p>
* </li>
* <li>
* <p>
* 1.3 - 101376
* </p>
* </li>
* <li>
* <p>
* 2 - 101376
* </p>
* </li>
* <li>
* <p>
* 2.1 - 202752
* </p>
* </li>
* <li>
* <p>
* 2.2 - 404720
* </p>
* </li>
* <li>
* <p>
* 3 - 404720
* </p>
* </li>
* <li>
* <p>
* 3.1 - 921600
* </p>
* </li>
* <li>
* <p>
* 3.2 - 1310720
* </p>
* </li>
* <li>
* <p>
* 4 - 2097152
* </p>
* </li>
* <li>
* <p>
* 4.1 - 2097152
* </p>
* </li>
* </ul>
* </li>
*/
public void setResolution(String resolution) {
this.resolution = resolution;
}
/**
* <important>
* <p>
* To better control resolution and aspect ratio of output videos, we recommend that you use the values
* <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and
* <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups
* of settings are mutually exclusive. Do not use them together.
* </p>
* </important>
* <p>
* The width and height of the video in the output file, in pixels. Valid values are <code>auto</code> and
* <i>width</i> x <i>height</i>:
* </p>
* <ul>
* <li>
* <p>
* <code>auto</code>: Elastic Transcoder attempts to preserve the width and height of the input file, subject to the
* following rules.
* </p>
* </li>
* <li>
* <p>
* <code> <i>width</i> x <i>height</i> </code>: The width and height of the output video in pixels.
* </p>
* </li>
* </ul>
* <p>
* Note the following about specifying the width and height:
* </p>
* <ul>
* <li>
* <p>
* The width must be an even integer between 128 and 4096, inclusive.
* </p>
* </li>
* <li>
* <p>
* The height must be an even integer between 96 and 3072, inclusive.
* </p>
* </li>
* <li>
* <p>
* If you specify a resolution that is less than the resolution of the input file, Elastic Transcoder rescales the
* output file to the lower resolution.
* </p>
* </li>
* <li>
* <p>
* If you specify a resolution that is greater than the resolution of the input file, Elastic Transcoder rescales
* the output to the higher resolution.
* </p>
* </li>
* <li>
* <p>
* We recommend that you specify a resolution for which the product of width and height is less than or equal to the
* applicable value in the following list (<i>List - Max width x height value</i>):
* </p>
* <ul>
* <li>
* <p>
* 1 - 25344
* </p>
* </li>
* <li>
* <p>
* 1b - 25344
* </p>
* </li>
* <li>
* <p>
* 1.1 - 101376
* </p>
* </li>
* <li>
* <p>
* 1.2 - 101376
* </p>
* </li>
* <li>
* <p>
* 1.3 - 101376
* </p>
* </li>
* <li>
* <p>
* 2 - 101376
* </p>
* </li>
* <li>
* <p>
* 2.1 - 202752
* </p>
* </li>
* <li>
* <p>
* 2.2 - 404720
* </p>
* </li>
* <li>
* <p>
* 3 - 404720
* </p>
* </li>
* <li>
* <p>
* 3.1 - 921600
* </p>
* </li>
* <li>
* <p>
* 3.2 - 1310720
* </p>
* </li>
* <li>
* <p>
* 4 - 2097152
* </p>
* </li>
* <li>
* <p>
* 4.1 - 2097152
* </p>
* </li>
* </ul>
* </li>
* </ul>
*
* @return <p>
* To better control resolution and aspect ratio of output videos, we recommend that you use the values
* <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and
* <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two
* groups of settings are mutually exclusive. Do not use them together.
* </p>
* </important>
* <p>
* The width and height of the video in the output file, in pixels. Valid values are <code>auto</code> and
* <i>width</i> x <i>height</i>:
* </p>
* <ul>
* <li>
* <p>
* <code>auto</code>: Elastic Transcoder attempts to preserve the width and height of the input file,
* subject to the following rules.
* </p>
* </li>
* <li>
* <p>
* <code> <i>width</i> x <i>height</i> </code>: The width and height of the output video in pixels.
* </p>
* </li>
* </ul>
* <p>
* Note the following about specifying the width and height:
* </p>
* <ul>
* <li>
* <p>
* The width must be an even integer between 128 and 4096, inclusive.
* </p>
* </li>
* <li>
* <p>
* The height must be an even integer between 96 and 3072, inclusive.
* </p>
* </li>
* <li>
* <p>
* If you specify a resolution that is less than the resolution of the input file, Elastic Transcoder
* rescales the output file to the lower resolution.
* </p>
* </li>
* <li>
* <p>
* If you specify a resolution that is greater than the resolution of the input file, Elastic Transcoder
* rescales the output to the higher resolution.
* </p>
* </li>
* <li>
* <p>
* We recommend that you specify a resolution for which the product of width and height is less than or
* equal to the applicable value in the following list (<i>List - Max width x height value</i>):
* </p>
* <ul>
* <li>
* <p>
* 1 - 25344
* </p>
* </li>
* <li>
* <p>
* 1b - 25344
* </p>
* </li>
* <li>
* <p>
* 1.1 - 101376
* </p>
* </li>
* <li>
* <p>
* 1.2 - 101376
* </p>
* </li>
* <li>
* <p>
* 1.3 - 101376
* </p>
* </li>
* <li>
* <p>
* 2 - 101376
* </p>
* </li>
* <li>
* <p>
* 2.1 - 202752
* </p>
* </li>
* <li>
* <p>
* 2.2 - 404720
* </p>
* </li>
* <li>
* <p>
* 3 - 404720
* </p>
* </li>
* <li>
* <p>
* 3.1 - 921600
* </p>
* </li>
* <li>
* <p>
* 3.2 - 1310720
* </p>
* </li>
* <li>
* <p>
* 4 - 2097152
* </p>
* </li>
* <li>
* <p>
* 4.1 - 2097152
* </p>
* </li>
* </ul>
* </li>
*/
public String getResolution() {
return this.resolution;
}
/**
* <important>
* <p>
* To better control resolution and aspect ratio of output videos, we recommend that you use the values
* <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and
* <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups
* of settings are mutually exclusive. Do not use them together.
* </p>
* </important>
* <p>
* The width and height of the video in the output file, in pixels. Valid values are <code>auto</code> and
* <i>width</i> x <i>height</i>:
* </p>
* <ul>
* <li>
* <p>
* <code>auto</code>: Elastic Transcoder attempts to preserve the width and height of the input file, subject to the
* following rules.
* </p>
* </li>
* <li>
* <p>
* <code> <i>width</i> x <i>height</i> </code>: The width and height of the output video in pixels.
* </p>
* </li>
* </ul>
* <p>
* Note the following about specifying the width and height:
* </p>
* <ul>
* <li>
* <p>
* The width must be an even integer between 128 and 4096, inclusive.
* </p>
* </li>
* <li>
* <p>
* The height must be an even integer between 96 and 3072, inclusive.
* </p>
* </li>
* <li>
* <p>
* If you specify a resolution that is less than the resolution of the input file, Elastic Transcoder rescales the
* output file to the lower resolution.
* </p>
* </li>
* <li>
* <p>
* If you specify a resolution that is greater than the resolution of the input file, Elastic Transcoder rescales
* the output to the higher resolution.
* </p>
* </li>
* <li>
* <p>
* We recommend that you specify a resolution for which the product of width and height is less than or equal to the
* applicable value in the following list (<i>List - Max width x height value</i>):
* </p>
* <ul>
* <li>
* <p>
* 1 - 25344
* </p>
* </li>
* <li>
* <p>
* 1b - 25344
* </p>
* </li>
* <li>
* <p>
* 1.1 - 101376
* </p>
* </li>
* <li>
* <p>
* 1.2 - 101376
* </p>
* </li>
* <li>
* <p>
* 1.3 - 101376
* </p>
* </li>
* <li>
* <p>
* 2 - 101376
* </p>
* </li>
* <li>
* <p>
* 2.1 - 202752
* </p>
* </li>
* <li>
* <p>
* 2.2 - 404720
* </p>
* </li>
* <li>
* <p>
* 3 - 404720
* </p>
* </li>
* <li>
* <p>
* 3.1 - 921600
* </p>
* </li>
* <li>
* <p>
* 3.2 - 1310720
* </p>
* </li>
* <li>
* <p>
* 4 - 2097152
* </p>
* </li>
* <li>
* <p>
* 4.1 - 2097152
* </p>
* </li>
* </ul>
* </li>
* </ul>
*
* @param resolution
* <p>
* To better control resolution and aspect ratio of output videos, we recommend that you use the values
* <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and
* <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two
* groups of settings are mutually exclusive. Do not use them together.
* </p>
* </important>
* <p>
* The width and height of the video in the output file, in pixels. Valid values are <code>auto</code> and
* <i>width</i> x <i>height</i>:
* </p>
* <ul>
* <li>
* <p>
* <code>auto</code>: Elastic Transcoder attempts to preserve the width and height of the input file, subject
* to the following rules.
* </p>
* </li>
* <li>
* <p>
* <code> <i>width</i> x <i>height</i> </code>: The width and height of the output video in pixels.
* </p>
* </li>
* </ul>
* <p>
* Note the following about specifying the width and height:
* </p>
* <ul>
* <li>
* <p>
* The width must be an even integer between 128 and 4096, inclusive.
* </p>
* </li>
* <li>
* <p>
* The height must be an even integer between 96 and 3072, inclusive.
* </p>
* </li>
* <li>
* <p>
* If you specify a resolution that is less than the resolution of the input file, Elastic Transcoder
* rescales the output file to the lower resolution.
* </p>
* </li>
* <li>
* <p>
* If you specify a resolution that is greater than the resolution of the input file, Elastic Transcoder
* rescales the output to the higher resolution.
* </p>
* </li>
* <li>
* <p>
* We recommend that you specify a resolution for which the product of width and height is less than or equal
* to the applicable value in the following list (<i>List - Max width x height value</i>):
* </p>
* <ul>
* <li>
* <p>
* 1 - 25344
* </p>
* </li>
* <li>
* <p>
* 1b - 25344
* </p>
* </li>
* <li>
* <p>
* 1.1 - 101376
* </p>
* </li>
* <li>
* <p>
* 1.2 - 101376
* </p>
* </li>
* <li>
* <p>
* 1.3 - 101376
* </p>
* </li>
* <li>
* <p>
* 2 - 101376
* </p>
* </li>
* <li>
* <p>
* 2.1 - 202752
* </p>
* </li>
* <li>
* <p>
* 2.2 - 404720
* </p>
* </li>
* <li>
* <p>
* 3 - 404720
* </p>
* </li>
* <li>
* <p>
* 3.1 - 921600
* </p>
* </li>
* <li>
* <p>
* 3.2 - 1310720
* </p>
* </li>
* <li>
* <p>
* 4 - 2097152
* </p>
* </li>
* <li>
* <p>
* 4.1 - 2097152
* </p>
* </li>
* </ul>
* </li>
* @return Returns a reference to this object so that method calls can be chained together.
*/
public VideoParameters withResolution(String resolution) {
setResolution(resolution);
return this;
}
/**
* <important>
* <p>
* To better control resolution and aspect ratio of output videos, we recommend that you use the values
* <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and
* <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups
* of settings are mutually exclusive. Do not use them together.
* </p>
* </important>
* <p>
* The display aspect ratio of the video in the output file. Valid values include:
* </p>
* <p>
* <code>auto</code>, <code>1:1</code>, <code>4:3</code>, <code>3:2</code>, <code>16:9</code>
* </p>
* <p>
* If you specify <code>auto</code>, Elastic Transcoder tries to preserve the aspect ratio of the input file.
* </p>
* <p>
* If you specify an aspect ratio for the output file that differs from aspect ratio of the input file, Elastic
* Transcoder adds pillarboxing (black bars on the sides) or letterboxing (black bars on the top and bottom) to
* maintain the aspect ratio of the active region of the video.
* </p>
*
* @param aspectRatio
* <p>
* To better control resolution and aspect ratio of output videos, we recommend that you use the values
* <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and
* <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two
* groups of settings are mutually exclusive. Do not use them together.
* </p>
* </important>
* <p>
* The display aspect ratio of the video in the output file. Valid values include:
* </p>
* <p>
* <code>auto</code>, <code>1:1</code>, <code>4:3</code>, <code>3:2</code>, <code>16:9</code>
* </p>
* <p>
* If you specify <code>auto</code>, Elastic Transcoder tries to preserve the aspect ratio of the input file.
* </p>
* <p>
* If you specify an aspect ratio for the output file that differs from aspect ratio of the input file,
* Elastic Transcoder adds pillarboxing (black bars on the sides) or letterboxing (black bars on the top and
* bottom) to maintain the aspect ratio of the active region of the video.
*/
public void setAspectRatio(String aspectRatio) {
this.aspectRatio = aspectRatio;
}
/**
* <important>
* <p>
* To better control resolution and aspect ratio of output videos, we recommend that you use the values
* <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and
* <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups
* of settings are mutually exclusive. Do not use them together.
* </p>
* </important>
* <p>
* The display aspect ratio of the video in the output file. Valid values include:
* </p>
* <p>
* <code>auto</code>, <code>1:1</code>, <code>4:3</code>, <code>3:2</code>, <code>16:9</code>
* </p>
* <p>
* If you specify <code>auto</code>, Elastic Transcoder tries to preserve the aspect ratio of the input file.
* </p>
* <p>
* If you specify an aspect ratio for the output file that differs from aspect ratio of the input file, Elastic
* Transcoder adds pillarboxing (black bars on the sides) or letterboxing (black bars on the top and bottom) to
* maintain the aspect ratio of the active region of the video.
* </p>
*
* @return <p>
* To better control resolution and aspect ratio of output videos, we recommend that you use the values
* <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and
* <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two
* groups of settings are mutually exclusive. Do not use them together.
* </p>
* </important>
* <p>
* The display aspect ratio of the video in the output file. Valid values include:
* </p>
* <p>
* <code>auto</code>, <code>1:1</code>, <code>4:3</code>, <code>3:2</code>, <code>16:9</code>
* </p>
* <p>
* If you specify <code>auto</code>, Elastic Transcoder tries to preserve the aspect ratio of the input
* file.
* </p>
* <p>
* If you specify an aspect ratio for the output file that differs from aspect ratio of the input file,
* Elastic Transcoder adds pillarboxing (black bars on the sides) or letterboxing (black bars on the top and
* bottom) to maintain the aspect ratio of the active region of the video.
*/
public String getAspectRatio() {
return this.aspectRatio;
}
/**
* <important>
* <p>
* To better control resolution and aspect ratio of output videos, we recommend that you use the values
* <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and
* <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups
* of settings are mutually exclusive. Do not use them together.
* </p>
* </important>
* <p>
* The display aspect ratio of the video in the output file. Valid values include:
* </p>
* <p>
* <code>auto</code>, <code>1:1</code>, <code>4:3</code>, <code>3:2</code>, <code>16:9</code>
* </p>
* <p>
* If you specify <code>auto</code>, Elastic Transcoder tries to preserve the aspect ratio of the input file.
* </p>
* <p>
* If you specify an aspect ratio for the output file that differs from aspect ratio of the input file, Elastic
* Transcoder adds pillarboxing (black bars on the sides) or letterboxing (black bars on the top and bottom) to
* maintain the aspect ratio of the active region of the video.
* </p>
*
* @param aspectRatio
* <p>
* To better control resolution and aspect ratio of output videos, we recommend that you use the values
* <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and
* <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two
* groups of settings are mutually exclusive. Do not use them together.
* </p>
* </important>
* <p>
* The display aspect ratio of the video in the output file. Valid values include:
* </p>
* <p>
* <code>auto</code>, <code>1:1</code>, <code>4:3</code>, <code>3:2</code>, <code>16:9</code>
* </p>
* <p>
* If you specify <code>auto</code>, Elastic Transcoder tries to preserve the aspect ratio of the input file.
* </p>
* <p>
* If you specify an aspect ratio for the output file that differs from aspect ratio of the input file,
* Elastic Transcoder adds pillarboxing (black bars on the sides) or letterboxing (black bars on the top and
* bottom) to maintain the aspect ratio of the active region of the video.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public VideoParameters withAspectRatio(String aspectRatio) {
setAspectRatio(aspectRatio);
return this;
}
/**
* <p>
* The maximum width of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder uses 1920
* (Full HD) as the default value. If you specify a numeric value, enter an even integer between 128 and 4096.
* </p>
*
* @param maxWidth
* The maximum width of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder uses
* 1920 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 128 and
* 4096.
*/
public void setMaxWidth(String maxWidth) {
this.maxWidth = maxWidth;
}
/**
* <p>
* The maximum width of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder uses 1920
* (Full HD) as the default value. If you specify a numeric value, enter an even integer between 128 and 4096.
* </p>
*
* @return The maximum width of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder
* uses 1920 (Full HD) as the default value. If you specify a numeric value, enter an even integer between
* 128 and 4096.
*/
public String getMaxWidth() {
return this.maxWidth;
}
/**
* <p>
* The maximum width of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder uses 1920
* (Full HD) as the default value. If you specify a numeric value, enter an even integer between 128 and 4096.
* </p>
*
* @param maxWidth
* The maximum width of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder uses
* 1920 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 128 and
* 4096.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public VideoParameters withMaxWidth(String maxWidth) {
setMaxWidth(maxWidth);
return this;
}
/**
* <p>
* The maximum height of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder uses 1080
* (Full HD) as the default value. If you specify a numeric value, enter an even integer between 96 and 3072.
* </p>
*
* @param maxHeight
* The maximum height of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder
* uses 1080 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 96
* and 3072.
*/
public void setMaxHeight(String maxHeight) {
this.maxHeight = maxHeight;
}
/**
* <p>
* The maximum height of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder uses 1080
* (Full HD) as the default value. If you specify a numeric value, enter an even integer between 96 and 3072.
* </p>
*
* @return The maximum height of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder
* uses 1080 (Full HD) as the default value. If you specify a numeric value, enter an even integer between
* 96 and 3072.
*/
public String getMaxHeight() {
return this.maxHeight;
}
/**
* <p>
* The maximum height of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder uses 1080
* (Full HD) as the default value. If you specify a numeric value, enter an even integer between 96 and 3072.
* </p>
*
* @param maxHeight
* The maximum height of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder
* uses 1080 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 96
* and 3072.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public VideoParameters withMaxHeight(String maxHeight) {
setMaxHeight(maxHeight);
return this;
}
/**
* <p>
* The value that Elastic Transcoder adds to the metadata in the output file.
* </p>
*
* @param displayAspectRatio
* The value that Elastic Transcoder adds to the metadata in the output file.
*/
public void setDisplayAspectRatio(String displayAspectRatio) {
this.displayAspectRatio = displayAspectRatio;
}
/**
* <p>
* The value that Elastic Transcoder adds to the metadata in the output file.
* </p>
*
* @return The value that Elastic Transcoder adds to the metadata in the output file.
*/
public String getDisplayAspectRatio() {
return this.displayAspectRatio;
}
/**
* <p>
* The value that Elastic Transcoder adds to the metadata in the output file.
* </p>
*
* @param displayAspectRatio
* The value that Elastic Transcoder adds to the metadata in the output file.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public VideoParameters withDisplayAspectRatio(String displayAspectRatio) {
setDisplayAspectRatio(displayAspectRatio);
return this;
}
/**
* <p>
* Specify one of the following values to control scaling of the output video:
* </p>
* <ul>
* <li>
* <p>
* <code>Fit</code>: Elastic Transcoder scales the output video so it matches the value that you specified in either
* <code>MaxWidth</code> or <code>MaxHeight</code> without exceeding the other value.
* </p>
* </li>
* <li>
* <p>
* <code>Fill</code>: Elastic Transcoder scales the output video so it matches the value that you specified in
* either <code>MaxWidth</code> or <code>MaxHeight</code> and matches or exceeds the other value. Elastic Transcoder
* centers the output video and then crops it in the dimension (if any) that exceeds the maximum value.
* </p>
* </li>
* <li>
* <p>
* <code>Stretch</code>: Elastic Transcoder stretches the output video to match the values that you specified for
* <code>MaxWidth</code> and <code>MaxHeight</code>. If the relative proportions of the input video and the output
* video are different, the output video will be distorted.
* </p>
* </li>
* <li>
* <p>
* <code>Keep</code>: Elastic Transcoder does not scale the output video. If either dimension of the input video
* exceeds the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>, Elastic Transcoder
* crops the output video.
* </p>
* </li>
* <li>
* <p>
* <code>ShrinkToFit</code>: Elastic Transcoder scales the output video down so that its dimensions match the values
* that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without exceeding either
* value. If you specify this option, Elastic Transcoder does not scale the video up.
* </p>
* </li>
* <li>
* <p>
* <code>ShrinkToFill</code>: Elastic Transcoder scales the output video down so that its dimensions match the
* values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without dropping
* below either value. If you specify this option, Elastic Transcoder does not scale the video up.
* </p>
* </li>
* </ul>
*
* @param sizingPolicy
* Specify one of the following values to control scaling of the output video:</p>
* <ul>
* <li>
* <p>
* <code>Fit</code>: Elastic Transcoder scales the output video so it matches the value that you specified in
* either <code>MaxWidth</code> or <code>MaxHeight</code> without exceeding the other value.
* </p>
* </li>
* <li>
* <p>
* <code>Fill</code>: Elastic Transcoder scales the output video so it matches the value that you specified
* in either <code>MaxWidth</code> or <code>MaxHeight</code> and matches or exceeds the other value. Elastic
* Transcoder centers the output video and then crops it in the dimension (if any) that exceeds the maximum
* value.
* </p>
* </li>
* <li>
* <p>
* <code>Stretch</code>: Elastic Transcoder stretches the output video to match the values that you specified
* for <code>MaxWidth</code> and <code>MaxHeight</code>. If the relative proportions of the input video and
* the output video are different, the output video will be distorted.
* </p>
* </li>
* <li>
* <p>
* <code>Keep</code>: Elastic Transcoder does not scale the output video. If either dimension of the input
* video exceeds the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>, Elastic
* Transcoder crops the output video.
* </p>
* </li>
* <li>
* <p>
* <code>ShrinkToFit</code>: Elastic Transcoder scales the output video down so that its dimensions match the
* values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without
* exceeding either value. If you specify this option, Elastic Transcoder does not scale the video up.
* </p>
* </li>
* <li>
* <p>
* <code>ShrinkToFill</code>: Elastic Transcoder scales the output video down so that its dimensions match
* the values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without
* dropping below either value. If you specify this option, Elastic Transcoder does not scale the video up.
* </p>
* </li>
*/
public void setSizingPolicy(String sizingPolicy) {
this.sizingPolicy = sizingPolicy;
}
/**
* <p>
* Specify one of the following values to control scaling of the output video:
* </p>
* <ul>
* <li>
* <p>
* <code>Fit</code>: Elastic Transcoder scales the output video so it matches the value that you specified in either
* <code>MaxWidth</code> or <code>MaxHeight</code> without exceeding the other value.
* </p>
* </li>
* <li>
* <p>
* <code>Fill</code>: Elastic Transcoder scales the output video so it matches the value that you specified in
* either <code>MaxWidth</code> or <code>MaxHeight</code> and matches or exceeds the other value. Elastic Transcoder
* centers the output video and then crops it in the dimension (if any) that exceeds the maximum value.
* </p>
* </li>
* <li>
* <p>
* <code>Stretch</code>: Elastic Transcoder stretches the output video to match the values that you specified for
* <code>MaxWidth</code> and <code>MaxHeight</code>. If the relative proportions of the input video and the output
* video are different, the output video will be distorted.
* </p>
* </li>
* <li>
* <p>
* <code>Keep</code>: Elastic Transcoder does not scale the output video. If either dimension of the input video
* exceeds the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>, Elastic Transcoder
* crops the output video.
* </p>
* </li>
* <li>
* <p>
* <code>ShrinkToFit</code>: Elastic Transcoder scales the output video down so that its dimensions match the values
* that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without exceeding either
* value. If you specify this option, Elastic Transcoder does not scale the video up.
* </p>
* </li>
* <li>
* <p>
* <code>ShrinkToFill</code>: Elastic Transcoder scales the output video down so that its dimensions match the
* values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without dropping
* below either value. If you specify this option, Elastic Transcoder does not scale the video up.
* </p>
* </li>
* </ul>
*
* @return Specify one of the following values to control scaling of the output video:</p>
* <ul>
* <li>
* <p>
* <code>Fit</code>: Elastic Transcoder scales the output video so it matches the value that you specified
* in either <code>MaxWidth</code> or <code>MaxHeight</code> without exceeding the other value.
* </p>
* </li>
* <li>
* <p>
* <code>Fill</code>: Elastic Transcoder scales the output video so it matches the value that you specified
* in either <code>MaxWidth</code> or <code>MaxHeight</code> and matches or exceeds the other value. Elastic
* Transcoder centers the output video and then crops it in the dimension (if any) that exceeds the maximum
* value.
* </p>
* </li>
* <li>
* <p>
* <code>Stretch</code>: Elastic Transcoder stretches the output video to match the values that you
* specified for <code>MaxWidth</code> and <code>MaxHeight</code>. If the relative proportions of the input
* video and the output video are different, the output video will be distorted.
* </p>
* </li>
* <li>
* <p>
* <code>Keep</code>: Elastic Transcoder does not scale the output video. If either dimension of the input
* video exceeds the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>, Elastic
* Transcoder crops the output video.
* </p>
* </li>
* <li>
* <p>
* <code>ShrinkToFit</code>: Elastic Transcoder scales the output video down so that its dimensions match
* the values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code>
* without exceeding either value. If you specify this option, Elastic Transcoder does not scale the video
* up.
* </p>
* </li>
* <li>
* <p>
* <code>ShrinkToFill</code>: Elastic Transcoder scales the output video down so that its dimensions match
* the values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code>
* without dropping below either value. If you specify this option, Elastic Transcoder does not scale the
* video up.
* </p>
* </li>
*/
public String getSizingPolicy() {
return this.sizingPolicy;
}
/**
* <p>
* Specify one of the following values to control scaling of the output video:
* </p>
* <ul>
* <li>
* <p>
* <code>Fit</code>: Elastic Transcoder scales the output video so it matches the value that you specified in either
* <code>MaxWidth</code> or <code>MaxHeight</code> without exceeding the other value.
* </p>
* </li>
* <li>
* <p>
* <code>Fill</code>: Elastic Transcoder scales the output video so it matches the value that you specified in
* either <code>MaxWidth</code> or <code>MaxHeight</code> and matches or exceeds the other value. Elastic Transcoder
* centers the output video and then crops it in the dimension (if any) that exceeds the maximum value.
* </p>
* </li>
* <li>
* <p>
* <code>Stretch</code>: Elastic Transcoder stretches the output video to match the values that you specified for
* <code>MaxWidth</code> and <code>MaxHeight</code>. If the relative proportions of the input video and the output
* video are different, the output video will be distorted.
* </p>
* </li>
* <li>
* <p>
* <code>Keep</code>: Elastic Transcoder does not scale the output video. If either dimension of the input video
* exceeds the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>, Elastic Transcoder
* crops the output video.
* </p>
* </li>
* <li>
* <p>
* <code>ShrinkToFit</code>: Elastic Transcoder scales the output video down so that its dimensions match the values
* that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without exceeding either
* value. If you specify this option, Elastic Transcoder does not scale the video up.
* </p>
* </li>
* <li>
* <p>
* <code>ShrinkToFill</code>: Elastic Transcoder scales the output video down so that its dimensions match the
* values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without dropping
* below either value. If you specify this option, Elastic Transcoder does not scale the video up.
* </p>
* </li>
* </ul>
*
* @param sizingPolicy
* Specify one of the following values to control scaling of the output video:</p>
* <ul>
* <li>
* <p>
* <code>Fit</code>: Elastic Transcoder scales the output video so it matches the value that you specified in
* either <code>MaxWidth</code> or <code>MaxHeight</code> without exceeding the other value.
* </p>
* </li>
* <li>
* <p>
* <code>Fill</code>: Elastic Transcoder scales the output video so it matches the value that you specified
* in either <code>MaxWidth</code> or <code>MaxHeight</code> and matches or exceeds the other value. Elastic
* Transcoder centers the output video and then crops it in the dimension (if any) that exceeds the maximum
* value.
* </p>
* </li>
* <li>
* <p>
* <code>Stretch</code>: Elastic Transcoder stretches the output video to match the values that you specified
* for <code>MaxWidth</code> and <code>MaxHeight</code>. If the relative proportions of the input video and
* the output video are different, the output video will be distorted.
* </p>
* </li>
* <li>
* <p>
* <code>Keep</code>: Elastic Transcoder does not scale the output video. If either dimension of the input
* video exceeds the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>, Elastic
* Transcoder crops the output video.
* </p>
* </li>
* <li>
* <p>
* <code>ShrinkToFit</code>: Elastic Transcoder scales the output video down so that its dimensions match the
* values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without
* exceeding either value. If you specify this option, Elastic Transcoder does not scale the video up.
* </p>
* </li>
* <li>
* <p>
* <code>ShrinkToFill</code>: Elastic Transcoder scales the output video down so that its dimensions match
* the values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without
* dropping below either value. If you specify this option, Elastic Transcoder does not scale the video up.
* </p>
* </li>
* @return Returns a reference to this object so that method calls can be chained together.
*/
public VideoParameters withSizingPolicy(String sizingPolicy) {
setSizingPolicy(sizingPolicy);
return this;
}
/**
* <p>
* When you set <code>PaddingPolicy</code> to <code>Pad</code>, Elastic Transcoder may add black bars to the top and
* bottom and/or left and right sides of the output video to make the total size of the output video match the
* values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>.
* </p>
*
* @param paddingPolicy
* When you set <code>PaddingPolicy</code> to <code>Pad</code>, Elastic Transcoder may add black bars to the
* top and bottom and/or left and right sides of the output video to make the total size of the output video
* match the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>.
*/
public void setPaddingPolicy(String paddingPolicy) {
this.paddingPolicy = paddingPolicy;
}
/**
* <p>
* When you set <code>PaddingPolicy</code> to <code>Pad</code>, Elastic Transcoder may add black bars to the top and
* bottom and/or left and right sides of the output video to make the total size of the output video match the
* values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>.
* </p>
*
* @return When you set <code>PaddingPolicy</code> to <code>Pad</code>, Elastic Transcoder may add black bars to the
* top and bottom and/or left and right sides of the output video to make the total size of the output video
* match the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>.
*/
public String getPaddingPolicy() {
return this.paddingPolicy;
}
/**
* <p>
* When you set <code>PaddingPolicy</code> to <code>Pad</code>, Elastic Transcoder may add black bars to the top and
* bottom and/or left and right sides of the output video to make the total size of the output video match the
* values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>.
* </p>
*
* @param paddingPolicy
* When you set <code>PaddingPolicy</code> to <code>Pad</code>, Elastic Transcoder may add black bars to the
* top and bottom and/or left and right sides of the output video to make the total size of the output video
* match the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public VideoParameters withPaddingPolicy(String paddingPolicy) {
setPaddingPolicy(paddingPolicy);
return this;
}
/**
* <p>
* Settings for the size, location, and opacity of graphics that you want Elastic Transcoder to overlay over videos
* that are transcoded using this preset. You can specify settings for up to four watermarks. Watermarks appear in
* the specified size and location, and with the specified opacity for the duration of the transcoded video.
* </p>
* <p>
* Watermarks can be in .png or .jpg format. If you want to display a watermark that is not rectangular, use the
* .png format, which supports transparency.
* </p>
* <p>
* When you create a job that uses this preset, you specify the .png or .jpg graphics that you want Elastic
* Transcoder to include in the transcoded videos. You can specify fewer graphics in the job than you specify
* watermark settings in the preset, which allows you to use the same preset for up to four watermarks that have
* different dimensions.
* </p>
*
* @return Settings for the size, location, and opacity of graphics that you want Elastic Transcoder to overlay over
* videos that are transcoded using this preset. You can specify settings for up to four watermarks.
* Watermarks appear in the specified size and location, and with the specified opacity for the duration of
* the transcoded video.</p>
* <p>
* Watermarks can be in .png or .jpg format. If you want to display a watermark that is not rectangular, use
* the .png format, which supports transparency.
* </p>
* <p>
* When you create a job that uses this preset, you specify the .png or .jpg graphics that you want Elastic
* Transcoder to include in the transcoded videos. You can specify fewer graphics in the job than you
* specify watermark settings in the preset, which allows you to use the same preset for up to four
* watermarks that have different dimensions.
*/
public java.util.List<PresetWatermark> getWatermarks() {
if (watermarks == null) {
watermarks = new com.amazonaws.internal.SdkInternalList<PresetWatermark>();
}
return watermarks;
}
/**
* <p>
* Settings for the size, location, and opacity of graphics that you want Elastic Transcoder to overlay over videos
* that are transcoded using this preset. You can specify settings for up to four watermarks. Watermarks appear in
* the specified size and location, and with the specified opacity for the duration of the transcoded video.
* </p>
* <p>
* Watermarks can be in .png or .jpg format. If you want to display a watermark that is not rectangular, use the
* .png format, which supports transparency.
* </p>
* <p>
* When you create a job that uses this preset, you specify the .png or .jpg graphics that you want Elastic
* Transcoder to include in the transcoded videos. You can specify fewer graphics in the job than you specify
* watermark settings in the preset, which allows you to use the same preset for up to four watermarks that have
* different dimensions.
* </p>
*
* @param watermarks
* Settings for the size, location, and opacity of graphics that you want Elastic Transcoder to overlay over
* videos that are transcoded using this preset. You can specify settings for up to four watermarks.
* Watermarks appear in the specified size and location, and with the specified opacity for the duration of
* the transcoded video.</p>
* <p>
* Watermarks can be in .png or .jpg format. If you want to display a watermark that is not rectangular, use
* the .png format, which supports transparency.
* </p>
* <p>
* When you create a job that uses this preset, you specify the .png or .jpg graphics that you want Elastic
* Transcoder to include in the transcoded videos. You can specify fewer graphics in the job than you specify
* watermark settings in the preset, which allows you to use the same preset for up to four watermarks that
* have different dimensions.
*/
public void setWatermarks(java.util.Collection<PresetWatermark> watermarks) {
if (watermarks == null) {
this.watermarks = null;
return;
}
this.watermarks = new com.amazonaws.internal.SdkInternalList<PresetWatermark>(watermarks);
}
/**
* <p>
* Settings for the size, location, and opacity of graphics that you want Elastic Transcoder to overlay over videos
* that are transcoded using this preset. You can specify settings for up to four watermarks. Watermarks appear in
* the specified size and location, and with the specified opacity for the duration of the transcoded video.
* </p>
* <p>
* Watermarks can be in .png or .jpg format. If you want to display a watermark that is not rectangular, use the
* .png format, which supports transparency.
* </p>
* <p>
* When you create a job that uses this preset, you specify the .png or .jpg graphics that you want Elastic
* Transcoder to include in the transcoded videos. You can specify fewer graphics in the job than you specify
* watermark settings in the preset, which allows you to use the same preset for up to four watermarks that have
* different dimensions.
* </p>
* <p>
* <b>NOTE:</b> 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.
* </p>
*
* @param watermarks
* Settings for the size, location, and opacity of graphics that you want Elastic Transcoder to overlay over
* videos that are transcoded using this preset. You can specify settings for up to four watermarks.
* Watermarks appear in the specified size and location, and with the specified opacity for the duration of
* the transcoded video.</p>
* <p>
* Watermarks can be in .png or .jpg format. If you want to display a watermark that is not rectangular, use
* the .png format, which supports transparency.
* </p>
* <p>
* When you create a job that uses this preset, you specify the .png or .jpg graphics that you want Elastic
* Transcoder to include in the transcoded videos. You can specify fewer graphics in the job than you specify
* watermark settings in the preset, which allows you to use the same preset for up to four watermarks that
* have different dimensions.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public VideoParameters withWatermarks(PresetWatermark... watermarks) {
if (this.watermarks == null) {
setWatermarks(new com.amazonaws.internal.SdkInternalList<PresetWatermark>(watermarks.length));
}
for (PresetWatermark ele : watermarks) {
this.watermarks.add(ele);
}
return this;
}
/**
* <p>
* Settings for the size, location, and opacity of graphics that you want Elastic Transcoder to overlay over videos
* that are transcoded using this preset. You can specify settings for up to four watermarks. Watermarks appear in
* the specified size and location, and with the specified opacity for the duration of the transcoded video.
* </p>
* <p>
* Watermarks can be in .png or .jpg format. If you want to display a watermark that is not rectangular, use the
* .png format, which supports transparency.
* </p>
* <p>
* When you create a job that uses this preset, you specify the .png or .jpg graphics that you want Elastic
* Transcoder to include in the transcoded videos. You can specify fewer graphics in the job than you specify
* watermark settings in the preset, which allows you to use the same preset for up to four watermarks that have
* different dimensions.
* </p>
*
* @param watermarks
* Settings for the size, location, and opacity of graphics that you want Elastic Transcoder to overlay over
* videos that are transcoded using this preset. You can specify settings for up to four watermarks.
* Watermarks appear in the specified size and location, and with the specified opacity for the duration of
* the transcoded video.</p>
* <p>
* Watermarks can be in .png or .jpg format. If you want to display a watermark that is not rectangular, use
* the .png format, which supports transparency.
* </p>
* <p>
* When you create a job that uses this preset, you specify the .png or .jpg graphics that you want Elastic
* Transcoder to include in the transcoded videos. You can specify fewer graphics in the job than you specify
* watermark settings in the preset, which allows you to use the same preset for up to four watermarks that
* have different dimensions.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public VideoParameters withWatermarks(java.util.Collection<PresetWatermark> watermarks) {
setWatermarks(watermarks);
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 (getCodec() != null)
sb.append("Codec: ").append(getCodec()).append(",");
if (getCodecOptions() != null)
sb.append("CodecOptions: ").append(getCodecOptions()).append(",");
if (getKeyframesMaxDist() != null)
sb.append("KeyframesMaxDist: ").append(getKeyframesMaxDist()).append(",");
if (getFixedGOP() != null)
sb.append("FixedGOP: ").append(getFixedGOP()).append(",");
if (getBitRate() != null)
sb.append("BitRate: ").append(getBitRate()).append(",");
if (getFrameRate() != null)
sb.append("FrameRate: ").append(getFrameRate()).append(",");
if (getMaxFrameRate() != null)
sb.append("MaxFrameRate: ").append(getMaxFrameRate()).append(",");
if (getResolution() != null)
sb.append("Resolution: ").append(getResolution()).append(",");
if (getAspectRatio() != null)
sb.append("AspectRatio: ").append(getAspectRatio()).append(",");
if (getMaxWidth() != null)
sb.append("MaxWidth: ").append(getMaxWidth()).append(",");
if (getMaxHeight() != null)
sb.append("MaxHeight: ").append(getMaxHeight()).append(",");
if (getDisplayAspectRatio() != null)
sb.append("DisplayAspectRatio: ").append(getDisplayAspectRatio()).append(",");
if (getSizingPolicy() != null)
sb.append("SizingPolicy: ").append(getSizingPolicy()).append(",");
if (getPaddingPolicy() != null)
sb.append("PaddingPolicy: ").append(getPaddingPolicy()).append(",");
if (getWatermarks() != null)
sb.append("Watermarks: ").append(getWatermarks());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof VideoParameters == false)
return false;
VideoParameters other = (VideoParameters) obj;
if (other.getCodec() == null ^ this.getCodec() == null)
return false;
if (other.getCodec() != null && other.getCodec().equals(this.getCodec()) == false)
return false;
if (other.getCodecOptions() == null ^ this.getCodecOptions() == null)
return false;
if (other.getCodecOptions() != null && other.getCodecOptions().equals(this.getCodecOptions()) == false)
return false;
if (other.getKeyframesMaxDist() == null ^ this.getKeyframesMaxDist() == null)
return false;
if (other.getKeyframesMaxDist() != null && other.getKeyframesMaxDist().equals(this.getKeyframesMaxDist()) == false)
return false;
if (other.getFixedGOP() == null ^ this.getFixedGOP() == null)
return false;
if (other.getFixedGOP() != null && other.getFixedGOP().equals(this.getFixedGOP()) == false)
return false;
if (other.getBitRate() == null ^ this.getBitRate() == null)
return false;
if (other.getBitRate() != null && other.getBitRate().equals(this.getBitRate()) == 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.getMaxFrameRate() == null ^ this.getMaxFrameRate() == null)
return false;
if (other.getMaxFrameRate() != null && other.getMaxFrameRate().equals(this.getMaxFrameRate()) == false)
return false;
if (other.getResolution() == null ^ this.getResolution() == null)
return false;
if (other.getResolution() != null && other.getResolution().equals(this.getResolution()) == false)
return false;
if (other.getAspectRatio() == null ^ this.getAspectRatio() == null)
return false;
if (other.getAspectRatio() != null && other.getAspectRatio().equals(this.getAspectRatio()) == false)
return false;
if (other.getMaxWidth() == null ^ this.getMaxWidth() == null)
return false;
if (other.getMaxWidth() != null && other.getMaxWidth().equals(this.getMaxWidth()) == false)
return false;
if (other.getMaxHeight() == null ^ this.getMaxHeight() == null)
return false;
if (other.getMaxHeight() != null && other.getMaxHeight().equals(this.getMaxHeight()) == false)
return false;
if (other.getDisplayAspectRatio() == null ^ this.getDisplayAspectRatio() == null)
return false;
if (other.getDisplayAspectRatio() != null && other.getDisplayAspectRatio().equals(this.getDisplayAspectRatio()) == false)
return false;
if (other.getSizingPolicy() == null ^ this.getSizingPolicy() == null)
return false;
if (other.getSizingPolicy() != null && other.getSizingPolicy().equals(this.getSizingPolicy()) == false)
return false;
if (other.getPaddingPolicy() == null ^ this.getPaddingPolicy() == null)
return false;
if (other.getPaddingPolicy() != null && other.getPaddingPolicy().equals(this.getPaddingPolicy()) == false)
return false;
if (other.getWatermarks() == null ^ this.getWatermarks() == null)
return false;
if (other.getWatermarks() != null && other.getWatermarks().equals(this.getWatermarks()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getCodec() == null) ? 0 : getCodec().hashCode());
hashCode = prime * hashCode + ((getCodecOptions() == null) ? 0 : getCodecOptions().hashCode());
hashCode = prime * hashCode + ((getKeyframesMaxDist() == null) ? 0 : getKeyframesMaxDist().hashCode());
hashCode = prime * hashCode + ((getFixedGOP() == null) ? 0 : getFixedGOP().hashCode());
hashCode = prime * hashCode + ((getBitRate() == null) ? 0 : getBitRate().hashCode());
hashCode = prime * hashCode + ((getFrameRate() == null) ? 0 : getFrameRate().hashCode());
hashCode = prime * hashCode + ((getMaxFrameRate() == null) ? 0 : getMaxFrameRate().hashCode());
hashCode = prime * hashCode + ((getResolution() == null) ? 0 : getResolution().hashCode());
hashCode = prime * hashCode + ((getAspectRatio() == null) ? 0 : getAspectRatio().hashCode());
hashCode = prime * hashCode + ((getMaxWidth() == null) ? 0 : getMaxWidth().hashCode());
hashCode = prime * hashCode + ((getMaxHeight() == null) ? 0 : getMaxHeight().hashCode());
hashCode = prime * hashCode + ((getDisplayAspectRatio() == null) ? 0 : getDisplayAspectRatio().hashCode());
hashCode = prime * hashCode + ((getSizingPolicy() == null) ? 0 : getSizingPolicy().hashCode());
hashCode = prime * hashCode + ((getPaddingPolicy() == null) ? 0 : getPaddingPolicy().hashCode());
hashCode = prime * hashCode + ((getWatermarks() == null) ? 0 : getWatermarks().hashCode());
return hashCode;
}
@Override
public VideoParameters clone() {
try {
return (VideoParameters) super.clone();
} catch (CloneNotSupportedException e) {
throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
}
}
@com.amazonaws.annotation.SdkInternalApi
@Override
public void marshall(ProtocolMarshaller protocolMarshaller) {
com.amazonaws.services.elastictranscoder.model.transform.VideoParametersMarshaller.getInstance().marshall(this, protocolMarshaller);
}
}