/* * Copyright 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. */ /* * Do not modify this file. This file is generated from the elastictranscoder-2012-09-25.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.ElasticTranscoder.Model { /// /// The VideoParameters structure. /// public partial class VideoParameters { private string _aspectRatio; private string _bitRate; private string _codec; private Dictionary _codecOptions = new Dictionary(); private string _displayAspectRatio; private string _fixedGOP; private string _frameRate; private string _keyframesMaxDist; private string _maxFrameRate; private string _maxHeight; private string _maxWidth; private string _paddingPolicy; private string _resolution; private string _sizingPolicy; private List _watermarks = new List(); /// /// Gets and sets the property AspectRatio. /// /// To better control resolution and aspect ratio of output videos, we recommend that /// you use the values MaxWidth, MaxHeight, SizingPolicy, /// PaddingPolicy, and DisplayAspectRatio instead of Resolution /// and AspectRatio. The two groups of settings are mutually exclusive. Do /// not use them together. /// /// /// /// The display aspect ratio of the video in the output file. Valid values include: /// /// /// /// auto, 1:1, 4:3, 3:2, 16:9 /// /// /// /// /// If you specify auto, Elastic Transcoder tries to preserve the aspect /// ratio of the input file. /// /// /// /// 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 AspectRatio { get { return this._aspectRatio; } set { this._aspectRatio = value; } } // Check to see if AspectRatio property is set internal bool IsSetAspectRatio() { return this._aspectRatio != null; } /// /// Gets and sets the property BitRate. /// /// The bit rate of the video stream in the output file, in kilobits/second. Valid values /// depend on the values of Level and Profile. If you specify /// auto, Elastic Transcoder uses the detected bit rate of the input source. /// If you specify a value other than auto, we recommend that you specify /// a value less than or equal to the maximum H.264-compliant value listed for your level /// and profile: /// /// /// /// Level - Maximum video bit rate in kilobits/second (baseline and main Profile) /// : maximum video bit rate in kilobits/second (high Profile) /// ///
  • /// /// 1 - 64 : 80 /// ///
  • /// /// 1b - 128 : 160 /// ///
  • /// /// 1.1 - 192 : 240 /// ///
  • /// /// 1.2 - 384 : 480 /// ///
  • /// /// 1.3 - 768 : 960 /// ///
  • /// /// 2 - 2000 : 2500 /// ///
  • /// /// 3 - 10000 : 12500 /// ///
  • /// /// 3.1 - 14000 : 17500 /// ///
  • /// /// 3.2 - 20000 : 25000 /// ///
  • /// /// 4 - 20000 : 25000 /// ///
  • /// /// 4.1 - 50000 : 62500 /// ///
///
public string BitRate { get { return this._bitRate; } set { this._bitRate = value; } } // Check to see if BitRate property is set internal bool IsSetBitRate() { return this._bitRate != null; } /// /// Gets and sets the property Codec. /// /// The video codec for the output file. Valid values include gif, H.264, /// mpeg2, vp8, and vp9. You can only specify vp8 /// and vp9 when the container type is webm, gif /// when the container type is gif, and mpeg2 when the container /// type is mpg. /// /// public string Codec { get { return this._codec; } set { this._codec = value; } } // Check to see if Codec property is set internal bool IsSetCodec() { return this._codec != null; } /// /// Gets and sets the property CodecOptions. /// /// Profile (H.264/VP8/VP9 Only) /// /// /// /// The H.264 profile that you want to use for the output file. Elastic Transcoder supports /// the following profiles: /// ///
  • /// /// baseline: The profile most commonly used for videoconferencing and for /// mobile applications. /// ///
  • /// /// main: The profile used for standard-definition digital TV broadcasts. /// ///
  • /// /// high: The profile used for high-definition digital TV broadcasts and /// for Blu-ray discs. /// ///
/// /// Level (H.264 Only) /// /// /// /// The H.264 level that you want to use for the output file. Elastic Transcoder supports /// the following levels: /// /// /// /// 1, 1b, 1.1, 1.2, 1.3, /// 2, 2.1, 2.2, 3, 3.1, /// 3.2, 4, 4.1 /// /// /// /// MaxReferenceFrames (H.264 Only) /// /// /// /// 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: /// /// /// /// Min(Floor(Maximum decoded picture buffer in macroblocks * 256 / (Width in pixels /// * Height in pixels)), 16) /// /// /// /// where Width in pixels and Height in pixels represent either MaxWidth /// and MaxHeight, or Resolution. Maximum decoded picture buffer in macroblocks /// depends on the value of the Level object. See the list below. (A macroblock /// is a block of pixels measuring 16x16.) /// ///
  • /// /// 1 - 396 /// ///
  • /// /// 1b - 396 /// ///
  • /// /// 1.1 - 900 /// ///
  • /// /// 1.2 - 2376 /// ///
  • /// /// 1.3 - 2376 /// ///
  • /// /// 2 - 2376 /// ///
  • /// /// 2.1 - 4752 /// ///
  • /// /// 2.2 - 8100 /// ///
  • /// /// 3 - 8100 /// ///
  • /// /// 3.1 - 18000 /// ///
  • /// /// 3.2 - 20480 /// ///
  • /// /// 4 - 32768 /// ///
  • /// /// 4.1 - 32768 /// ///
/// /// MaxBitRate (Optional, H.264/MPEG2/VP8/VP9 only) /// /// /// /// The maximum number of bits per second in a video buffer; the size of the buffer is /// specified by BufferSize. 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. /// /// /// /// BufferSize (Optional, H.264/MPEG2/VP8/VP9 only) /// /// /// /// 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 /// MaxBitRate and omit BufferSize, Elastic Transcoder sets /// BufferSize to 10 times the value of MaxBitRate. /// /// /// /// InterlacedMode (Optional, H.264/MPEG2 Only) /// /// /// /// The interlace mode for the output video. /// /// /// /// 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. /// /// /// /// Valid values include Progressive (no interlacing, top to bottom), TopFirst /// (top field first), BottomFirst (bottom field first), and Auto. /// /// /// /// If InterlaceMode is not specified, Elastic Transcoder uses Progressive /// for the output. If Auto is specified, Elastic Transcoder interlaces the /// output. /// /// /// /// ColorSpaceConversionMode (Optional, H.264/MPEG2 Only) /// /// /// /// 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. /// Bt.601 is the standard for standard definition video, while Bt.709 /// is the standard for high definition video. /// /// /// /// Valid values include None, Bt709toBt601, Bt601toBt709, /// and Auto. /// /// /// /// If you chose Auto for ColorSpaceConversionMode and your /// output is interlaced, your frame rate is one of 23.97, 24, /// 25, 29.97, 50, or 60, your SegmentDuration /// is null, and you are using one of the resolution changes from the list below, Elastic /// Transcoder applies the following color space conversions: /// ///
  • /// /// Standard to HD, 720x480 to 1920x1080 - Elastic Transcoder applies Bt601ToBt709 /// /// ///
  • /// /// Standard to HD, 720x576 to 1920x1080 - Elastic Transcoder applies Bt601ToBt709 /// /// ///
  • /// /// HD to Standard, 1920x1080 to 720x480 - Elastic Transcoder applies Bt709ToBt601 /// /// ///
  • /// /// HD to Standard, 1920x1080 to 720x576 - Elastic Transcoder applies Bt709ToBt601 /// /// ///
/// /// Elastic Transcoder may change the behavior of the ColorspaceConversionMode /// Auto mode in the future. All outputs in a playlist must use the same /// ColorSpaceConversionMode. /// /// /// /// If you do not specify a ColorSpaceConversionMode, Elastic Transcoder /// does not change the color space of a file. If you are unsure what ColorSpaceConversionMode /// was applied to your output file, you can check the AppliedColorSpaceConversion /// parameter included in your job response. If your job does not have an AppliedColorSpaceConversion /// in its response, no ColorSpaceConversionMode was applied. /// /// /// /// ChromaSubsampling /// /// /// /// The sampling pattern for the chroma (color) channels of the output video. Valid values /// include yuv420p and yuv422p. /// /// /// /// yuv420p samples the chroma information of every other horizontal and /// every other vertical line, yuv422p samples the color information of every /// horizontal line and every other vertical line. /// /// /// /// LoopCount (Gif Only) /// /// /// /// The number of times you want the output gif to loop. Valid values include Infinite /// and integers between 0 and 100, inclusive. /// ///
[AWSProperty(Max=30)] public Dictionary CodecOptions { get { return this._codecOptions; } set { this._codecOptions = value; } } // Check to see if CodecOptions property is set internal bool IsSetCodecOptions() { return this._codecOptions != null && this._codecOptions.Count > 0; } /// /// Gets and sets the property DisplayAspectRatio. /// /// The value that Elastic Transcoder adds to the metadata in the output file. /// /// public string DisplayAspectRatio { get { return this._displayAspectRatio; } set { this._displayAspectRatio = value; } } // Check to see if DisplayAspectRatio property is set internal bool IsSetDisplayAspectRatio() { return this._displayAspectRatio != null; } /// /// Gets and sets the property FixedGOP. /// /// Applicable only when the value of Video:Codec is one of H.264, MPEG2, /// or VP8. /// /// /// /// Whether to use a fixed value for FixedGOP. Valid values are true /// and false: /// ///
  • /// /// true: Elastic Transcoder uses the value of KeyframesMaxDist /// for the distance between key frames (the number of frames in a group of pictures, /// or GOP). /// ///
  • /// /// false: The distance between key frames can vary. /// ///
/// /// FixedGOP must be set to true for fmp4 containers. /// /// ///
public string FixedGOP { get { return this._fixedGOP; } set { this._fixedGOP = value; } } // Check to see if FixedGOP property is set internal bool IsSetFixedGOP() { return this._fixedGOP != null; } /// /// Gets and sets the property FrameRate. /// /// The frames per second for the video stream in the output file. Valid values include: /// /// /// /// auto, 10, 15, 23.97, 24, /// 25, 29.97, 30, 60 /// /// /// /// If you specify auto, 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: /// /// /// /// Frame rate = maximum recommended decoding speed in luma samples/second / (width /// in pixels * height in pixels) /// /// /// /// where: /// ///
  • /// /// width in pixels and height in pixels represent the Resolution of the /// output video. /// ///
  • /// /// maximum recommended decoding speed in Luma samples/second is less than or /// equal to the maximum value listed in the following table, based on the value that /// you specified for Level. /// ///
/// /// The maximum recommended decoding speed in Luma samples/second for each level is described /// in the following list (Level - Decoding speed): /// ///
  • /// /// 1 - 380160 /// ///
  • /// /// 1b - 380160 /// ///
  • /// /// 1.1 - 76800 /// ///
  • /// /// 1.2 - 1536000 /// ///
  • /// /// 1.3 - 3041280 /// ///
  • /// /// 2 - 3041280 /// ///
  • /// /// 2.1 - 5068800 /// ///
  • /// /// 2.2 - 5184000 /// ///
  • /// /// 3 - 10368000 /// ///
  • /// /// 3.1 - 27648000 /// ///
  • /// /// 3.2 - 55296000 /// ///
  • /// /// 4 - 62914560 /// ///
  • /// /// 4.1 - 62914560 /// ///
///
public string FrameRate { get { return this._frameRate; } set { this._frameRate = value; } } // Check to see if FrameRate property is set internal bool IsSetFrameRate() { return this._frameRate != null; } /// /// Gets and sets the property KeyframesMaxDist. /// /// Applicable only when the value of Video:Codec is one of H.264, MPEG2, /// or VP8. /// /// /// /// 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. /// /// /// /// For Smooth outputs, the FrameRate must have a constant ratio /// to the KeyframesMaxDist. This allows Smooth playlists to /// switch between different quality levels while the file is being played. /// /// /// /// For example, an input file can have a FrameRate of 30 with a KeyframesMaxDist /// of 90. The output file then needs to have a ratio of 1:3. Valid outputs would have /// FrameRate of 30, 25, and 10, and KeyframesMaxDist of 90, /// 75, and 30, respectively. /// /// /// /// Alternately, this can be achieved by setting FrameRate to auto and having /// the same values for MaxFrameRate and KeyframesMaxDist. /// /// public string KeyframesMaxDist { get { return this._keyframesMaxDist; } set { this._keyframesMaxDist = value; } } // Check to see if KeyframesMaxDist property is set internal bool IsSetKeyframesMaxDist() { return this._keyframesMaxDist != null; } /// /// Gets and sets the property MaxFrameRate. /// /// If you specify auto for FrameRate, 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: 10, 15, 23.97, 24, /// 25, 29.97, 30, 60. /// /// public string MaxFrameRate { get { return this._maxFrameRate; } set { this._maxFrameRate = value; } } // Check to see if MaxFrameRate property is set internal bool IsSetMaxFrameRate() { return this._maxFrameRate != null; } /// /// Gets and sets the property MaxHeight. /// /// The maximum height of the output video in pixels. If you specify auto, /// 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 MaxHeight { get { return this._maxHeight; } set { this._maxHeight = value; } } // Check to see if MaxHeight property is set internal bool IsSetMaxHeight() { return this._maxHeight != null; } /// /// Gets and sets the property MaxWidth. /// /// The maximum width of the output video in pixels. If you specify auto, /// 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 MaxWidth { get { return this._maxWidth; } set { this._maxWidth = value; } } // Check to see if MaxWidth property is set internal bool IsSetMaxWidth() { return this._maxWidth != null; } /// /// Gets and sets the property PaddingPolicy. /// /// When you set PaddingPolicy to Pad, 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 /// MaxWidth and MaxHeight. /// /// public string PaddingPolicy { get { return this._paddingPolicy; } set { this._paddingPolicy = value; } } // Check to see if PaddingPolicy property is set internal bool IsSetPaddingPolicy() { return this._paddingPolicy != null; } /// /// Gets and sets the property Resolution. /// /// To better control resolution and aspect ratio of output videos, we recommend that /// you use the values MaxWidth, MaxHeight, SizingPolicy, /// PaddingPolicy, and DisplayAspectRatio instead of Resolution /// and AspectRatio. The two groups of settings are mutually exclusive. Do /// not use them together. /// /// /// /// The width and height of the video in the output file, in pixels. Valid values are /// auto and width x height: /// ///
  • /// /// auto: Elastic Transcoder attempts to preserve the width and height of /// the input file, subject to the following rules. /// ///
  • /// /// width x height : The width and height of the output video /// in pixels. /// ///
/// /// Note the following about specifying the width and height: /// ///
  • /// /// The width must be an even integer between 128 and 4096, inclusive. /// ///
  • /// /// The height must be an even integer between 96 and 3072, inclusive. /// ///
  • /// /// 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. /// ///
  • /// /// If you specify a resolution that is greater than the resolution of the input file, /// Elastic Transcoder rescales the output to the higher resolution. /// ///
  • /// /// 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 (List - Max /// width x height value): /// ///
    • /// /// 1 - 25344 /// ///
    • /// /// 1b - 25344 /// ///
    • /// /// 1.1 - 101376 /// ///
    • /// /// 1.2 - 101376 /// ///
    • /// /// 1.3 - 101376 /// ///
    • /// /// 2 - 101376 /// ///
    • /// /// 2.1 - 202752 /// ///
    • /// /// 2.2 - 404720 /// ///
    • /// /// 3 - 404720 /// ///
    • /// /// 3.1 - 921600 /// ///
    • /// /// 3.2 - 1310720 /// ///
    • /// /// 4 - 2097152 /// ///
    • /// /// 4.1 - 2097152 /// ///
///
public string Resolution { get { return this._resolution; } set { this._resolution = value; } } // Check to see if Resolution property is set internal bool IsSetResolution() { return this._resolution != null; } /// /// Gets and sets the property SizingPolicy. /// /// Specify one of the following values to control scaling of the output video: /// ///
  • /// /// Fit: Elastic Transcoder scales the output video so it matches the value /// that you specified in either MaxWidth or MaxHeight without /// exceeding the other value. /// ///
  • /// /// Fill: Elastic Transcoder scales the output video so it matches the value /// that you specified in either MaxWidth or MaxHeight 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. /// ///
  • /// /// Stretch: Elastic Transcoder stretches the output video to match the /// values that you specified for MaxWidth and MaxHeight. If /// the relative proportions of the input video and the output video are different, the /// output video will be distorted. /// ///
  • /// /// Keep: Elastic Transcoder does not scale the output video. If either /// dimension of the input video exceeds the values that you specified for MaxWidth /// and MaxHeight, Elastic Transcoder crops the output video. /// ///
  • /// /// ShrinkToFit: Elastic Transcoder scales the output video down so that /// its dimensions match the values that you specified for at least one of MaxWidth /// and MaxHeight without exceeding either value. If you specify this option, /// Elastic Transcoder does not scale the video up. /// ///
  • /// /// ShrinkToFill: Elastic Transcoder scales the output video down so that /// its dimensions match the values that you specified for at least one of MaxWidth /// and MaxHeight without dropping below either value. If you specify this /// option, Elastic Transcoder does not scale the video up. /// ///
///
public string SizingPolicy { get { return this._sizingPolicy; } set { this._sizingPolicy = value; } } // Check to see if SizingPolicy property is set internal bool IsSetSizingPolicy() { return this._sizingPolicy != null; } /// /// Gets and sets the property 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. /// /// /// /// 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. /// /// /// /// 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 List Watermarks { get { return this._watermarks; } set { this._watermarks = value; } } // Check to see if Watermarks property is set internal bool IsSetWatermarks() { return this._watermarks != null && this._watermarks.Count > 0; } } }