# WARNING ABOUT GENERATED CODE # # This file is generated. See the contributing guide for more information: # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md # # WARNING ABOUT GENERATED CODE module Aws::ElasticTranscoder module Types # General authentication failure. The request was not signed correctly. # class AccessDeniedException < Aws::EmptyStructure; end # The file to be used as album art. There can be multiple artworks # associated with an audio file, to a maximum of 20. # # To remove artwork or leave the artwork empty, you can either set # `Artwork` to null, or set the `Merge Policy` to "Replace" and use an # empty `Artwork` array. # # To pass through existing artwork unchanged, set the `Merge Policy` to # "Prepend", "Append", or "Fallback", and use an empty `Artwork` # array. # # @note When making an API call, you may pass Artwork # data as a hash: # # { # input_key: "WatermarkKey", # max_width: "DigitsOrAuto", # max_height: "DigitsOrAuto", # sizing_policy: "SizingPolicy", # padding_policy: "PaddingPolicy", # album_art_format: "JpgOrPng", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # } # # @!attribute [rw] input_key # The name of the file to be used as album art. To determine which # Amazon S3 bucket contains the specified file, Elastic Transcoder # checks the pipeline specified by `PipelineId`; the `InputBucket` # object in that pipeline identifies the bucket. # # If the file name includes a prefix, for example, `cooking/pie.jpg`, # include the prefix in the key. If the file isn't in the specified # bucket, Elastic Transcoder returns an error. # @return [String] # # @!attribute [rw] max_width # The maximum width of the output album art in pixels. If you specify # `auto`, Elastic Transcoder uses 600 as the default value. If you # specify a numeric value, enter an even integer between 32 and 4096, # inclusive. # @return [String] # # @!attribute [rw] max_height # The maximum height of the output album art in pixels. If you specify # `auto`, Elastic Transcoder uses 600 as the default value. If you # specify a numeric value, enter an even integer between 32 and 3072, # inclusive. # @return [String] # # @!attribute [rw] sizing_policy # Specify one of the following values to control scaling of the output # album art: # # * `Fit:` Elastic Transcoder scales the output art so it matches the # value that you specified in either `MaxWidth` or `MaxHeight` # without exceeding the other value. # # * `Fill:` Elastic Transcoder scales the output art 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 art and then crops it in the dimension (if any) that # exceeds the maximum value. # # * `Stretch:` Elastic Transcoder stretches the output art to match # the values that you specified for `MaxWidth` and `MaxHeight`. If # the relative proportions of the input art and the output art are # different, the output art will be distorted. # # * `Keep:` Elastic Transcoder does not scale the output art. If # either dimension of the input art exceeds the values that you # specified for `MaxWidth` and `MaxHeight`, Elastic Transcoder crops # the output art. # # * `ShrinkToFit:` Elastic Transcoder scales the output art 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 art up. # # * `ShrinkToFill` Elastic Transcoder scales the output art 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 art up. # @return [String] # # @!attribute [rw] padding_policy # When you set `PaddingPolicy` to `Pad`, Elastic Transcoder may add # white bars to the top and bottom and/or left and right sides of the # output album art to make the total size of the output art match the # values that you specified for `MaxWidth` and `MaxHeight`. # @return [String] # # @!attribute [rw] album_art_format # The format of album art, if any. Valid formats are `.jpg` and # `.png`. # @return [String] # # @!attribute [rw] encryption # The encryption settings, if any, that you want Elastic Transcoder to # apply to your artwork. # @return [Types::Encryption] # class Artwork < Struct.new( :input_key, :max_width, :max_height, :sizing_policy, :padding_policy, :album_art_format, :encryption) include Aws::Structure end # Options associated with your audio codec. # # @note When making an API call, you may pass AudioCodecOptions # data as a hash: # # { # profile: "AudioCodecProfile", # bit_depth: "AudioBitDepth", # bit_order: "AudioBitOrder", # signed: "AudioSigned", # } # # @!attribute [rw] profile # You can only choose an audio profile when you specify AAC for the # value of Audio:Codec. # # Specify the AAC profile for the output file. Elastic Transcoder # supports the following profiles: # # * `auto`\: If you specify `auto`, Elastic Transcoder selects the # profile based on the bit rate selected for the output file. # # * `AAC-LC`\: The most common AAC profile. Use for bit rates larger # than 64 kbps. # # * `HE-AAC`\: Not supported on some older players and devices. Use # for bit rates between 40 and 80 kbps. # # * `HE-AACv2`\: Not supported on some players and devices. Use for # bit rates less than 48 kbps. # # All outputs in a `Smooth` playlist must have the same value for # `Profile`. # # If you created any presets before AAC profiles were added, Elastic # Transcoder automatically updated your presets to use AAC-LC. You can # change the value as required. # # # @return [String] # # @!attribute [rw] bit_depth # You can only choose an audio bit depth when you specify `flac` or # `pcm` for the value of Audio:Codec. # # The bit depth of a sample is how many bits of information are # included in the audio samples. The higher the bit depth, the better # the audio, but the larger the file. # # Valid values are `16` and `24`. # # The most common bit depth is `24`. # @return [String] # # @!attribute [rw] bit_order # You can only choose an audio bit order when you specify `pcm` for # the value of Audio:Codec. # # The order the bits of a PCM sample are stored in. # # The supported value is `LittleEndian`. # @return [String] # # @!attribute [rw] signed # You can only choose whether an audio sample is signed when you # specify `pcm` for the value of Audio:Codec. # # Whether audio samples are represented with negative and positive # numbers (signed) or only positive numbers (unsigned). # # The supported value is `Signed`. # @return [String] # class AudioCodecOptions < Struct.new( :profile, :bit_depth, :bit_order, :signed) include Aws::Structure end # Parameters required for transcoding audio. # # @note When making an API call, you may pass AudioParameters # data as a hash: # # { # codec: "AudioCodec", # sample_rate: "AudioSampleRate", # bit_rate: "AudioBitRate", # channels: "AudioChannels", # audio_packing_mode: "AudioPackingMode", # codec_options: { # profile: "AudioCodecProfile", # bit_depth: "AudioBitDepth", # bit_order: "AudioBitOrder", # signed: "AudioSigned", # }, # } # # @!attribute [rw] codec # The audio codec for the output file. Valid values include `aac`, # `flac`, `mp2`, `mp3`, `pcm`, and `vorbis`. # @return [String] # # @!attribute [rw] sample_rate # The sample rate of the audio stream in the output file, in Hertz. # Valid values include: # # `auto`, `22050`, `32000`, `44100`, `48000`, `96000` # # If you specify `auto`, Elastic Transcoder automatically detects the # sample rate. # @return [String] # # @!attribute [rw] bit_rate # The bit rate of the audio stream in the output file, in # kilobits/second. Enter an integer between 64 and 320, inclusive. # @return [String] # # @!attribute [rw] channels # The number of audio channels in the output file. The following # values are valid: # # `auto`, `0`, `1`, `2` # # One channel carries the information played by a single speaker. For # example, a stereo track with two channels sends one channel to the # left speaker, and the other channel to the right speaker. The output # channels are organized into tracks. If you want Elastic Transcoder # to automatically detect the number of audio channels in the input # file and use that value for the output file, select `auto`. # # The output of a specific channel value and inputs are as follows: # # * `auto` channel specified, with any input: Pass through up # to eight input channels. # # * `0` channels specified, with any input: Audio omitted from # the output. # # * `1` channel specified, with at least one input channel: # Mono sound. # # * `2` channels specified, with any input: Two identical mono # channels or stereo. For more information about tracks, see # `Audio:AudioPackingMode.` # # For more information about how Elastic Transcoder organizes channels # and tracks, see `Audio:AudioPackingMode`. # @return [String] # # @!attribute [rw] audio_packing_mode # The method of organizing audio channels and tracks. Use # `Audio:Channels` to specify the number of channels in your output, # and `Audio:AudioPackingMode` to specify the number of tracks and # their relation to the channels. If you do not specify an # `Audio:AudioPackingMode`, Elastic Transcoder uses `SingleTrack`. # # The following values are valid: # # `SingleTrack`, `OneChannelPerTrack`, and # `OneChannelPerTrackWithMosTo8Tracks` # # When you specify `SingleTrack`, Elastic Transcoder creates a single # track for your output. The track can have up to eight channels. Use # `SingleTrack` for all non-`mxf` containers. # # The outputs of `SingleTrack` for a specific channel value and inputs # are as follows: # # * `0` channels with any input: Audio omitted from the output # # * `1, 2, or auto ` **channels with no audio input:** Audio omitted # from the output # # * `1 ` **channel with any input with audio:** One track with one # channel, downmixed if necessary # # * `2 ` **channels with one track with one channel:** One track with # two identical channels # # * `2 or auto ` **channels with two tracks with one channel each:** # One track with two channels # # * `2 or auto ` **channels with one track with two channels:** One # track with two channels # # * `2 ` **channels with one track with multiple channels:** One track # with two channels # # * `auto ` **channels with one track with one channel:** One track # with one channel # # * `auto ` **channels with one track with multiple channels:** One # track with multiple channels # # When you specify `OneChannelPerTrack`, Elastic Transcoder creates a # new track for every channel in your output. Your output can have up # to eight single-channel tracks. # # The outputs of `OneChannelPerTrack` for a specific channel value and # inputs are as follows: # # * `0 ` **channels with any input:** Audio omitted from the output # # * `1, 2, or auto ` **channels with no audio input:** Audio omitted # from the output # # * `1 ` **channel with any input with audio:** One track with one # channel, downmixed if necessary # # * `2 ` **channels with one track with one channel:** Two tracks with # one identical channel each # # * `2 or auto ` **channels with two tracks with one channel each:** # Two tracks with one channel each # # * `2 or auto ` **channels with one track with two channels:** Two # tracks with one channel each # # * `2 ` **channels with one track with multiple channels:** Two # tracks with one channel each # # * `auto ` **channels with one track with one channel:** One track # with one channel # # * `auto ` **channels with one track with multiple channels:** Up to # eight tracks with one channel each # # When you specify `OneChannelPerTrackWithMosTo8Tracks`, Elastic # Transcoder creates eight single-channel tracks for your output. All # tracks that do not contain audio data from an input channel are MOS, # or Mit Out Sound, tracks. # # The outputs of `OneChannelPerTrackWithMosTo8Tracks` for a specific # channel value and inputs are as follows: # # * `0 ` **channels with any input:** Audio omitted from the output # # * `1, 2, or auto ` **channels with no audio input:** Audio omitted # from the output # # * `1 ` **channel with any input with audio:** One track with one # channel, downmixed if necessary, plus six MOS tracks # # * `2 ` **channels with one track with one channel:** Two tracks with # one identical channel each, plus six MOS tracks # # * `2 or auto ` **channels with two tracks with one channel each:** # Two tracks with one channel each, plus six MOS tracks # # * `2 or auto ` **channels with one track with two channels:** Two # tracks with one channel each, plus six MOS tracks # # * `2 ` **channels with one track with multiple channels:** Two # tracks with one channel each, plus six MOS tracks # # * `auto ` **channels with one track with one channel:** One track # with one channel, plus seven MOS tracks # # * `auto ` **channels with one track with multiple channels:** Up to # eight tracks with one channel each, plus MOS tracks until there # are eight tracks in all # @return [String] # # @!attribute [rw] codec_options # If you specified `AAC` for `Audio:Codec`, this is the `AAC` # compression profile to use. Valid values include: # # `auto`, `AAC-LC`, `HE-AAC`, `HE-AACv2` # # If you specify `auto`, Elastic Transcoder chooses a profile based on # the bit rate of the output file. # @return [Types::AudioCodecOptions] # class AudioParameters < Struct.new( :codec, :sample_rate, :bit_rate, :channels, :audio_packing_mode, :codec_options) include Aws::Structure end # The `CancelJobRequest` structure. # # @note When making an API call, you may pass CancelJobRequest # data as a hash: # # { # id: "Id", # required # } # # @!attribute [rw] id # The identifier of the job that you want to cancel. # # To get a list of the jobs (including their `jobId`) that have a # status of `Submitted`, use the ListJobsByStatus API action. # @return [String] # class CancelJobRequest < Struct.new( :id) include Aws::Structure end # The response body contains a JSON object. If the job is successfully # canceled, the value of `Success` is `true`. # class CancelJobResponse < Aws::EmptyStructure; end # The file format of the output captions. If you leave this value blank, # Elastic Transcoder returns an error. # # @note When making an API call, you may pass CaptionFormat # data as a hash: # # { # format: "CaptionFormatFormat", # pattern: "CaptionFormatPattern", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # } # # @!attribute [rw] format # The format you specify determines whether Elastic Transcoder # generates an embedded or sidecar caption for this output. # # * **Valid Embedded Caption Formats:** # # * **for FLAC**\: None # # * **For MP3**\: None # # * **For MP4**\: mov-text # # * **For MPEG-TS**\: None # # * **For ogg**\: None # # * **For webm**\: None # # * **Valid Sidecar Caption Formats:** Elastic Transcoder supports # dfxp (first div element only), scc, srt, and webvtt. If you want # ttml or smpte-tt compatible captions, specify dfxp as your output # format. # # * **For FMP4**\: dfxp # # * **Non-FMP4 outputs**\: All sidecar types # # `fmp4` captions have an extension of `.ismt` # @return [String] # # @!attribute [rw] pattern # The prefix for caption filenames, in the form # *description*-`\{language\}`, where: # # * *description* is a description of the video. # # * `\{language\}` is a literal value that Elastic Transcoder replaces # with the two- or three-letter code for the language of the caption # in the output file names. # # If you don't include `\{language\}` in the file name pattern, # Elastic Transcoder automatically appends "`\{language\}`" to the # value that you specify for the description. In addition, Elastic # Transcoder automatically appends the count to the end of the segment # files. # # For example, suppose you're transcoding into srt format. When you # enter "Sydney-\\\{language\\}-sunrise", and the language of the # captions is English (en), the name of the first caption file is be # Sydney-en-sunrise00000.srt. # @return [String] # # @!attribute [rw] encryption # The encryption settings, if any, that you want Elastic Transcoder to # apply to your caption formats. # @return [Types::Encryption] # class CaptionFormat < Struct.new( :format, :pattern, :encryption) include Aws::Structure end # A source file for the input sidecar captions used during the # transcoding process. # # @note When making an API call, you may pass CaptionSource # data as a hash: # # { # key: "LongKey", # language: "Key", # time_offset: "TimeOffset", # label: "Name", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # } # # @!attribute [rw] key # The name of the sidecar caption file that you want Elastic # Transcoder to include in the output file. # @return [String] # # @!attribute [rw] language # A string that specifies the language of the caption. If you # specified multiple inputs with captions, the caption language must # match in order to be included in the output. Specify this as one of: # # * 2-character ISO 639-1 code # # * 3-character ISO 639-2 code # # For more information on ISO language codes and language names, see # the List of ISO 639-1 codes. # @return [String] # # @!attribute [rw] time_offset # For clip generation or captions that do not start at the same time # as the associated video file, the `TimeOffset` tells Elastic # Transcoder how much of the video to encode before including # captions. # # Specify the TimeOffset in the form \[+-\]SS.sss or # \[+-\]HH:mm:SS.ss. # @return [String] # # @!attribute [rw] label # The label of the caption shown in the player when choosing a # language. We recommend that you put the caption language name here, # in the language of the captions. # @return [String] # # @!attribute [rw] encryption # The encryption settings, if any, that Elastic Transcoder needs to # decyrpt your caption sources, or that you want Elastic Transcoder to # apply to your caption sources. # @return [Types::Encryption] # class CaptionSource < Struct.new( :key, :language, :time_offset, :label, :encryption) include Aws::Structure end # The captions to be created, if any. # # @note When making an API call, you may pass Captions # data as a hash: # # { # merge_policy: "CaptionMergePolicy", # caption_sources: [ # { # key: "LongKey", # language: "Key", # time_offset: "TimeOffset", # label: "Name", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # caption_formats: [ # { # format: "CaptionFormatFormat", # pattern: "CaptionFormatPattern", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # } # # @!attribute [rw] merge_policy # A policy that determines how Elastic Transcoder handles the # existence of multiple captions. # # * **MergeOverride:** Elastic Transcoder transcodes both embedded and # sidecar captions into outputs. If captions for a language are # embedded in the input file and also appear in a sidecar file, # Elastic Transcoder uses the sidecar captions and ignores the # embedded captions for that language. # # * **MergeRetain:** Elastic Transcoder transcodes both embedded and # sidecar captions into outputs. If captions for a language are # embedded in the input file and also appear in a sidecar file, # Elastic Transcoder uses the embedded captions and ignores the # sidecar captions for that language. If `CaptionSources` is empty, # Elastic Transcoder omits all sidecar captions from the output # files. # # * **Override:** Elastic Transcoder transcodes only the sidecar # captions that you specify in `CaptionSources`. # # `MergePolicy` cannot be null. # @return [String] # # @!attribute [rw] caption_sources # Source files for the input sidecar captions used during the # transcoding process. To omit all sidecar captions, leave # `CaptionSources` blank. # @return [Array] # # @!attribute [rw] caption_formats # The array of file formats for the output captions. If you leave this # value blank, Elastic Transcoder returns an error. # @return [Array] # class Captions < Struct.new( :merge_policy, :caption_sources, :caption_formats) include Aws::Structure end # Settings for one clip in a composition. All jobs in a playlist must # have the same clip settings. # # @note When making an API call, you may pass Clip # data as a hash: # # { # time_span: { # start_time: "Time", # duration: "Time", # }, # } # # @!attribute [rw] time_span # Settings that determine when a clip begins and how long it lasts. # @return [Types::TimeSpan] # class Clip < Struct.new( :time_span) include Aws::Structure end # The `CreateJobOutput` structure. # # @note When making an API call, you may pass CreateJobOutput # data as a hash: # # { # key: "Key", # thumbnail_pattern: "ThumbnailPattern", # thumbnail_encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # rotate: "Rotate", # preset_id: "Id", # segment_duration: "FloatString", # watermarks: [ # { # preset_watermark_id: "PresetWatermarkId", # input_key: "WatermarkKey", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # album_art: { # merge_policy: "MergePolicy", # artwork: [ # { # input_key: "WatermarkKey", # max_width: "DigitsOrAuto", # max_height: "DigitsOrAuto", # sizing_policy: "SizingPolicy", # padding_policy: "PaddingPolicy", # album_art_format: "JpgOrPng", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # }, # composition: [ # { # time_span: { # start_time: "Time", # duration: "Time", # }, # }, # ], # captions: { # merge_policy: "CaptionMergePolicy", # caption_sources: [ # { # key: "LongKey", # language: "Key", # time_offset: "TimeOffset", # label: "Name", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # caption_formats: [ # { # format: "CaptionFormatFormat", # pattern: "CaptionFormatPattern", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # }, # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # } # # @!attribute [rw] key # The name to assign to the transcoded file. Elastic Transcoder saves # the file in the Amazon S3 bucket specified by the `OutputBucket` # object in the pipeline that is specified by the pipeline ID. If a # file with the specified name already exists in the output bucket, # the job fails. # @return [String] # # @!attribute [rw] thumbnail_pattern # Whether you want Elastic Transcoder to create thumbnails for your # videos and, if so, how you want Elastic Transcoder to name the # files. # # If you don't want Elastic Transcoder to create thumbnails, specify # "". # # If you do want Elastic Transcoder to create thumbnails, specify the # information that you want to include in the file name for each # thumbnail. You can specify the following values in any sequence: # # * \{count\} (Required)\: If you want to create # thumbnails, you must include `\{count\}` in the `ThumbnailPattern` # object. Wherever you specify `\{count\}`, Elastic Transcoder adds # a five-digit sequence number (beginning with **00001**) to # thumbnail file names. The number indicates where a given thumbnail # appears in the sequence of thumbnails for a transcoded file. # # If you specify a literal value and/or `\{resolution\}` but you # omit `\{count\}`, Elastic Transcoder returns a validation error # and does not create the job. # # * **Literal values (Optional)**\: You can specify literal values # anywhere in the `ThumbnailPattern` object. For example, you can # include them as a file name prefix or as a delimiter between # `\{resolution\}` and `\{count\}`. # # * \{resolution\} (Optional)\: If you want # Elastic Transcoder to include the resolution in the file name, # include `\{resolution\}` in the `ThumbnailPattern` object. # # When creating thumbnails, Elastic Transcoder automatically saves the # files in the format (.jpg or .png) that appears in the preset that # you specified in the `PresetID` value of `CreateJobOutput`. Elastic # Transcoder also appends the applicable file name extension. # @return [String] # # @!attribute [rw] thumbnail_encryption # The encryption settings, if any, that you want Elastic Transcoder to # apply to your thumbnail. # @return [Types::Encryption] # # @!attribute [rw] rotate # The number of degrees clockwise by which you want Elastic Transcoder # to rotate the output relative to the input. Enter one of the # following values: `auto`, `0`, `90`, `180`, `270`. The value `auto` # generally works only if the file that you're transcoding contains # rotation metadata. # @return [String] # # @!attribute [rw] preset_id # The `Id` of the preset to use for this job. The preset determines # the audio, video, and thumbnail settings that Elastic Transcoder # uses for transcoding. # @return [String] # # @!attribute [rw] segment_duration # (Outputs in Fragmented MP4 or MPEG-TS format only. # # If you specify a preset in `PresetId` for which the value of # `Container` is `fmp4` (Fragmented MP4) or `ts` (MPEG-TS), # `SegmentDuration` is the target maximum duration of each segment in # seconds. For `HLSv3` format playlists, each media segment is stored # in a separate `.ts` file. For `HLSv4` and `Smooth` playlists, all # media segments for an output are stored in a single file. Each # segment is approximately the length of the `SegmentDuration`, though # individual segments might be shorter or longer. # # The range of valid values is 1 to 60 seconds. If the duration of the # video is not evenly divisible by `SegmentDuration`, the duration of # the last segment is the remainder of total length/SegmentDuration. # # Elastic Transcoder creates an output-specific playlist for each # output `HLS` output that you specify in OutputKeys. To add an output # to the master playlist for this job, include it in the `OutputKeys` # of the associated playlist. # @return [String] # # @!attribute [rw] watermarks # Information about the watermarks that you want Elastic Transcoder to # add to the video during transcoding. You can specify up to four # watermarks for each output. Settings for each watermark must be # defined in the preset for the current output. # @return [Array] # # @!attribute [rw] album_art # Information about the album art that you want Elastic Transcoder to # add to the file during transcoding. You can specify up to twenty # album artworks for each output. Settings for each artwork must be # defined in the job for the current output. # @return [Types::JobAlbumArt] # # @!attribute [rw] composition # You can create an output file that contains an excerpt from the # input file. This excerpt, called a clip, can come from the # beginning, middle, or end of the file. The Composition object # contains settings for the clips that make up an output file. For the # current release, you can only specify settings for a single clip per # output file. The Composition object cannot be null. # @return [Array] # # @!attribute [rw] captions # You can configure Elastic Transcoder to transcode captions, or # subtitles, from one format to another. All captions must be in # UTF-8. Elastic Transcoder supports two types of captions: # # * **Embedded:** Embedded captions are included in the same file as # the audio and video. Elastic Transcoder supports only one embedded # caption per language, to a maximum of 300 embedded captions per # file. # # Valid input values include: `CEA-608 (EIA-608`, first non-empty # channel only), `CEA-708 (EIA-708`, first non-empty channel only), # and `mov-text` # # Valid outputs include: `mov-text` # # Elastic Transcoder supports a maximum of one embedded format per # output. # # * **Sidecar:** Sidecar captions are kept in a separate metadata file # from the audio and video data. Sidecar captions require a player # that is capable of understanding the relationship between the # video file and the sidecar file. Elastic Transcoder supports only # one sidecar caption per language, to a maximum of 20 sidecar # captions per file. # # Valid input values include: `dfxp` (first div element only), # `ebu-tt`, `scc`, `smpt`, `srt`, `ttml` (first div element only), # and `webvtt` # # Valid outputs include: `dfxp` (first div element only), `scc`, # `srt`, and `webvtt`. # # If you want ttml or smpte-tt compatible captions, specify dfxp as # your output format. # # Elastic Transcoder does not support OCR (Optical Character # Recognition), does not accept pictures as a valid input for # captions, and is not available for audio-only transcoding. Elastic # Transcoder does not preserve text formatting (for example, italics) # during the transcoding process. # # To remove captions or leave the captions empty, set `Captions` to # null. To pass through existing captions unchanged, set the # `MergePolicy` to `MergeRetain`, and pass in a null `CaptionSources` # array. # # For more information on embedded files, see the Subtitles Wikipedia # page. # # For more information on sidecar files, see the Extensible Metadata # Platform and Sidecar file Wikipedia pages. # @return [Types::Captions] # # @!attribute [rw] encryption # You can specify encryption settings for any output files that you # want to use for a transcoding job. This includes the output file and # any watermarks, thumbnails, album art, or captions that you want to # use. You must specify encryption settings for each file # individually. # @return [Types::Encryption] # class CreateJobOutput < Struct.new( :key, :thumbnail_pattern, :thumbnail_encryption, :rotate, :preset_id, :segment_duration, :watermarks, :album_art, :composition, :captions, :encryption) include Aws::Structure end # Information about the master playlist. # # @note When making an API call, you may pass CreateJobPlaylist # data as a hash: # # { # name: "Filename", # format: "PlaylistFormat", # output_keys: ["Key"], # hls_content_protection: { # method: "HlsContentProtectionMethod", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # license_acquisition_url: "ZeroTo512String", # key_storage_policy: "KeyStoragePolicy", # }, # play_ready_drm: { # format: "PlayReadyDrmFormatString", # key: "NonEmptyBase64EncodedString", # key_md_5: "NonEmptyBase64EncodedString", # key_id: "KeyIdGuid", # initialization_vector: "ZeroTo255String", # license_acquisition_url: "OneTo512String", # }, # } # # @!attribute [rw] name # The name that you want Elastic Transcoder to assign to the master # playlist, for example, nyc-vacation.m3u8. If the name includes a `/` # character, the section of the name before the last `/` must be # identical for all `Name` objects. If you create more than one master # playlist, the values of all `Name` objects must be unique. # # Elastic Transcoder automatically appends the relevant file extension # to the file name (`.m3u8` for `HLSv3` and `HLSv4` playlists, and # `.ism` and `.ismc` for `Smooth` playlists). If you include a file # extension in `Name`, the file name will have two extensions. # # # @return [String] # # @!attribute [rw] format # The format of the output playlist. Valid formats include `HLSv3`, # `HLSv4`, and `Smooth`. # @return [String] # # @!attribute [rw] output_keys # For each output in this job that you want to include in a master # playlist, the value of the `Outputs:Key` object. # # * If your output is not `HLS` or does not have a segment duration # set, the name of the output file is a concatenation of # `OutputKeyPrefix` and `Outputs:Key`\: # # OutputKeyPrefix`Outputs:Key` # # * If your output is `HLSv3` and has a segment duration set, or is # not included in a playlist, Elastic Transcoder creates an output # playlist file with a file extension of `.m3u8`, and a series of # `.ts` files that include a five-digit sequential counter beginning # with 00000: # # OutputKeyPrefix`Outputs:Key`.m3u8 # # OutputKeyPrefix`Outputs:Key`00000.ts # # * If your output is `HLSv4`, has a segment duration set, and is # included in an `HLSv4` playlist, Elastic Transcoder creates an # output playlist file with a file extension of `_v4.m3u8`. If the # output is video, Elastic Transcoder also creates an output file # with an extension of `_iframe.m3u8`\: # # OutputKeyPrefix`Outputs:Key`\_v4.m3u8 # # OutputKeyPrefix`Outputs:Key`\_iframe.m3u8 # # OutputKeyPrefix`Outputs:Key`.ts # # Elastic Transcoder automatically appends the relevant file extension # to the file name. If you include a file extension in Output Key, the # file name will have two extensions. # # If you include more than one output in a playlist, any segment # duration settings, clip settings, or caption settings must be the # same for all outputs in the playlist. For `Smooth` playlists, the # `Audio:Profile`, `Video:Profile`, and `Video:FrameRate` to # `Video:KeyframesMaxDist` ratio must be the same for all outputs. # @return [Array] # # @!attribute [rw] hls_content_protection # The HLS content protection settings, if any, that you want Elastic # Transcoder to apply to the output files associated with this # playlist. # @return [Types::HlsContentProtection] # # @!attribute [rw] play_ready_drm # The DRM settings, if any, that you want Elastic Transcoder to apply # to the output files associated with this playlist. # @return [Types::PlayReadyDrm] # class CreateJobPlaylist < Struct.new( :name, :format, :output_keys, :hls_content_protection, :play_ready_drm) include Aws::Structure end # The `CreateJobRequest` structure. # # @note When making an API call, you may pass CreateJobRequest # data as a hash: # # { # pipeline_id: "Id", # required # input: { # key: "LongKey", # frame_rate: "FrameRate", # resolution: "Resolution", # aspect_ratio: "AspectRatio", # interlaced: "Interlaced", # container: "JobContainer", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # time_span: { # start_time: "Time", # duration: "Time", # }, # input_captions: { # merge_policy: "CaptionMergePolicy", # caption_sources: [ # { # key: "LongKey", # language: "Key", # time_offset: "TimeOffset", # label: "Name", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # }, # detected_properties: { # width: 1, # height: 1, # frame_rate: "FloatString", # file_size: 1, # duration_millis: 1, # }, # }, # inputs: [ # { # key: "LongKey", # frame_rate: "FrameRate", # resolution: "Resolution", # aspect_ratio: "AspectRatio", # interlaced: "Interlaced", # container: "JobContainer", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # time_span: { # start_time: "Time", # duration: "Time", # }, # input_captions: { # merge_policy: "CaptionMergePolicy", # caption_sources: [ # { # key: "LongKey", # language: "Key", # time_offset: "TimeOffset", # label: "Name", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # }, # detected_properties: { # width: 1, # height: 1, # frame_rate: "FloatString", # file_size: 1, # duration_millis: 1, # }, # }, # ], # output: { # key: "Key", # thumbnail_pattern: "ThumbnailPattern", # thumbnail_encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # rotate: "Rotate", # preset_id: "Id", # segment_duration: "FloatString", # watermarks: [ # { # preset_watermark_id: "PresetWatermarkId", # input_key: "WatermarkKey", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # album_art: { # merge_policy: "MergePolicy", # artwork: [ # { # input_key: "WatermarkKey", # max_width: "DigitsOrAuto", # max_height: "DigitsOrAuto", # sizing_policy: "SizingPolicy", # padding_policy: "PaddingPolicy", # album_art_format: "JpgOrPng", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # }, # composition: [ # { # time_span: { # start_time: "Time", # duration: "Time", # }, # }, # ], # captions: { # merge_policy: "CaptionMergePolicy", # caption_sources: [ # { # key: "LongKey", # language: "Key", # time_offset: "TimeOffset", # label: "Name", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # caption_formats: [ # { # format: "CaptionFormatFormat", # pattern: "CaptionFormatPattern", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # }, # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # outputs: [ # { # key: "Key", # thumbnail_pattern: "ThumbnailPattern", # thumbnail_encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # rotate: "Rotate", # preset_id: "Id", # segment_duration: "FloatString", # watermarks: [ # { # preset_watermark_id: "PresetWatermarkId", # input_key: "WatermarkKey", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # album_art: { # merge_policy: "MergePolicy", # artwork: [ # { # input_key: "WatermarkKey", # max_width: "DigitsOrAuto", # max_height: "DigitsOrAuto", # sizing_policy: "SizingPolicy", # padding_policy: "PaddingPolicy", # album_art_format: "JpgOrPng", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # }, # composition: [ # { # time_span: { # start_time: "Time", # duration: "Time", # }, # }, # ], # captions: { # merge_policy: "CaptionMergePolicy", # caption_sources: [ # { # key: "LongKey", # language: "Key", # time_offset: "TimeOffset", # label: "Name", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # caption_formats: [ # { # format: "CaptionFormatFormat", # pattern: "CaptionFormatPattern", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # }, # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # output_key_prefix: "Key", # playlists: [ # { # name: "Filename", # format: "PlaylistFormat", # output_keys: ["Key"], # hls_content_protection: { # method: "HlsContentProtectionMethod", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # license_acquisition_url: "ZeroTo512String", # key_storage_policy: "KeyStoragePolicy", # }, # play_ready_drm: { # format: "PlayReadyDrmFormatString", # key: "NonEmptyBase64EncodedString", # key_md_5: "NonEmptyBase64EncodedString", # key_id: "KeyIdGuid", # initialization_vector: "ZeroTo255String", # license_acquisition_url: "OneTo512String", # }, # }, # ], # user_metadata: { # "String" => "String", # }, # } # # @!attribute [rw] pipeline_id # The `Id` of the pipeline that you want Elastic Transcoder to use for # transcoding. The pipeline determines several settings, including the # Amazon S3 bucket from which Elastic Transcoder gets the files to # transcode and the bucket into which Elastic Transcoder puts the # transcoded files. # @return [String] # # @!attribute [rw] input # A section of the request body that provides information about the # file that is being transcoded. # @return [Types::JobInput] # # @!attribute [rw] inputs # A section of the request body that provides information about the # files that are being transcoded. # @return [Array] # # @!attribute [rw] output # A section of the request body that provides information about the # transcoded (target) file. We strongly recommend that you use the # `Outputs` syntax instead of the `Output` syntax. # @return [Types::CreateJobOutput] # # @!attribute [rw] outputs # A section of the request body that provides information about the # transcoded (target) files. We recommend that you use the `Outputs` # syntax instead of the `Output` syntax. # @return [Array] # # @!attribute [rw] output_key_prefix # The value, if any, that you want Elastic Transcoder to prepend to # the names of all files that this job creates, including output # files, thumbnails, and playlists. # @return [String] # # @!attribute [rw] playlists # If you specify a preset in `PresetId` for which the value of # `Container` is fmp4 (Fragmented MP4) or ts (MPEG-TS), Playlists # contains information about the master playlists that you want # Elastic Transcoder to create. # # The maximum number of master playlists in a job is 30. # @return [Array] # # @!attribute [rw] user_metadata # User-defined metadata that you want to associate with an Elastic # Transcoder job. You specify metadata in `key/value` pairs, and you # can add up to 10 `key/value` pairs per job. Elastic Transcoder does # not guarantee that `key/value` pairs are returned in the same order # in which you specify them. # @return [Hash] # class CreateJobRequest < Struct.new( :pipeline_id, :input, :inputs, :output, :outputs, :output_key_prefix, :playlists, :user_metadata) include Aws::Structure end # The CreateJobResponse structure. # # @!attribute [rw] job # A section of the response body that provides information about the # job that is created. # @return [Types::Job] # class CreateJobResponse < Struct.new( :job) include Aws::Structure end # The `CreatePipelineRequest` structure. # # @note When making an API call, you may pass CreatePipelineRequest # data as a hash: # # { # name: "Name", # required # input_bucket: "BucketName", # required # output_bucket: "BucketName", # role: "Role", # required # aws_kms_key_arn: "KeyArn", # notifications: { # progressing: "SnsTopic", # completed: "SnsTopic", # warning: "SnsTopic", # error: "SnsTopic", # }, # content_config: { # bucket: "BucketName", # storage_class: "StorageClass", # permissions: [ # { # grantee_type: "GranteeType", # grantee: "Grantee", # access: ["AccessControl"], # }, # ], # }, # thumbnail_config: { # bucket: "BucketName", # storage_class: "StorageClass", # permissions: [ # { # grantee_type: "GranteeType", # grantee: "Grantee", # access: ["AccessControl"], # }, # ], # }, # } # # @!attribute [rw] name # The name of the pipeline. We recommend that the name be unique # within the AWS account, but uniqueness is not enforced. # # Constraints: Maximum 40 characters. # @return [String] # # @!attribute [rw] input_bucket # The Amazon S3 bucket in which you saved the media files that you # want to transcode. # @return [String] # # @!attribute [rw] output_bucket # The Amazon S3 bucket in which you want Elastic Transcoder to save # the transcoded files. (Use this, or use ContentConfig:Bucket plus # ThumbnailConfig:Bucket.) # # Specify this value when all of the following are true: # # * You want to save transcoded files, thumbnails (if any), and # playlists (if any) together in one bucket. # # * You do not want to specify the users or groups who have access to # the transcoded files, thumbnails, and playlists. # # * You do not want to specify the permissions that Elastic Transcoder # grants to the files. # # When Elastic Transcoder saves files in `OutputBucket`, it grants # full control over the files only to the AWS account that owns the # role that is specified by `Role`. # # * You want to associate the transcoded files and thumbnails with the # Amazon S3 Standard storage class. # # If you want to save transcoded files and playlists in one bucket and # thumbnails in another bucket, specify which users can access the # transcoded files or the permissions the users have, or change the # Amazon S3 storage class, omit `OutputBucket` and specify values for # `ContentConfig` and `ThumbnailConfig` instead. # @return [String] # # @!attribute [rw] role # The IAM Amazon Resource Name (ARN) for the role that you want # Elastic Transcoder to use to create the pipeline. # @return [String] # # @!attribute [rw] aws_kms_key_arn # The AWS Key Management Service (AWS KMS) key that you want to use # with this pipeline. # # If you use either `s3` or `s3-aws-kms` as your `Encryption:Mode`, # you don't need to provide a key with your job because a default # key, known as an AWS-KMS key, is created for you automatically. You # need to provide an AWS-KMS key only if you want to use a non-default # AWS-KMS key, or if you are using an `Encryption:Mode` of # `aes-cbc-pkcs7`, `aes-ctr`, or `aes-gcm`. # @return [String] # # @!attribute [rw] notifications # The Amazon Simple Notification Service (Amazon SNS) topic that you # want to notify to report job status. # # To receive notifications, you must also subscribe to the new topic # in the Amazon SNS console. # # * **Progressing**\: The topic ARN for the Amazon Simple Notification # Service (Amazon SNS) topic that you want to notify when Elastic # Transcoder has started to process a job in this pipeline. This is # the ARN that Amazon SNS returned when you created the topic. For # more information, see Create a Topic in the Amazon Simple # Notification Service Developer Guide. # # * **Complete**\: The topic ARN for the Amazon SNS topic that you # want to notify when Elastic Transcoder has finished processing a # job in this pipeline. This is the ARN that Amazon SNS returned # when you created the topic. # # * **Warning**\: The topic ARN for the Amazon SNS topic that you want # to notify when Elastic Transcoder encounters a warning condition # while processing a job in this pipeline. This is the ARN that # Amazon SNS returned when you created the topic. # # * **Error**\: The topic ARN for the Amazon SNS topic that you want # to notify when Elastic Transcoder encounters an error condition # while processing a job in this pipeline. This is the ARN that # Amazon SNS returned when you created the topic. # @return [Types::Notifications] # # @!attribute [rw] content_config # The optional `ContentConfig` object specifies information about the # Amazon S3 bucket in which you want Elastic Transcoder to save # transcoded files and playlists: which bucket to use, which users you # want to have access to the files, the type of access you want users # to have, and the storage class that you want to assign to the files. # # If you specify values for `ContentConfig`, you must also specify # values for `ThumbnailConfig`. # # If you specify values for `ContentConfig` and `ThumbnailConfig`, # omit the `OutputBucket` object. # # * **Bucket**\: The Amazon S3 bucket in which you want Elastic # Transcoder to save transcoded files and playlists. # # * **Permissions** (Optional): The Permissions object specifies which # users you want to have access to transcoded files and the type of # access you want them to have. You can grant permissions to a # maximum of 30 users and/or predefined Amazon S3 groups. # # * **Grantee Type**\: Specify the type of value that appears in the # `Grantee` object: # # * **Canonical**\: The value in the `Grantee` object is either the # canonical user ID for an AWS account or an origin access # identity for an Amazon CloudFront distribution. For more # information about canonical user IDs, see Access Control List # (ACL) Overview in the Amazon Simple Storage Service Developer # Guide. For more information about using CloudFront origin access # identities to require that users use CloudFront URLs instead of # Amazon S3 URLs, see Using an Origin Access Identity to Restrict # Access to Your Amazon S3 Content. # # A canonical user ID is not the same as an AWS account number. # # * **Email**\: The value in the `Grantee` object is the registered # email address of an AWS account. # # * **Group**\: The value in the `Grantee` object is one of the # following predefined Amazon S3 groups: `AllUsers`, # `AuthenticatedUsers`, or `LogDelivery`. # # * **Grantee**\: The AWS user or group that you want to have access # to transcoded files and playlists. To identify the user or group, # you can specify the canonical user ID for an AWS account, an # origin access identity for a CloudFront distribution, the # registered email address of an AWS account, or a predefined Amazon # S3 group # # * **Access**\: The permission that you want to give to the AWS user # that you specified in `Grantee`. Permissions are granted on the # files that Elastic Transcoder adds to the bucket, including # playlists and video files. Valid values include: # # * `READ`\: The grantee can read the objects and metadata for # objects that Elastic Transcoder adds to the Amazon S3 bucket. # # * `READ_ACP`\: The grantee can read the object ACL for objects # that Elastic Transcoder adds to the Amazon S3 bucket. # # * `WRITE_ACP`\: The grantee can write the ACL for the objects that # Elastic Transcoder adds to the Amazon S3 bucket. # # * `FULL_CONTROL`\: The grantee has `READ`, `READ_ACP`, and # `WRITE_ACP` permissions for the objects that Elastic Transcoder # adds to the Amazon S3 bucket. # # * **StorageClass**\: The Amazon S3 storage class, `Standard` or # `ReducedRedundancy`, that you want Elastic Transcoder to assign to # the video files and playlists that it stores in your Amazon S3 # bucket. # @return [Types::PipelineOutputConfig] # # @!attribute [rw] thumbnail_config # The `ThumbnailConfig` object specifies several values, including the # Amazon S3 bucket in which you want Elastic Transcoder to save # thumbnail files, which users you want to have access to the files, # the type of access you want users to have, and the storage class # that you want to assign to the files. # # If you specify values for `ContentConfig`, you must also specify # values for `ThumbnailConfig` even if you don't want to create # thumbnails. # # If you specify values for `ContentConfig` and `ThumbnailConfig`, # omit the `OutputBucket` object. # # * **Bucket**\: The Amazon S3 bucket in which you want Elastic # Transcoder to save thumbnail files. # # * **Permissions** (Optional): The `Permissions` object specifies # which users and/or predefined Amazon S3 groups you want to have # access to thumbnail files, and the type of access you want them to # have. You can grant permissions to a maximum of 30 users and/or # predefined Amazon S3 groups. # # * **GranteeType**\: Specify the type of value that appears in the # Grantee object: # # * **Canonical**\: The value in the `Grantee` object is either the # canonical user ID for an AWS account or an origin access # identity for an Amazon CloudFront distribution. # # A canonical user ID is not the same as an AWS account number. # # * **Email**\: The value in the `Grantee` object is the registered # email address of an AWS account. # # * **Group**\: The value in the `Grantee` object is one of the # following predefined Amazon S3 groups: `AllUsers`, # `AuthenticatedUsers`, or `LogDelivery`. # # * **Grantee**\: The AWS user or group that you want to have access # to thumbnail files. To identify the user or group, you can specify # the canonical user ID for an AWS account, an origin access # identity for a CloudFront distribution, the registered email # address of an AWS account, or a predefined Amazon S3 group. # # * **Access**\: The permission that you want to give to the AWS user # that you specified in `Grantee`. Permissions are granted on the # thumbnail files that Elastic Transcoder adds to the bucket. Valid # values include: # # * `READ`\: The grantee can read the thumbnails and metadata for # objects that Elastic Transcoder adds to the Amazon S3 bucket. # # * `READ_ACP`\: The grantee can read the object ACL for thumbnails # that Elastic Transcoder adds to the Amazon S3 bucket. # # * `WRITE_ACP`\: The grantee can write the ACL for the thumbnails # that Elastic Transcoder adds to the Amazon S3 bucket. # # * `FULL_CONTROL`\: The grantee has `READ`, `READ_ACP`, and # `WRITE_ACP` permissions for the thumbnails that Elastic # Transcoder adds to the Amazon S3 bucket. # # * **StorageClass**\: The Amazon S3 storage class, `Standard` or # `ReducedRedundancy`, that you want Elastic Transcoder to assign to # the thumbnails that it stores in your Amazon S3 bucket. # @return [Types::PipelineOutputConfig] # class CreatePipelineRequest < Struct.new( :name, :input_bucket, :output_bucket, :role, :aws_kms_key_arn, :notifications, :content_config, :thumbnail_config) include Aws::Structure end # When you create a pipeline, Elastic Transcoder returns the values that # you specified in the request. # # @!attribute [rw] pipeline # A section of the response body that provides information about the # pipeline that is created. # @return [Types::Pipeline] # # @!attribute [rw] warnings # Elastic Transcoder returns a warning if the resources used by your # pipeline are not in the same region as the pipeline. # # Using resources in the same region, such as your Amazon S3 buckets, # Amazon SNS notification topics, and AWS KMS key, reduces processing # time and prevents cross-regional charges. # @return [Array] # class CreatePipelineResponse < Struct.new( :pipeline, :warnings) include Aws::Structure end # The `CreatePresetRequest` structure. # # @note When making an API call, you may pass CreatePresetRequest # data as a hash: # # { # name: "Name", # required # description: "Description", # container: "PresetContainer", # required # video: { # codec: "VideoCodec", # codec_options: { # "CodecOption" => "CodecOption", # }, # keyframes_max_dist: "KeyframesMaxDist", # fixed_gop: "FixedGOP", # bit_rate: "VideoBitRate", # frame_rate: "FrameRate", # max_frame_rate: "MaxFrameRate", # resolution: "Resolution", # aspect_ratio: "AspectRatio", # max_width: "DigitsOrAuto", # max_height: "DigitsOrAuto", # display_aspect_ratio: "AspectRatio", # sizing_policy: "SizingPolicy", # padding_policy: "PaddingPolicy", # watermarks: [ # { # id: "PresetWatermarkId", # max_width: "PixelsOrPercent", # max_height: "PixelsOrPercent", # sizing_policy: "WatermarkSizingPolicy", # horizontal_align: "HorizontalAlign", # horizontal_offset: "PixelsOrPercent", # vertical_align: "VerticalAlign", # vertical_offset: "PixelsOrPercent", # opacity: "Opacity", # target: "Target", # }, # ], # }, # audio: { # codec: "AudioCodec", # sample_rate: "AudioSampleRate", # bit_rate: "AudioBitRate", # channels: "AudioChannels", # audio_packing_mode: "AudioPackingMode", # codec_options: { # profile: "AudioCodecProfile", # bit_depth: "AudioBitDepth", # bit_order: "AudioBitOrder", # signed: "AudioSigned", # }, # }, # thumbnails: { # format: "JpgOrPng", # interval: "Digits", # resolution: "ThumbnailResolution", # aspect_ratio: "AspectRatio", # max_width: "DigitsOrAuto", # max_height: "DigitsOrAuto", # sizing_policy: "SizingPolicy", # padding_policy: "PaddingPolicy", # }, # } # # @!attribute [rw] name # The name of the preset. We recommend that the name be unique within # the AWS account, but uniqueness is not enforced. # @return [String] # # @!attribute [rw] description # A description of the preset. # @return [String] # # @!attribute [rw] container # The container type for the output file. Valid values include `flac`, # `flv`, `fmp4`, `gif`, `mp3`, `mp4`, `mpg`, `mxf`, `oga`, `ogg`, # `ts`, and `webm`. # @return [String] # # @!attribute [rw] video # A section of the request body that specifies the video parameters. # @return [Types::VideoParameters] # # @!attribute [rw] audio # A section of the request body that specifies the audio parameters. # @return [Types::AudioParameters] # # @!attribute [rw] thumbnails # A section of the request body that specifies the thumbnail # parameters, if any. # @return [Types::Thumbnails] # class CreatePresetRequest < Struct.new( :name, :description, :container, :video, :audio, :thumbnails) include Aws::Structure end # The `CreatePresetResponse` structure. # # @!attribute [rw] preset # A section of the response body that provides information about the # preset that is created. # @return [Types::Preset] # # @!attribute [rw] warning # If the preset settings don't comply with the standards for the # video codec but Elastic Transcoder created the preset, this message # explains the reason the preset settings don't meet the standard. # Elastic Transcoder created the preset because the settings might # produce acceptable output. # @return [String] # class CreatePresetResponse < Struct.new( :preset, :warning) include Aws::Structure end # The `DeletePipelineRequest` structure. # # @note When making an API call, you may pass DeletePipelineRequest # data as a hash: # # { # id: "Id", # required # } # # @!attribute [rw] id # The identifier of the pipeline that you want to delete. # @return [String] # class DeletePipelineRequest < Struct.new( :id) include Aws::Structure end # The `DeletePipelineResponse` structure. # class DeletePipelineResponse < Aws::EmptyStructure; end # The `DeletePresetRequest` structure. # # @note When making an API call, you may pass DeletePresetRequest # data as a hash: # # { # id: "Id", # required # } # # @!attribute [rw] id # The identifier of the preset for which you want to get detailed # information. # @return [String] # class DeletePresetRequest < Struct.new( :id) include Aws::Structure end # The `DeletePresetResponse` structure. # class DeletePresetResponse < Aws::EmptyStructure; end # The detected properties of the input file. Elastic Transcoder # identifies these values from the input file. # # @note When making an API call, you may pass DetectedProperties # data as a hash: # # { # width: 1, # height: 1, # frame_rate: "FloatString", # file_size: 1, # duration_millis: 1, # } # # @!attribute [rw] width # The detected width of the input file, in pixels. # @return [Integer] # # @!attribute [rw] height # The detected height of the input file, in pixels. # @return [Integer] # # @!attribute [rw] frame_rate # The detected frame rate of the input file, in frames per second. # @return [String] # # @!attribute [rw] file_size # The detected file size of the input file, in bytes. # @return [Integer] # # @!attribute [rw] duration_millis # The detected duration of the input file, in milliseconds. # @return [Integer] # class DetectedProperties < Struct.new( :width, :height, :frame_rate, :file_size, :duration_millis) include Aws::Structure end # The encryption settings, if any, that are used for decrypting your # input files or encrypting your output files. If your input file is # encrypted, you must specify the mode that Elastic Transcoder uses to # decrypt your file, otherwise you must specify the mode you want # Elastic Transcoder to use to encrypt your output files. # # @note When making an API call, you may pass Encryption # data as a hash: # # { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # } # # @!attribute [rw] mode # The specific server-side encryption mode that you want Elastic # Transcoder to use when decrypting your input files or encrypting # your output files. Elastic Transcoder supports the following # options: # # * **s3:** Amazon S3 creates and manages the keys used for encrypting # your files. # # * **s3-aws-kms:** Amazon S3 calls the Amazon Key Management Service, # which creates and manages the keys that are used for encrypting # your files. If you specify `s3-aws-kms` and you don't want to use # the default key, you must add the AWS-KMS key that you want to use # to your pipeline. # # * **aes-cbc-pkcs7:** A padded cipher-block mode of operation # originally used for HLS files. # # * **aes-ctr:** AES Counter Mode. # # * **aes-gcm:** AES Galois Counter Mode, a mode of operation that is # an authenticated encryption format, meaning that a file, key, or # initialization vector that has been tampered with fails the # decryption process. # # For all three AES options, you must provide the following settings, # which must be base64-encoded: # # * **Key** # # * **Key MD5** # # * **Initialization Vector** # # For the AES modes, your private encryption keys and your unencrypted # data are never stored by AWS; therefore, it is important that you # safely manage your encryption keys. If you lose them, you won't be # able to unencrypt your data. # @return [String] # # @!attribute [rw] key # The data encryption key that you want Elastic Transcoder to use to # encrypt your output file, or that was used to encrypt your input # file. The key must be base64-encoded and it must be one of the # following bit lengths before being base64-encoded: # # `128`, `192`, or `256`. # # The key must also be encrypted by using the Amazon Key Management # Service. # @return [String] # # @!attribute [rw] key_md_5 # The MD5 digest of the key that you used to encrypt your input file, # or that you want Elastic Transcoder to use to encrypt your output # file. Elastic Transcoder uses the key digest as a checksum to make # sure your key was not corrupted in transit. The key MD5 must be # base64-encoded, and it must be exactly 16 bytes long before being # base64-encoded. # @return [String] # # @!attribute [rw] initialization_vector # The series of random bits created by a random bit generator, unique # for every encryption operation, that you used to encrypt your input # files or that you want Elastic Transcoder to use to encrypt your # output files. The initialization vector must be base64-encoded, and # it must be exactly 16 bytes long before being base64-encoded. # @return [String] # class Encryption < Struct.new( :mode, :key, :key_md_5, :initialization_vector) include Aws::Structure end # The HLS content protection settings, if any, that you want Elastic # Transcoder to apply to your output files. # # @note When making an API call, you may pass HlsContentProtection # data as a hash: # # { # method: "HlsContentProtectionMethod", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # license_acquisition_url: "ZeroTo512String", # key_storage_policy: "KeyStoragePolicy", # } # # @!attribute [rw] method # The content protection method for your output. The only valid value # is: `aes-128`. # # This value is written into the method attribute of the `EXT-X-KEY` # metadata tag in the output playlist. # @return [String] # # @!attribute [rw] key # If you want Elastic Transcoder to generate a key for you, leave this # field blank. # # If you choose to supply your own key, you must encrypt the key by # using AWS KMS. The key must be base64-encoded, and it must be one of # the following bit lengths before being base64-encoded: # # `128`, `192`, or `256`. # @return [String] # # @!attribute [rw] key_md_5 # If Elastic Transcoder is generating your key for you, you must leave # this field blank. # # The MD5 digest of the key that you want Elastic Transcoder to use to # encrypt your output file, and that you want Elastic Transcoder to # use as a checksum to make sure your key was not corrupted in # transit. The key MD5 must be base64-encoded, and it must be exactly # 16 bytes before being base64- encoded. # @return [String] # # @!attribute [rw] initialization_vector # If Elastic Transcoder is generating your key for you, you must leave # this field blank. # # The series of random bits created by a random bit generator, unique # for every encryption operation, that you want Elastic Transcoder to # use to encrypt your output files. The initialization vector must be # base64-encoded, and it must be exactly 16 bytes before being # base64-encoded. # @return [String] # # @!attribute [rw] license_acquisition_url # The location of the license key required to decrypt your HLS # playlist. The URL must be an absolute path, and is referenced in the # URI attribute of the EXT-X-KEY metadata tag in the playlist file. # @return [String] # # @!attribute [rw] key_storage_policy # Specify whether you want Elastic Transcoder to write your HLS # license key to an Amazon S3 bucket. If you choose # `WithVariantPlaylists`, `LicenseAcquisitionUrl` must be left blank # and Elastic Transcoder writes your data key into the same bucket as # the associated playlist. # @return [String] # class HlsContentProtection < Struct.new( :method, :key, :key_md_5, :initialization_vector, :license_acquisition_url, :key_storage_policy) include Aws::Structure end class IncompatibleVersionException < Aws::EmptyStructure; end # The captions to be created, if any. # # @note When making an API call, you may pass InputCaptions # data as a hash: # # { # merge_policy: "CaptionMergePolicy", # caption_sources: [ # { # key: "LongKey", # language: "Key", # time_offset: "TimeOffset", # label: "Name", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # } # # @!attribute [rw] merge_policy # A policy that determines how Elastic Transcoder handles the # existence of multiple captions. # # * **MergeOverride:** Elastic Transcoder transcodes both embedded and # sidecar captions into outputs. If captions for a language are # embedded in the input file and also appear in a sidecar file, # Elastic Transcoder uses the sidecar captions and ignores the # embedded captions for that language. # # * **MergeRetain:** Elastic Transcoder transcodes both embedded and # sidecar captions into outputs. If captions for a language are # embedded in the input file and also appear in a sidecar file, # Elastic Transcoder uses the embedded captions and ignores the # sidecar captions for that language. If `CaptionSources` is empty, # Elastic Transcoder omits all sidecar captions from the output # files. # # * **Override:** Elastic Transcoder transcodes only the sidecar # captions that you specify in `CaptionSources`. # # `MergePolicy` cannot be null. # @return [String] # # @!attribute [rw] caption_sources # Source files for the input sidecar captions used during the # transcoding process. To omit all sidecar captions, leave # `CaptionSources` blank. # @return [Array] # class InputCaptions < Struct.new( :merge_policy, :caption_sources) include Aws::Structure end # Elastic Transcoder encountered an unexpected exception while trying to # fulfill the request. # class InternalServiceException < Aws::EmptyStructure; end # A section of the response body that provides information about the job # that is created. # # @!attribute [rw] id # The identifier that Elastic Transcoder assigned to the job. You use # this value to get settings for the job or to delete the job. # @return [String] # # @!attribute [rw] arn # The Amazon Resource Name (ARN) for the job. # @return [String] # # @!attribute [rw] pipeline_id # The `Id` of the pipeline that you want Elastic Transcoder to use for # transcoding. The pipeline determines several settings, including the # Amazon S3 bucket from which Elastic Transcoder gets the files to # transcode and the bucket into which Elastic Transcoder puts the # transcoded files. # @return [String] # # @!attribute [rw] input # A section of the request or response body that provides information # about the file that is being transcoded. # @return [Types::JobInput] # # @!attribute [rw] inputs # Information about the files that you're transcoding. If you # specified multiple files for this job, Elastic Transcoder stitches # the files together to make one output. # @return [Array] # # @!attribute [rw] output # If you specified one output for a job, information about that # output. If you specified multiple outputs for a job, the Output # object lists information about the first output. This duplicates the # information that is listed for the first output in the Outputs # object. # # Outputs recommended instead. # # A section of the request or response body that provides information # about the transcoded (target) file. # @return [Types::JobOutput] # # @!attribute [rw] outputs # Information about the output files. We recommend that you use the # `Outputs` syntax for all jobs, even when you want Elastic Transcoder # to transcode a file into only one format. Do not use both the # `Outputs` and `Output` syntaxes in the same request. You can create # a maximum of 30 outputs per job. # # If you specify more than one output for a job, Elastic Transcoder # creates the files for each output in the order in which you specify # them in the job. # @return [Array] # # @!attribute [rw] output_key_prefix # The value, if any, that you want Elastic Transcoder to prepend to # the names of all files that this job creates, including output # files, thumbnails, and playlists. We recommend that you add a / or # some other delimiter to the end of the `OutputKeyPrefix`. # @return [String] # # @!attribute [rw] playlists # Outputs in Fragmented MP4 or MPEG-TS format only. # # If you specify a preset in `PresetId` for which the value of # `Container` is fmp4 (Fragmented MP4) or ts (MPEG-TS), `Playlists` # contains information about the master playlists that you want # Elastic Transcoder to create. # # The maximum number of master playlists in a job is 30. # @return [Array] # # @!attribute [rw] status # The status of the job: `Submitted`, `Progressing`, `Complete`, # `Canceled`, or `Error`. # @return [String] # # @!attribute [rw] user_metadata # User-defined metadata that you want to associate with an Elastic # Transcoder job. You specify metadata in `key/value` pairs, and you # can add up to 10 `key/value` pairs per job. Elastic Transcoder does # not guarantee that `key/value` pairs are returned in the same order # in which you specify them. # # Metadata `keys` and `values` must use characters from the following # list: # # * `0-9` # # * `A-Z` and `a-z` # # * `Space` # # * The following symbols: `_.:/=+-%@` # @return [Hash] # # @!attribute [rw] timing # Details about the timing of a job. # @return [Types::Timing] # class Job < Struct.new( :id, :arn, :pipeline_id, :input, :inputs, :output, :outputs, :output_key_prefix, :playlists, :status, :user_metadata, :timing) include Aws::Structure end # The .jpg or .png file associated with an audio file. # # @note When making an API call, you may pass JobAlbumArt # data as a hash: # # { # merge_policy: "MergePolicy", # artwork: [ # { # input_key: "WatermarkKey", # max_width: "DigitsOrAuto", # max_height: "DigitsOrAuto", # sizing_policy: "SizingPolicy", # padding_policy: "PaddingPolicy", # album_art_format: "JpgOrPng", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # } # # @!attribute [rw] merge_policy # A policy that determines how Elastic Transcoder handles the # existence of multiple album artwork files. # # * `Replace:` The specified album art replaces any existing album # art. # # * `Prepend:` The specified album art is placed in front of any # existing album art. # # * `Append:` The specified album art is placed after any existing # album art. # # * `Fallback:` If the original input file contains artwork, Elastic # Transcoder uses that artwork for the output. If the original input # does not contain artwork, Elastic Transcoder uses the specified # album art file. # @return [String] # # @!attribute [rw] artwork # The file to be used as album art. There can be multiple artworks # associated with an audio file, to a maximum of 20. Valid formats are # `.jpg` and `.png` # @return [Array] # class JobAlbumArt < Struct.new( :merge_policy, :artwork) include Aws::Structure end # Information about the file that you're transcoding. # # @note When making an API call, you may pass JobInput # data as a hash: # # { # key: "LongKey", # frame_rate: "FrameRate", # resolution: "Resolution", # aspect_ratio: "AspectRatio", # interlaced: "Interlaced", # container: "JobContainer", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # time_span: { # start_time: "Time", # duration: "Time", # }, # input_captions: { # merge_policy: "CaptionMergePolicy", # caption_sources: [ # { # key: "LongKey", # language: "Key", # time_offset: "TimeOffset", # label: "Name", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # }, # ], # }, # detected_properties: { # width: 1, # height: 1, # frame_rate: "FloatString", # file_size: 1, # duration_millis: 1, # }, # } # # @!attribute [rw] key # The name of the file to transcode. Elsewhere in the body of the JSON # block is the the ID of the pipeline to use for processing the job. # The `InputBucket` object in that pipeline tells Elastic Transcoder # which Amazon S3 bucket to get the file from. # # If the file name includes a prefix, such as `cooking/lasagna.mpg`, # include the prefix in the key. If the file isn't in the specified # bucket, Elastic Transcoder returns an error. # @return [String] # # @!attribute [rw] frame_rate # The frame rate of the input file. If you want Elastic Transcoder to # automatically detect the frame rate of the input file, specify # `auto`. If you want to specify the frame rate for the input file, # enter one of the following values: # # `10`, `15`, `23.97`, `24`, `25`, `29.97`, `30`, `60` # # If you specify a value other than `auto`, Elastic Transcoder # disables automatic detection of the frame rate. # @return [String] # # @!attribute [rw] resolution # This value must be `auto`, which causes Elastic Transcoder to # automatically detect the resolution of the input file. # @return [String] # # @!attribute [rw] aspect_ratio # The aspect ratio of the input file. If you want Elastic Transcoder # to automatically detect the aspect ratio of the input file, specify # `auto`. If you want to specify the aspect ratio for the output file, # enter one of the following values: # # `1:1`, `4:3`, `3:2`, `16:9` # # If you specify a value other than `auto`, Elastic Transcoder # disables automatic detection of the aspect ratio. # @return [String] # # @!attribute [rw] interlaced # Whether the input file is interlaced. If you want Elastic Transcoder # to automatically detect whether the input file is interlaced, # specify `auto`. If you want to specify whether the input file is # interlaced, enter one of the following values: # # `true`, `false` # # If you specify a value other than `auto`, Elastic Transcoder # disables automatic detection of interlacing. # @return [String] # # @!attribute [rw] container # The container type for the input file. If you want Elastic # Transcoder to automatically detect the container type of the input # file, specify `auto`. If you want to specify the container type for # the input file, enter one of the following values: # # `3gp`, `aac`, `asf`, `avi`, `divx`, `flv`, `m4a`, `mkv`, `mov`, # `mp3`, `mp4`, `mpeg`, `mpeg-ps`, `mpeg-ts`, `mxf`, `ogg`, `vob`, # `wav`, `webm` # @return [String] # # @!attribute [rw] encryption # The encryption settings, if any, that are used for decrypting your # input files. If your input file is encrypted, you must specify the # mode that Elastic Transcoder uses to decrypt your file. # @return [Types::Encryption] # # @!attribute [rw] time_span # Settings for clipping an input. Each input can have different clip # settings. # @return [Types::TimeSpan] # # @!attribute [rw] input_captions # You can configure Elastic Transcoder to transcode captions, or # subtitles, from one format to another. All captions must be in # UTF-8. Elastic Transcoder supports two types of captions: # # * **Embedded:** Embedded captions are included in the same file as # the audio and video. Elastic Transcoder supports only one embedded # caption per language, to a maximum of 300 embedded captions per # file. # # Valid input values include: `CEA-608 (EIA-608`, first non-empty # channel only), `CEA-708 (EIA-708`, first non-empty channel only), # and `mov-text` # # Valid outputs include: `mov-text` # # Elastic Transcoder supports a maximum of one embedded format per # output. # # * **Sidecar:** Sidecar captions are kept in a separate metadata file # from the audio and video data. Sidecar captions require a player # that is capable of understanding the relationship between the # video file and the sidecar file. Elastic Transcoder supports only # one sidecar caption per language, to a maximum of 20 sidecar # captions per file. # # Valid input values include: `dfxp` (first div element only), # `ebu-tt`, `scc`, `smpt`, `srt`, `ttml` (first div element only), # and `webvtt` # # Valid outputs include: `dfxp` (first div element only), `scc`, # `srt`, and `webvtt`. # # If you want ttml or smpte-tt compatible captions, specify dfxp as # your output format. # # Elastic Transcoder does not support OCR (Optical Character # Recognition), does not accept pictures as a valid input for # captions, and is not available for audio-only transcoding. Elastic # Transcoder does not preserve text formatting (for example, italics) # during the transcoding process. # # To remove captions or leave the captions empty, set `Captions` to # null. To pass through existing captions unchanged, set the # `MergePolicy` to `MergeRetain`, and pass in a null `CaptionSources` # array. # # For more information on embedded files, see the Subtitles Wikipedia # page. # # For more information on sidecar files, see the Extensible Metadata # Platform and Sidecar file Wikipedia pages. # @return [Types::InputCaptions] # # @!attribute [rw] detected_properties # The detected properties of the input file. # @return [Types::DetectedProperties] # class JobInput < Struct.new( :key, :frame_rate, :resolution, :aspect_ratio, :interlaced, :container, :encryption, :time_span, :input_captions, :detected_properties) include Aws::Structure end # Outputs recommended instead. # # If you specified one output for a job, information about that output. # If you specified multiple outputs for a job, the `Output` object lists # information about the first output. This duplicates the information # that is listed for the first output in the `Outputs` object. # # @!attribute [rw] id # A sequential counter, starting with 1, that identifies an output # among the outputs from the current job. In the Output syntax, this # value is always 1. # @return [String] # # @!attribute [rw] key # The name to assign to the transcoded file. Elastic Transcoder saves # the file in the Amazon S3 bucket specified by the `OutputBucket` # object in the pipeline that is specified by the pipeline ID. # @return [String] # # @!attribute [rw] thumbnail_pattern # Whether you want Elastic Transcoder to create thumbnails for your # videos and, if so, how you want Elastic Transcoder to name the # files. # # If you don't want Elastic Transcoder to create thumbnails, specify # "". # # If you do want Elastic Transcoder to create thumbnails, specify the # information that you want to include in the file name for each # thumbnail. You can specify the following values in any sequence: # # * \{count\} (Required)\: If you want to create # thumbnails, you must include `\{count\}` in the `ThumbnailPattern` # object. Wherever you specify `\{count\}`, Elastic Transcoder adds # a five-digit sequence number (beginning with **00001**) to # thumbnail file names. The number indicates where a given thumbnail # appears in the sequence of thumbnails for a transcoded file. # # If you specify a literal value and/or `\{resolution\}` but you # omit `\{count\}`, Elastic Transcoder returns a validation error # and does not create the job. # # * **Literal values (Optional)**\: You can specify literal values # anywhere in the `ThumbnailPattern` object. For example, you can # include them as a file name prefix or as a delimiter between # `\{resolution\}` and `\{count\}`. # # * \{resolution\} (Optional)\: If you want # Elastic Transcoder to include the resolution in the file name, # include `\{resolution\}` in the `ThumbnailPattern` object. # # When creating thumbnails, Elastic Transcoder automatically saves the # files in the format (.jpg or .png) that appears in the preset that # you specified in the `PresetID` value of `CreateJobOutput`. Elastic # Transcoder also appends the applicable file name extension. # @return [String] # # @!attribute [rw] thumbnail_encryption # The encryption settings, if any, that you want Elastic Transcoder to # apply to your thumbnail. # @return [Types::Encryption] # # @!attribute [rw] rotate # The number of degrees clockwise by which you want Elastic Transcoder # to rotate the output relative to the input. Enter one of the # following values: # # `auto`, `0`, `90`, `180`, `270` # # The value `auto` generally works only if the file that you're # transcoding contains rotation metadata. # @return [String] # # @!attribute [rw] preset_id # The value of the `Id` object for the preset that you want to use for # this job. The preset determines the audio, video, and thumbnail # settings that Elastic Transcoder uses for transcoding. To use a # preset that you created, specify the preset ID that Elastic # Transcoder returned in the response when you created the preset. You # can also use the Elastic Transcoder system presets, which you can # get with `ListPresets`. # @return [String] # # @!attribute [rw] segment_duration # (Outputs in Fragmented MP4 or MPEG-TS format only. # # If you specify a preset in `PresetId` for which the value of # `Container` is `fmp4` (Fragmented MP4) or `ts` (MPEG-TS), # `SegmentDuration` is the target maximum duration of each segment in # seconds. For `HLSv3` format playlists, each media segment is stored # in a separate `.ts` file. For `HLSv4`, `MPEG-DASH`, and `Smooth` # playlists, all media segments for an output are stored in a single # file. Each segment is approximately the length of the # `SegmentDuration`, though individual segments might be shorter or # longer. # # The range of valid values is 1 to 60 seconds. If the duration of the # video is not evenly divisible by `SegmentDuration`, the duration of # the last segment is the remainder of total length/SegmentDuration. # # Elastic Transcoder creates an output-specific playlist for each # output `HLS` output that you specify in OutputKeys. To add an output # to the master playlist for this job, include it in the `OutputKeys` # of the associated playlist. # @return [String] # # @!attribute [rw] status # The status of one output in a job. If you specified only one output # for the job, `Outputs:Status` is always the same as `Job:Status`. If # you specified more than one output: # # * `Job:Status` and `Outputs:Status` for all of the outputs is # Submitted until Elastic Transcoder starts to process the first # output. # # * When Elastic Transcoder starts to process the first output, # `Outputs:Status` for that output and `Job:Status` both change to # Progressing. For each output, the value of `Outputs:Status` # remains Submitted until Elastic Transcoder starts to process the # output. # # * Job:Status remains Progressing until all of the outputs reach a # terminal status, either Complete or Error. # # * When all of the outputs reach a terminal status, `Job:Status` # changes to Complete only if `Outputs:Status` for all of the # outputs is `Complete`. If `Outputs:Status` for one or more outputs # is `Error`, the terminal status for `Job:Status` is also `Error`. # # The value of `Status` is one of the following: `Submitted`, # `Progressing`, `Complete`, `Canceled`, or `Error`. # @return [String] # # @!attribute [rw] status_detail # Information that further explains `Status`. # @return [String] # # @!attribute [rw] duration # Duration of the output file, in seconds. # @return [Integer] # # @!attribute [rw] width # Specifies the width of the output file in pixels. # @return [Integer] # # @!attribute [rw] height # Height of the output file, in pixels. # @return [Integer] # # @!attribute [rw] frame_rate # Frame rate of the output file, in frames per second. # @return [String] # # @!attribute [rw] file_size # File size of the output file, in bytes. # @return [Integer] # # @!attribute [rw] duration_millis # Duration of the output file, in milliseconds. # @return [Integer] # # @!attribute [rw] watermarks # Information about the watermarks that you want Elastic Transcoder to # add to the video during transcoding. You can specify up to four # watermarks for each output. Settings for each watermark must be # defined in the preset that you specify in `Preset` for the current # output. # # Watermarks are added to the output video in the sequence in which # you list them in the job output—the first watermark in the list is # added to the output video first, the second watermark in the list is # added next, and so on. As a result, if the settings in a preset # cause Elastic Transcoder to place all watermarks in the same # location, the second watermark that you add covers the first one, # the third one covers the second, and the fourth one covers the # third. # @return [Array] # # @!attribute [rw] album_art # The album art to be associated with the output file, if any. # @return [Types::JobAlbumArt] # # @!attribute [rw] composition # You can create an output file that contains an excerpt from the # input file. This excerpt, called a clip, can come from the # beginning, middle, or end of the file. The Composition object # contains settings for the clips that make up an output file. For the # current release, you can only specify settings for a single clip per # output file. The Composition object cannot be null. # @return [Array] # # @!attribute [rw] captions # You can configure Elastic Transcoder to transcode captions, or # subtitles, from one format to another. All captions must be in # UTF-8. Elastic Transcoder supports two types of captions: # # * **Embedded:** Embedded captions are included in the same file as # the audio and video. Elastic Transcoder supports only one embedded # caption per language, to a maximum of 300 embedded captions per # file. # # Valid input values include: `CEA-608 (EIA-608`, first non-empty # channel only), `CEA-708 (EIA-708`, first non-empty channel only), # and `mov-text` # # Valid outputs include: `mov-text` # # Elastic Transcoder supports a maximum of one embedded format per # output. # # * **Sidecar:** Sidecar captions are kept in a separate metadata file # from the audio and video data. Sidecar captions require a player # that is capable of understanding the relationship between the # video file and the sidecar file. Elastic Transcoder supports only # one sidecar caption per language, to a maximum of 20 sidecar # captions per file. # # Valid input values include: `dfxp` (first div element only), # `ebu-tt`, `scc`, `smpt`, `srt`, `ttml` (first div element only), # and `webvtt` # # Valid outputs include: `dfxp` (first div element only), `scc`, # `srt`, and `webvtt`. # # If you want ttml or smpte-tt compatible captions, specify dfxp as # your output format. # # Elastic Transcoder does not support OCR (Optical Character # Recognition), does not accept pictures as a valid input for # captions, and is not available for audio-only transcoding. Elastic # Transcoder does not preserve text formatting (for example, italics) # during the transcoding process. # # To remove captions or leave the captions empty, set `Captions` to # null. To pass through existing captions unchanged, set the # `MergePolicy` to `MergeRetain`, and pass in a null `CaptionSources` # array. # # For more information on embedded files, see the Subtitles Wikipedia # page. # # For more information on sidecar files, see the Extensible Metadata # Platform and Sidecar file Wikipedia pages. # @return [Types::Captions] # # @!attribute [rw] encryption # The encryption settings, if any, that you want Elastic Transcoder to # apply to your output files. If you choose to use encryption, you # must specify a mode to use. If you choose not to use encryption, # Elastic Transcoder writes an unencrypted file to your Amazon S3 # bucket. # @return [Types::Encryption] # # @!attribute [rw] applied_color_space_conversion # If Elastic Transcoder used a preset with a # `ColorSpaceConversionMode` to transcode the output file, the # `AppliedColorSpaceConversion` parameter shows the conversion used. # If no `ColorSpaceConversionMode` was defined in the preset, this # parameter is not be included in the job response. # @return [String] # class JobOutput < Struct.new( :id, :key, :thumbnail_pattern, :thumbnail_encryption, :rotate, :preset_id, :segment_duration, :status, :status_detail, :duration, :width, :height, :frame_rate, :file_size, :duration_millis, :watermarks, :album_art, :composition, :captions, :encryption, :applied_color_space_conversion) include Aws::Structure end # 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. # # @note When making an API call, you may pass JobWatermark # data as a hash: # # { # preset_watermark_id: "PresetWatermarkId", # input_key: "WatermarkKey", # encryption: { # mode: "EncryptionMode", # key: "Base64EncodedString", # key_md_5: "Base64EncodedString", # initialization_vector: "ZeroTo255String", # }, # } # # @!attribute [rw] preset_watermark_id # The ID of the watermark settings that Elastic Transcoder uses to add # watermarks to the video during transcoding. The settings are in the # preset specified by Preset for the current output. In that preset, # the value of Watermarks Id tells Elastic Transcoder which settings # to use. # @return [String] # # @!attribute [rw] input_key # The name of the .png or .jpg file that you want to use for the # watermark. To determine which Amazon S3 bucket contains the # specified file, Elastic Transcoder checks the pipeline specified by # `Pipeline`; the `Input Bucket` object in that pipeline identifies # the bucket. # # If the file name includes a prefix, for example, # **logos/128x64.png**, include the prefix in the key. If the file # isn't in the specified bucket, Elastic Transcoder returns an error. # @return [String] # # @!attribute [rw] encryption # The encryption settings, if any, that you want Elastic Transcoder to # apply to your watermarks. # @return [Types::Encryption] # class JobWatermark < Struct.new( :preset_watermark_id, :input_key, :encryption) include Aws::Structure end # Too many operations for a given AWS account. For example, the number # of pipelines exceeds the maximum allowed. # class LimitExceededException < Aws::EmptyStructure; end # The `ListJobsByPipelineRequest` structure. # # @note When making an API call, you may pass ListJobsByPipelineRequest # data as a hash: # # { # pipeline_id: "Id", # required # ascending: "Ascending", # page_token: "Id", # } # # @!attribute [rw] pipeline_id # The ID of the pipeline for which you want to get job information. # @return [String] # # @!attribute [rw] ascending # To list jobs in chronological order by the date and time that they # were submitted, enter `true`. To list jobs in reverse chronological # order, enter `false`. # @return [String] # # @!attribute [rw] page_token # When Elastic Transcoder returns more than one page of results, use # `pageToken` in subsequent `GET` requests to get each successive page # of results. # @return [String] # class ListJobsByPipelineRequest < Struct.new( :pipeline_id, :ascending, :page_token) include Aws::Structure end # The `ListJobsByPipelineResponse` structure. # # @!attribute [rw] jobs # An array of `Job` objects that are in the specified pipeline. # @return [Array] # # @!attribute [rw] next_page_token # A value that you use to access the second and subsequent pages of # results, if any. When the jobs in the specified pipeline fit on one # page or when you've reached the last page of results, the value of # `NextPageToken` is `null`. # @return [String] # class ListJobsByPipelineResponse < Struct.new( :jobs, :next_page_token) include Aws::Structure end # The `ListJobsByStatusRequest` structure. # # @note When making an API call, you may pass ListJobsByStatusRequest # data as a hash: # # { # status: "JobStatus", # required # ascending: "Ascending", # page_token: "Id", # } # # @!attribute [rw] status # To get information about all of the jobs associated with the current # AWS account that have a given status, specify the following status: # `Submitted`, `Progressing`, `Complete`, `Canceled`, or `Error`. # @return [String] # # @!attribute [rw] ascending # To list jobs in chronological order by the date and time that they # were submitted, enter `true`. To list jobs in reverse chronological # order, enter `false`. # @return [String] # # @!attribute [rw] page_token # When Elastic Transcoder returns more than one page of results, use # `pageToken` in subsequent `GET` requests to get each successive page # of results. # @return [String] # class ListJobsByStatusRequest < Struct.new( :status, :ascending, :page_token) include Aws::Structure end # The `ListJobsByStatusResponse` structure. # # @!attribute [rw] jobs # An array of `Job` objects that have the specified status. # @return [Array] # # @!attribute [rw] next_page_token # A value that you use to access the second and subsequent pages of # results, if any. When the jobs in the specified pipeline fit on one # page or when you've reached the last page of results, the value of # `NextPageToken` is `null`. # @return [String] # class ListJobsByStatusResponse < Struct.new( :jobs, :next_page_token) include Aws::Structure end # The `ListPipelineRequest` structure. # # @note When making an API call, you may pass ListPipelinesRequest # data as a hash: # # { # ascending: "Ascending", # page_token: "Id", # } # # @!attribute [rw] ascending # To list pipelines in chronological order by the date and time that # they were created, enter `true`. To list pipelines in reverse # chronological order, enter `false`. # @return [String] # # @!attribute [rw] page_token # When Elastic Transcoder returns more than one page of results, use # `pageToken` in subsequent `GET` requests to get each successive page # of results. # @return [String] # class ListPipelinesRequest < Struct.new( :ascending, :page_token) include Aws::Structure end # A list of the pipelines associated with the current AWS account. # # @!attribute [rw] pipelines # An array of `Pipeline` objects. # @return [Array] # # @!attribute [rw] next_page_token # A value that you use to access the second and subsequent pages of # results, if any. When the pipelines fit on one page or when you've # reached the last page of results, the value of `NextPageToken` is # `null`. # @return [String] # class ListPipelinesResponse < Struct.new( :pipelines, :next_page_token) include Aws::Structure end # The `ListPresetsRequest` structure. # # @note When making an API call, you may pass ListPresetsRequest # data as a hash: # # { # ascending: "Ascending", # page_token: "Id", # } # # @!attribute [rw] ascending # To list presets in chronological order by the date and time that # they were created, enter `true`. To list presets in reverse # chronological order, enter `false`. # @return [String] # # @!attribute [rw] page_token # When Elastic Transcoder returns more than one page of results, use # `pageToken` in subsequent `GET` requests to get each successive page # of results. # @return [String] # class ListPresetsRequest < Struct.new( :ascending, :page_token) include Aws::Structure end # The `ListPresetsResponse` structure. # # @!attribute [rw] presets # An array of `Preset` objects. # @return [Array] # # @!attribute [rw] next_page_token # A value that you use to access the second and subsequent pages of # results, if any. When the presets fit on one page or when you've # reached the last page of results, the value of `NextPageToken` is # `null`. # @return [String] # class ListPresetsResponse < Struct.new( :presets, :next_page_token) include Aws::Structure end # The Amazon Simple Notification Service (Amazon SNS) topic or topics to # notify in order to report job status. # # To receive notifications, you must also subscribe to the new topic in # the Amazon SNS console. # # @note When making an API call, you may pass Notifications # data as a hash: # # { # progressing: "SnsTopic", # completed: "SnsTopic", # warning: "SnsTopic", # error: "SnsTopic", # } # # @!attribute [rw] progressing # The Amazon Simple Notification Service (Amazon SNS) topic that you # want to notify when Elastic Transcoder has started to process the # job. # @return [String] # # @!attribute [rw] completed # The Amazon SNS topic that you want to notify when Elastic Transcoder # has finished processing the job. # @return [String] # # @!attribute [rw] warning # The Amazon SNS topic that you want to notify when Elastic Transcoder # encounters a warning condition. # @return [String] # # @!attribute [rw] error # The Amazon SNS topic that you want to notify when Elastic Transcoder # encounters an error condition. # @return [String] # class Notifications < Struct.new( :progressing, :completed, :warning, :error) include Aws::Structure end # The `Permission` structure. # # @note When making an API call, you may pass Permission # data as a hash: # # { # grantee_type: "GranteeType", # grantee: "Grantee", # access: ["AccessControl"], # } # # @!attribute [rw] grantee_type # The type of value that appears in the Grantee object: # # * `Canonical`\: Either the canonical user ID for an AWS account or # an origin access identity for an Amazon CloudFront distribution. # # A canonical user ID is not the same as an AWS account number. # # * `Email`\: The registered email address of an AWS account. # # * `Group`\: One of the following predefined Amazon S3 groups: # `AllUsers`, `AuthenticatedUsers`, or `LogDelivery`. # @return [String] # # @!attribute [rw] grantee # The AWS user or group that you want to have access to transcoded # files and playlists. To identify the user or group, you can specify # the canonical user ID for an AWS account, an origin access identity # for a CloudFront distribution, the registered email address of an # AWS account, or a predefined Amazon S3 group. # @return [String] # # @!attribute [rw] access # The permission that you want to give to the AWS user that is listed # in Grantee. Valid values include: # # * `READ`\: The grantee can read the thumbnails and metadata for # thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. # # * `READ_ACP`\: The grantee can read the object ACL for thumbnails # that Elastic Transcoder adds to the Amazon S3 bucket. # # * `WRITE_ACP`\: The grantee can write the ACL for the thumbnails # that Elastic Transcoder adds to the Amazon S3 bucket. # # * `FULL_CONTROL`\: The grantee has READ, READ\_ACP, and WRITE\_ACP # permissions for the thumbnails that Elastic Transcoder adds to the # Amazon S3 bucket. # @return [Array] # class Permission < Struct.new( :grantee_type, :grantee, :access) include Aws::Structure end # The pipeline (queue) that is used to manage jobs. # # @!attribute [rw] id # The identifier for the pipeline. You use this value to identify the # pipeline in which you want to perform a variety of operations, such # as creating a job or a preset. # @return [String] # # @!attribute [rw] arn # The Amazon Resource Name (ARN) for the pipeline. # @return [String] # # @!attribute [rw] name # The name of the pipeline. We recommend that the name be unique # within the AWS account, but uniqueness is not enforced. # # Constraints: Maximum 40 characters # @return [String] # # @!attribute [rw] status # The current status of the pipeline: # # * `Active`\: The pipeline is processing jobs. # # * `Paused`\: The pipeline is not currently processing jobs. # @return [String] # # @!attribute [rw] input_bucket # The Amazon S3 bucket from which Elastic Transcoder gets media files # for transcoding and the graphics files, if any, that you want to use # for watermarks. # @return [String] # # @!attribute [rw] output_bucket # The Amazon S3 bucket in which you want Elastic Transcoder to save # transcoded files, thumbnails, and playlists. Either you specify this # value, or you specify both `ContentConfig` and `ThumbnailConfig`. # @return [String] # # @!attribute [rw] role # The IAM Amazon Resource Name (ARN) for the role that Elastic # Transcoder uses to transcode jobs for this pipeline. # @return [String] # # @!attribute [rw] aws_kms_key_arn # The AWS Key Management Service (AWS KMS) key that you want to use # with this pipeline. # # If you use either `s3` or `s3-aws-kms` as your `Encryption:Mode`, # you don't need to provide a key with your job because a default # key, known as an AWS-KMS key, is created for you automatically. You # need to provide an AWS-KMS key only if you want to use a non-default # AWS-KMS key, or if you are using an `Encryption:Mode` of # `aes-cbc-pkcs7`, `aes-ctr`, or `aes-gcm`. # @return [String] # # @!attribute [rw] notifications # The Amazon Simple Notification Service (Amazon SNS) topic that you # want to notify to report job status. # # To receive notifications, you must also subscribe to the new topic # in the Amazon SNS console. # # * **Progressing** (optional): The Amazon Simple Notification Service # (Amazon SNS) topic that you want to notify when Elastic Transcoder # has started to process the job. # # * **Complete** (optional): The Amazon SNS topic that you want to # notify when Elastic Transcoder has finished processing the job. # # * **Warning** (optional): The Amazon SNS topic that you want to # notify when Elastic Transcoder encounters a warning condition. # # * **Error** (optional): The Amazon SNS topic that you want to notify # when Elastic Transcoder encounters an error condition. # @return [Types::Notifications] # # @!attribute [rw] content_config # Information about the Amazon S3 bucket in which you want Elastic # Transcoder to save transcoded files and playlists. Either you # specify both `ContentConfig` and `ThumbnailConfig`, or you specify # `OutputBucket`. # # * **Bucket**\: The Amazon S3 bucket in which you want Elastic # Transcoder to save transcoded files and playlists. # # * **Permissions**\: A list of the users and/or predefined Amazon S3 # groups you want to have access to transcoded files and playlists, # and the type of access that you want them to have. # # * GranteeType: The type of value that appears in the `Grantee` # object: # # * `Canonical`\: Either the canonical user ID for an AWS account # or an origin access identity for an Amazon CloudFront # distribution. # # * `Email`\: The registered email address of an AWS account. # # * `Group`\: One of the following predefined Amazon S3 groups: # `AllUsers`, `AuthenticatedUsers`, or `LogDelivery`. # # * `Grantee`\: The AWS user or group that you want to have access # to transcoded files and playlists. # # * `Access`\: The permission that you want to give to the AWS user # that is listed in `Grantee`. Valid values include: # # * `READ`\: The grantee can read the objects and metadata for # objects that Elastic Transcoder adds to the Amazon S3 bucket. # # * `READ_ACP`\: The grantee can read the object ACL for objects # that Elastic Transcoder adds to the Amazon S3 bucket. # # * `WRITE_ACP`\: The grantee can write the ACL for the objects # that Elastic Transcoder adds to the Amazon S3 bucket. # # * `FULL_CONTROL`\: The grantee has `READ`, `READ_ACP`, and # `WRITE_ACP` permissions for the objects that Elastic # Transcoder adds to the Amazon S3 bucket. # # * **StorageClass**\: The Amazon S3 storage class, Standard or # ReducedRedundancy, that you want Elastic Transcoder to assign to # the video files and playlists that it stores in your Amazon S3 # bucket. # @return [Types::PipelineOutputConfig] # # @!attribute [rw] thumbnail_config # Information about the Amazon S3 bucket in which you want Elastic # Transcoder to save thumbnail files. Either you specify both # `ContentConfig` and `ThumbnailConfig`, or you specify # `OutputBucket`. # # * `Bucket`\: The Amazon S3 bucket in which you want Elastic # Transcoder to save thumbnail files. # # * `Permissions`\: A list of the users and/or predefined Amazon S3 # groups you want to have access to thumbnail files, and the type of # access that you want them to have. # # * GranteeType: The type of value that appears in the Grantee # object: # # * `Canonical`\: Either the canonical user ID for an AWS account # or an origin access identity for an Amazon CloudFront # distribution. # # A canonical user ID is not the same as an AWS account number. # # * `Email`\: The registered email address of an AWS account. # # * `Group`\: One of the following predefined Amazon S3 groups: # `AllUsers`, `AuthenticatedUsers`, or `LogDelivery`. # # * `Grantee`\: The AWS user or group that you want to have access # to thumbnail files. # # * Access: The permission that you want to give to the AWS user # that is listed in Grantee. Valid values include: # # * `READ`\: The grantee can read the thumbnails and metadata for # thumbnails that Elastic Transcoder adds to the Amazon S3 # bucket. # # * `READ_ACP`\: The grantee can read the object ACL for # thumbnails that Elastic Transcoder adds to the Amazon S3 # bucket. # # * `WRITE_ACP`\: The grantee can write the ACL for the thumbnails # that Elastic Transcoder adds to the Amazon S3 bucket. # # * `FULL_CONTROL`\: The grantee has READ, READ\_ACP, and # WRITE\_ACP permissions for the thumbnails that Elastic # Transcoder adds to the Amazon S3 bucket. # # * `StorageClass`\: The Amazon S3 storage class, `Standard` or # `ReducedRedundancy`, that you want Elastic Transcoder to assign to # the thumbnails that it stores in your Amazon S3 bucket. # @return [Types::PipelineOutputConfig] # class Pipeline < Struct.new( :id, :arn, :name, :status, :input_bucket, :output_bucket, :role, :aws_kms_key_arn, :notifications, :content_config, :thumbnail_config) include Aws::Structure end # The `PipelineOutputConfig` structure. # # @note When making an API call, you may pass PipelineOutputConfig # data as a hash: # # { # bucket: "BucketName", # storage_class: "StorageClass", # permissions: [ # { # grantee_type: "GranteeType", # grantee: "Grantee", # access: ["AccessControl"], # }, # ], # } # # @!attribute [rw] bucket # The Amazon S3 bucket in which you want Elastic Transcoder to save # the transcoded files. Specify this value when all of the following # are true: # # * You want to save transcoded files, thumbnails (if any), and # playlists (if any) together in one bucket. # # * You do not want to specify the users or groups who have access to # the transcoded files, thumbnails, and playlists. # # * You do not want to specify the permissions that Elastic Transcoder # grants to the files. # # * You want to associate the transcoded files and thumbnails with the # Amazon S3 Standard storage class. # # If you want to save transcoded files and playlists in one bucket and # thumbnails in another bucket, specify which users can access the # transcoded files or the permissions the users have, or change the # Amazon S3 storage class, omit OutputBucket and specify values for # `ContentConfig` and `ThumbnailConfig` instead. # @return [String] # # @!attribute [rw] storage_class # The Amazon S3 storage class, `Standard` or `ReducedRedundancy`, that # you want Elastic Transcoder to assign to the video files and # playlists that it stores in your Amazon S3 bucket. # @return [String] # # @!attribute [rw] permissions # Optional. The `Permissions` object specifies which users and/or # predefined Amazon S3 groups you want to have access to transcoded # files and playlists, and the type of access you want them to have. # You can grant permissions to a maximum of 30 users and/or predefined # Amazon S3 groups. # # If you include `Permissions`, Elastic Transcoder grants only the # permissions that you specify. It does not grant full permissions to # the owner of the role specified by `Role`. If you want that user to # have full control, you must explicitly grant full control to the # user. # # If you omit `Permissions`, Elastic Transcoder grants full control # over the transcoded files and playlists to the owner of the role # specified by `Role`, and grants no other permissions to any other # user or group. # @return [Array] # class PipelineOutputConfig < Struct.new( :bucket, :storage_class, :permissions) include Aws::Structure end # The PlayReady DRM settings, if any, that you want Elastic Transcoder # to apply to the output files associated with this playlist. # # PlayReady DRM encrypts your media files using `aes-ctr` encryption. # # If you use DRM for an `HLSv3` playlist, your outputs must have a # master playlist. # # @note When making an API call, you may pass PlayReadyDrm # data as a hash: # # { # format: "PlayReadyDrmFormatString", # key: "NonEmptyBase64EncodedString", # key_md_5: "NonEmptyBase64EncodedString", # key_id: "KeyIdGuid", # initialization_vector: "ZeroTo255String", # license_acquisition_url: "OneTo512String", # } # # @!attribute [rw] format # The type of DRM, if any, that you want Elastic Transcoder to apply # to the output files associated with this playlist. # @return [String] # # @!attribute [rw] key # The DRM key for your file, provided by your DRM license provider. # The key must be base64-encoded, and it must be one of the following # bit lengths before being base64-encoded: # # `128`, `192`, or `256`. # # The key must also be encrypted by using AWS KMS. # @return [String] # # @!attribute [rw] key_md_5 # The MD5 digest of the key used for DRM on your file, and that you # want Elastic Transcoder to use as a checksum to make sure your key # was not corrupted in transit. The key MD5 must be base64-encoded, # and it must be exactly 16 bytes before being base64-encoded. # @return [String] # # @!attribute [rw] key_id # The ID for your DRM key, so that your DRM license provider knows # which key to provide. # # The key ID must be provided in big endian, and Elastic Transcoder # converts it to little endian before inserting it into the PlayReady # DRM headers. If you are unsure whether your license server provides # your key ID in big or little endian, check with your DRM provider. # @return [String] # # @!attribute [rw] initialization_vector # The series of random bits created by a random bit generator, unique # for every encryption operation, that you want Elastic Transcoder to # use to encrypt your files. The initialization vector must be # base64-encoded, and it must be exactly 8 bytes long before being # base64-encoded. If no initialization vector is provided, Elastic # Transcoder generates one for you. # @return [String] # # @!attribute [rw] license_acquisition_url # The location of the license key required to play DRM content. The # URL must be an absolute path, and is referenced by the PlayReady # header. The PlayReady header is referenced in the protection header # of the client manifest for Smooth Streaming outputs, and in the # EXT-X-DXDRM and EXT-XDXDRMINFO metadata tags for HLS playlist # outputs. An example URL looks like this: # `https://www.example.com/exampleKey/` # @return [String] # class PlayReadyDrm < Struct.new( :format, :key, :key_md_5, :key_id, :initialization_vector, :license_acquisition_url) include Aws::Structure end # Use Only for Fragmented MP4 or MPEG-TS Outputs. If you specify a # preset for which the value of Container is `fmp4` (Fragmented MP4) or # `ts` (MPEG-TS), Playlists contains information about the master # playlists that you want Elastic Transcoder to create. We recommend # that you create only one master playlist per output format. The # maximum number of master playlists in a job is 30. # # @!attribute [rw] name # The name that you want Elastic Transcoder to assign to the master # playlist, for example, nyc-vacation.m3u8. If the name includes a `/` # character, the section of the name before the last `/` must be # identical for all `Name` objects. If you create more than one master # playlist, the values of all `Name` objects must be unique. # # Elastic Transcoder automatically appends the relevant file extension # to the file name (`.m3u8` for `HLSv3` and `HLSv4` playlists, and # `.ism` and `.ismc` for `Smooth` playlists). If you include a file # extension in `Name`, the file name will have two extensions. # # # @return [String] # # @!attribute [rw] format # The format of the output playlist. Valid formats include `HLSv3`, # `HLSv4`, and `Smooth`. # @return [String] # # @!attribute [rw] output_keys # For each output in this job that you want to include in a master # playlist, the value of the Outputs:Key object. # # * If your output is not `HLS` or does not have a segment duration # set, the name of the output file is a concatenation of # `OutputKeyPrefix` and `Outputs:Key`\: # # OutputKeyPrefix`Outputs:Key` # # * If your output is `HLSv3` and has a segment duration set, or is # not included in a playlist, Elastic Transcoder creates an output # playlist file with a file extension of `.m3u8`, and a series of # `.ts` files that include a five-digit sequential counter beginning # with 00000: # # OutputKeyPrefix`Outputs:Key`.m3u8 # # OutputKeyPrefix`Outputs:Key`00000.ts # # * If your output is `HLSv4`, has a segment duration set, and is # included in an `HLSv4` playlist, Elastic Transcoder creates an # output playlist file with a file extension of `_v4.m3u8`. If the # output is video, Elastic Transcoder also creates an output file # with an extension of `_iframe.m3u8`\: # # OutputKeyPrefix`Outputs:Key`\_v4.m3u8 # # OutputKeyPrefix`Outputs:Key`\_iframe.m3u8 # # OutputKeyPrefix`Outputs:Key`.ts # # Elastic Transcoder automatically appends the relevant file extension # to the file name. If you include a file extension in Output Key, the # file name will have two extensions. # # If you include more than one output in a playlist, any segment # duration settings, clip settings, or caption settings must be the # same for all outputs in the playlist. For `Smooth` playlists, the # `Audio:Profile`, `Video:Profile`, and `Video:FrameRate` to # `Video:KeyframesMaxDist` ratio must be the same for all outputs. # @return [Array] # # @!attribute [rw] hls_content_protection # The HLS content protection settings, if any, that you want Elastic # Transcoder to apply to the output files associated with this # playlist. # @return [Types::HlsContentProtection] # # @!attribute [rw] play_ready_drm # The DRM settings, if any, that you want Elastic Transcoder to apply # to the output files associated with this playlist. # @return [Types::PlayReadyDrm] # # @!attribute [rw] status # The status of the job with which the playlist is associated. # @return [String] # # @!attribute [rw] status_detail # Information that further explains the status. # @return [String] # class Playlist < Struct.new( :name, :format, :output_keys, :hls_content_protection, :play_ready_drm, :status, :status_detail) include Aws::Structure end # Presets are templates that contain most of the settings for # transcoding media files from one format to another. Elastic Transcoder # includes some default presets for common formats, for example, several # iPod and iPhone versions. You can also create your own presets for # formats that aren't included among the default presets. You specify # which preset you want to use when you create a job. # # @!attribute [rw] id # Identifier for the new preset. You use this value to get settings # for the preset or to delete it. # @return [String] # # @!attribute [rw] arn # The Amazon Resource Name (ARN) for the preset. # @return [String] # # @!attribute [rw] name # The name of the preset. # @return [String] # # @!attribute [rw] description # A description of the preset. # @return [String] # # @!attribute [rw] container # The container type for the output file. Valid values include `flac`, # `flv`, `fmp4`, `gif`, `mp3`, `mp4`, `mpg`, `mxf`, `oga`, `ogg`, # `ts`, and `webm`. # @return [String] # # @!attribute [rw] audio # A section of the response body that provides information about the # audio preset values. # @return [Types::AudioParameters] # # @!attribute [rw] video # A section of the response body that provides information about the # video preset values. # @return [Types::VideoParameters] # # @!attribute [rw] thumbnails # A section of the response body that provides information about the # thumbnail preset values, if any. # @return [Types::Thumbnails] # # @!attribute [rw] type # Whether the preset is a default preset provided by Elastic # Transcoder (`System`) or a preset that you have defined (`Custom`). # @return [String] # class Preset < Struct.new( :id, :arn, :name, :description, :container, :audio, :video, :thumbnails, :type) include Aws::Structure end # 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. # # @note When making an API call, you may pass PresetWatermark # data as a hash: # # { # id: "PresetWatermarkId", # max_width: "PixelsOrPercent", # max_height: "PixelsOrPercent", # sizing_policy: "WatermarkSizingPolicy", # horizontal_align: "HorizontalAlign", # horizontal_offset: "PixelsOrPercent", # vertical_align: "VerticalAlign", # vertical_offset: "PixelsOrPercent", # opacity: "Opacity", # target: "Target", # } # # @!attribute [rw] id # A unique identifier for the settings for one watermark. The value of # `Id` can be up to 40 characters long. # @return [String] # # @!attribute [rw] max_width # The maximum width of the watermark in one of the following formats: # # * number of pixels (px): The minimum value is 16 pixels, and the # maximum value is the value of `MaxWidth`. # # * integer percentage (%): The range of valid values is 0 to 100. Use # the value of `Target` to specify whether you want Elastic # Transcoder to include the black bars that are added by Elastic # Transcoder, if any, in the calculation. # # If you specify the value in pixels, it must be less than or equal # to the value of `MaxWidth`. # @return [String] # # @!attribute [rw] max_height # The maximum height of the watermark in one of the following formats: # # * number of pixels (px): The minimum value is 16 pixels, and the # maximum value is the value of `MaxHeight`. # # * integer percentage (%): The range of valid values is 0 to 100. Use # the value of `Target` to specify whether you want Elastic # Transcoder to include the black bars that are added by Elastic # Transcoder, if any, in the calculation. # # If you specify the value in pixels, it must be less than or equal to # the value of `MaxHeight`. # @return [String] # # @!attribute [rw] sizing_policy # A value that controls scaling of the watermark: # # * **Fit**\: Elastic Transcoder scales the watermark so it matches # the value that you specified in either `MaxWidth` or `MaxHeight` # without exceeding the other value. # # * **Stretch**\: Elastic Transcoder stretches the watermark to match # the values that you specified for `MaxWidth` and `MaxHeight`. If # the relative proportions of the watermark and the values of # `MaxWidth` and `MaxHeight` are different, the watermark will be # distorted. # # * **ShrinkToFit**\: Elastic Transcoder scales the watermark 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 watermark up. # @return [String] # # @!attribute [rw] horizontal_align # The horizontal position of the watermark unless you specify a # non-zero value for `HorizontalOffset`\: # # * **Left**\: The left edge of the watermark is aligned with the left # border of the video. # # * **Right**\: The right edge of the watermark is aligned with the # right border of the video. # # * **Center**\: The watermark is centered between the left and right # borders. # @return [String] # # @!attribute [rw] horizontal_offset # The amount by which you want the horizontal position of the # watermark to be offset from the position specified by # HorizontalAlign: # # * number of pixels (px): The minimum value is 0 pixels, and the # maximum value is the value of MaxWidth. # # * integer percentage (%): The range of valid values is 0 to 100. # # For example, if you specify Left for `HorizontalAlign` and 5px for # `HorizontalOffset`, the left side of the watermark appears 5 pixels # from the left border of the output video. # # `HorizontalOffset` is only valid when the value of `HorizontalAlign` # is `Left` or `Right`. If you specify an offset that causes the # watermark to extend beyond the left or right border and Elastic # Transcoder has not added black bars, the watermark is cropped. If # Elastic Transcoder has added black bars, the watermark extends into # the black bars. If the watermark extends beyond the black bars, it # is cropped. # # Use the value of `Target` to specify whether you want to include the # black bars that are added by Elastic Transcoder, if any, in the # offset calculation. # @return [String] # # @!attribute [rw] vertical_align # The vertical position of the watermark unless you specify a non-zero # value for `VerticalOffset`\: # # * **Top**\: The top edge of the watermark is aligned with the top # border of the video. # # * **Bottom**\: The bottom edge of the watermark is aligned with the # bottom border of the video. # # * **Center**\: The watermark is centered between the top and bottom # borders. # @return [String] # # @!attribute [rw] vertical_offset # `VerticalOffset` # # The amount by which you want the vertical position of the watermark # to be offset from the position specified by VerticalAlign: # # * number of pixels (px): The minimum value is 0 pixels, and the # maximum value is the value of `MaxHeight`. # # * integer percentage (%): The range of valid values is 0 to 100. # # For example, if you specify `Top` for `VerticalAlign` and `5px` for # `VerticalOffset`, the top of the watermark appears 5 pixels from the # top border of the output video. # # `VerticalOffset` is only valid when the value of VerticalAlign is # Top or Bottom. # # If you specify an offset that causes the watermark to extend beyond # the top or bottom border and Elastic Transcoder has not added black # bars, the watermark is cropped. If Elastic Transcoder has added # black bars, the watermark extends into the black bars. If the # watermark extends beyond the black bars, it is cropped. # # Use the value of `Target` to specify whether you want Elastic # Transcoder to include the black bars that are added by Elastic # Transcoder, if any, in the offset calculation. # @return [String] # # @!attribute [rw] opacity # A percentage that indicates how much you want a watermark to obscure # the video in the location where it appears. Valid values are 0 (the # watermark is invisible) to 100 (the watermark completely obscures # the video in the specified location). The datatype of `Opacity` is # float. # # Elastic Transcoder supports transparent .png graphics. If you use a # transparent .png, the transparent portion of the video appears as if # you had specified a value of 0 for `Opacity`. The .jpg file format # doesn't support transparency. # @return [String] # # @!attribute [rw] target # A value that determines how Elastic Transcoder interprets values # that you specified for `HorizontalOffset`, `VerticalOffset`, # `MaxWidth`, and `MaxHeight`\: # # * **Content**\: `HorizontalOffset` and `VerticalOffset` values are # calculated based on the borders of the video excluding black bars # added by Elastic Transcoder, if any. In addition, `MaxWidth` and # `MaxHeight`, if specified as a percentage, are calculated based on # the borders of the video excluding black bars added by Elastic # Transcoder, if any. # # * **Frame**\: `HorizontalOffset` and `VerticalOffset` values are # calculated based on the borders of the video including black bars # added by Elastic Transcoder, if any. In addition, `MaxWidth` and # `MaxHeight`, if specified as a percentage, are calculated based on # the borders of the video including black bars added by Elastic # Transcoder, if any. # @return [String] # class PresetWatermark < Struct.new( :id, :max_width, :max_height, :sizing_policy, :horizontal_align, :horizontal_offset, :vertical_align, :vertical_offset, :opacity, :target) include Aws::Structure end # The `ReadJobRequest` structure. # # @note When making an API call, you may pass ReadJobRequest # data as a hash: # # { # id: "Id", # required # } # # @!attribute [rw] id # The identifier of the job for which you want to get detailed # information. # @return [String] # class ReadJobRequest < Struct.new( :id) include Aws::Structure end # The `ReadJobResponse` structure. # # @!attribute [rw] job # A section of the response body that provides information about the # job. # @return [Types::Job] # class ReadJobResponse < Struct.new( :job) include Aws::Structure end # The `ReadPipelineRequest` structure. # # @note When making an API call, you may pass ReadPipelineRequest # data as a hash: # # { # id: "Id", # required # } # # @!attribute [rw] id # The identifier of the pipeline to read. # @return [String] # class ReadPipelineRequest < Struct.new( :id) include Aws::Structure end # The `ReadPipelineResponse` structure. # # @!attribute [rw] pipeline # A section of the response body that provides information about the # pipeline. # @return [Types::Pipeline] # # @!attribute [rw] warnings # Elastic Transcoder returns a warning if the resources used by your # pipeline are not in the same region as the pipeline. # # Using resources in the same region, such as your Amazon S3 buckets, # Amazon SNS notification topics, and AWS KMS key, reduces processing # time and prevents cross-regional charges. # @return [Array] # class ReadPipelineResponse < Struct.new( :pipeline, :warnings) include Aws::Structure end # The `ReadPresetRequest` structure. # # @note When making an API call, you may pass ReadPresetRequest # data as a hash: # # { # id: "Id", # required # } # # @!attribute [rw] id # The identifier of the preset for which you want to get detailed # information. # @return [String] # class ReadPresetRequest < Struct.new( :id) include Aws::Structure end # The `ReadPresetResponse` structure. # # @!attribute [rw] preset # A section of the response body that provides information about the # preset. # @return [Types::Preset] # class ReadPresetResponse < Struct.new( :preset) include Aws::Structure end # The resource you are attempting to change is in use. For example, you # are attempting to delete a pipeline that is currently in use. # class ResourceInUseException < Aws::EmptyStructure; end # The requested resource does not exist or is not available. For # example, the pipeline to which you're trying to add a job doesn't # exist or is still being created. # class ResourceNotFoundException < Aws::EmptyStructure; end # The `TestRoleRequest` structure. # # @note When making an API call, you may pass TestRoleRequest # data as a hash: # # { # role: "Role", # required # input_bucket: "BucketName", # required # output_bucket: "BucketName", # required # topics: ["SnsTopic"], # required # } # # @!attribute [rw] role # The IAM Amazon Resource Name (ARN) for the role that you want # Elastic Transcoder to test. # @return [String] # # @!attribute [rw] input_bucket # The Amazon S3 bucket that contains media files to be transcoded. The # action attempts to read from this bucket. # @return [String] # # @!attribute [rw] output_bucket # The Amazon S3 bucket that Elastic Transcoder writes transcoded media # files to. The action attempts to read from this bucket. # @return [String] # # @!attribute [rw] topics # The ARNs of one or more Amazon Simple Notification Service (Amazon # SNS) topics that you want the action to send a test notification to. # @return [Array] # class TestRoleRequest < Struct.new( :role, :input_bucket, :output_bucket, :topics) include Aws::Structure end # The `TestRoleResponse` structure. # # @!attribute [rw] success # If the operation is successful, this value is `true`; otherwise, the # value is `false`. # @return [String] # # @!attribute [rw] messages # If the `Success` element contains `false`, this value is an array of # one or more error messages that were generated during the test # process. # @return [Array] # class TestRoleResponse < Struct.new( :success, :messages) include Aws::Structure end # Thumbnails for videos. # # @note When making an API call, you may pass Thumbnails # data as a hash: # # { # format: "JpgOrPng", # interval: "Digits", # resolution: "ThumbnailResolution", # aspect_ratio: "AspectRatio", # max_width: "DigitsOrAuto", # max_height: "DigitsOrAuto", # sizing_policy: "SizingPolicy", # padding_policy: "PaddingPolicy", # } # # @!attribute [rw] format # The format of thumbnails, if any. Valid values are `jpg` and `png`. # # You specify whether you want Elastic Transcoder to create thumbnails # when you create a job. # @return [String] # # @!attribute [rw] interval # The approximate number of seconds between thumbnails. Specify an # integer value. # @return [String] # # @!attribute [rw] resolution # To better control resolution and aspect ratio of thumbnails, we # recommend that you use the values `MaxWidth`, `MaxHeight`, # `SizingPolicy`, and `PaddingPolicy` instead of `Resolution` and # `AspectRatio`. The two groups of settings are mutually exclusive. Do # not use them together. # # The width and height of thumbnail files in pixels. Specify a value # in the format ` width ` x ` height ` where both values are even # integers. The values cannot exceed the width and height that you # specified in the `Video:Resolution` object. # @return [String] # # @!attribute [rw] aspect_ratio # To better control resolution and aspect ratio of thumbnails, we # recommend that you use the values `MaxWidth`, `MaxHeight`, # `SizingPolicy`, and `PaddingPolicy` instead of `Resolution` and # `AspectRatio`. The two groups of settings are mutually exclusive. Do # not use them together. # # The aspect ratio of thumbnails. 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 video in the output file. # @return [String] # # @!attribute [rw] max_width # The maximum width of thumbnails 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 32 and 4096. # @return [String] # # @!attribute [rw] max_height # The maximum height of thumbnails 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 32 and 3072. # @return [String] # # @!attribute [rw] sizing_policy # Specify one of the following values to control scaling of # thumbnails: # # * `Fit`\: Elastic Transcoder scales thumbnails so they match the # value that you specified in thumbnail MaxWidth or MaxHeight # settings without exceeding the other value. # # * `Fill`\: Elastic Transcoder scales thumbnails so they match the # value that you specified in thumbnail `MaxWidth` or `MaxHeight` # settings and matches or exceeds the other value. Elastic # Transcoder centers the image in thumbnails and then crops in the # dimension (if any) that exceeds the maximum value. # # * `Stretch`\: Elastic Transcoder stretches thumbnails to match the # values that you specified for thumbnail `MaxWidth` and `MaxHeight` # settings. If the relative proportions of the input video and # thumbnails are different, the thumbnails will be distorted. # # * `Keep`\: Elastic Transcoder does not scale thumbnails. If either # dimension of the input video exceeds the values that you specified # for thumbnail `MaxWidth` and `MaxHeight` settings, Elastic # Transcoder crops the thumbnails. # # * `ShrinkToFit`\: Elastic Transcoder scales thumbnails down so that # their dimensions match the values that you specified for at least # one of thumbnail `MaxWidth` and `MaxHeight` without exceeding # either value. If you specify this option, Elastic Transcoder does # not scale thumbnails up. # # * `ShrinkToFill`\: Elastic Transcoder scales thumbnails down so that # their 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 thumbnails up. # @return [String] # # @!attribute [rw] padding_policy # When you set `PaddingPolicy` to `Pad`, Elastic Transcoder may add # black bars to the top and bottom and/or left and right sides of # thumbnails to make the total size of the thumbnails match the values # that you specified for thumbnail `MaxWidth` and `MaxHeight` # settings. # @return [String] # class Thumbnails < Struct.new( :format, :interval, :resolution, :aspect_ratio, :max_width, :max_height, :sizing_policy, :padding_policy) include Aws::Structure end # Settings that determine when a clip begins and how long it lasts. # # @note When making an API call, you may pass TimeSpan # data as a hash: # # { # start_time: "Time", # duration: "Time", # } # # @!attribute [rw] start_time # The place in the input file where you want a clip to start. The # format can be either HH:mm:ss.SSS (maximum value: 23:59:59.999; SSS # is thousandths of a second) or sssss.SSS (maximum value: 86399.999). # If you don't specify a value, Elastic Transcoder starts at the # beginning of the input file. # @return [String] # # @!attribute [rw] duration # The duration of the clip. The format can be either HH:mm:ss.SSS # (maximum value: 23:59:59.999; SSS is thousandths of a second) or # sssss.SSS (maximum value: 86399.999). If you don't specify a value, # Elastic Transcoder creates an output file from StartTime to the end # of the file. # # If you specify a value longer than the duration of the input file, # Elastic Transcoder transcodes the file and returns a warning # message. # @return [String] # class TimeSpan < Struct.new( :start_time, :duration) include Aws::Structure end # Details about the timing of a job. # # @!attribute [rw] submit_time_millis # The time the job was submitted to Elastic Transcoder, in epoch # milliseconds. # @return [Integer] # # @!attribute [rw] start_time_millis # The time the job began transcoding, in epoch milliseconds. # @return [Integer] # # @!attribute [rw] finish_time_millis # The time the job finished transcoding, in epoch milliseconds. # @return [Integer] # class Timing < Struct.new( :submit_time_millis, :start_time_millis, :finish_time_millis) include Aws::Structure end # The `UpdatePipelineNotificationsRequest` structure. # # @note When making an API call, you may pass UpdatePipelineNotificationsRequest # data as a hash: # # { # id: "Id", # required # notifications: { # required # progressing: "SnsTopic", # completed: "SnsTopic", # warning: "SnsTopic", # error: "SnsTopic", # }, # } # # @!attribute [rw] id # The identifier of the pipeline for which you want to change # notification settings. # @return [String] # # @!attribute [rw] notifications # The topic ARN for the Amazon Simple Notification Service (Amazon # SNS) topic that you want to notify to report job status. # # To receive notifications, you must also subscribe to the new topic # in the Amazon SNS console. # # * **Progressing**\: The topic ARN for the Amazon Simple Notification # Service (Amazon SNS) topic that you want to notify when Elastic # Transcoder has started to process jobs that are added to this # pipeline. This is the ARN that Amazon SNS returned when you # created the topic. # # * **Complete**\: The topic ARN for the Amazon SNS topic that you # want to notify when Elastic Transcoder has finished processing a # job. This is the ARN that Amazon SNS returned when you created the # topic. # # * **Warning**\: The topic ARN for the Amazon SNS topic that you want # to notify when Elastic Transcoder encounters a warning condition. # This is the ARN that Amazon SNS returned when you created the # topic. # # * **Error**\: The topic ARN for the Amazon SNS topic that you want # to notify when Elastic Transcoder encounters an error condition. # This is the ARN that Amazon SNS returned when you created the # topic. # @return [Types::Notifications] # class UpdatePipelineNotificationsRequest < Struct.new( :id, :notifications) include Aws::Structure end # The `UpdatePipelineNotificationsResponse` structure. # # @!attribute [rw] pipeline # A section of the response body that provides information about the # pipeline associated with this notification. # @return [Types::Pipeline] # class UpdatePipelineNotificationsResponse < Struct.new( :pipeline) include Aws::Structure end # The `UpdatePipelineRequest` structure. # # @note When making an API call, you may pass UpdatePipelineRequest # data as a hash: # # { # id: "Id", # required # name: "Name", # input_bucket: "BucketName", # role: "Role", # aws_kms_key_arn: "KeyArn", # notifications: { # progressing: "SnsTopic", # completed: "SnsTopic", # warning: "SnsTopic", # error: "SnsTopic", # }, # content_config: { # bucket: "BucketName", # storage_class: "StorageClass", # permissions: [ # { # grantee_type: "GranteeType", # grantee: "Grantee", # access: ["AccessControl"], # }, # ], # }, # thumbnail_config: { # bucket: "BucketName", # storage_class: "StorageClass", # permissions: [ # { # grantee_type: "GranteeType", # grantee: "Grantee", # access: ["AccessControl"], # }, # ], # }, # } # # @!attribute [rw] id # The ID of the pipeline that you want to update. # @return [String] # # @!attribute [rw] name # The name of the pipeline. We recommend that the name be unique # within the AWS account, but uniqueness is not enforced. # # Constraints: Maximum 40 characters # @return [String] # # @!attribute [rw] input_bucket # The Amazon S3 bucket in which you saved the media files that you # want to transcode and the graphics that you want to use as # watermarks. # @return [String] # # @!attribute [rw] role # The IAM Amazon Resource Name (ARN) for the role that you want # Elastic Transcoder to use to transcode jobs for this pipeline. # @return [String] # # @!attribute [rw] aws_kms_key_arn # The AWS Key Management Service (AWS KMS) key that you want to use # with this pipeline. # # If you use either `s3` or `s3-aws-kms` as your `Encryption:Mode`, # you don't need to provide a key with your job because a default # key, known as an AWS-KMS key, is created for you automatically. You # need to provide an AWS-KMS key only if you want to use a non-default # AWS-KMS key, or if you are using an `Encryption:Mode` of # `aes-cbc-pkcs7`, `aes-ctr`, or `aes-gcm`. # @return [String] # # @!attribute [rw] notifications # The topic ARN for the Amazon Simple Notification Service (Amazon # SNS) topic that you want to notify to report job status. # # To receive notifications, you must also subscribe to the new topic # in the Amazon SNS console. # # * **Progressing**\: The topic ARN for the Amazon Simple Notification # Service (Amazon SNS) topic that you want to notify when Elastic # Transcoder has started to process jobs that are added to this # pipeline. This is the ARN that Amazon SNS returned when you # created the topic. # # * **Complete**\: The topic ARN for the Amazon SNS topic that you # want to notify when Elastic Transcoder has finished processing a # job. This is the ARN that Amazon SNS returned when you created the # topic. # # * **Warning**\: The topic ARN for the Amazon SNS topic that you want # to notify when Elastic Transcoder encounters a warning condition. # This is the ARN that Amazon SNS returned when you created the # topic. # # * **Error**\: The topic ARN for the Amazon SNS topic that you want # to notify when Elastic Transcoder encounters an error condition. # This is the ARN that Amazon SNS returned when you created the # topic. # @return [Types::Notifications] # # @!attribute [rw] content_config # The optional `ContentConfig` object specifies information about the # Amazon S3 bucket in which you want Elastic Transcoder to save # transcoded files and playlists: which bucket to use, which users you # want to have access to the files, the type of access you want users # to have, and the storage class that you want to assign to the files. # # If you specify values for `ContentConfig`, you must also specify # values for `ThumbnailConfig`. # # If you specify values for `ContentConfig` and `ThumbnailConfig`, # omit the `OutputBucket` object. # # * **Bucket**\: The Amazon S3 bucket in which you want Elastic # Transcoder to save transcoded files and playlists. # # * **Permissions** (Optional): The Permissions object specifies which # users you want to have access to transcoded files and the type of # access you want them to have. You can grant permissions to a # maximum of 30 users and/or predefined Amazon S3 groups. # # * **Grantee Type**\: Specify the type of value that appears in the # `Grantee` object: # # * **Canonical**\: The value in the `Grantee` object is either the # canonical user ID for an AWS account or an origin access # identity for an Amazon CloudFront distribution. For more # information about canonical user IDs, see Access Control List # (ACL) Overview in the Amazon Simple Storage Service Developer # Guide. For more information about using CloudFront origin access # identities to require that users use CloudFront URLs instead of # Amazon S3 URLs, see Using an Origin Access Identity to Restrict # Access to Your Amazon S3 Content. # # A canonical user ID is not the same as an AWS account number. # # * **Email**\: The value in the `Grantee` object is the registered # email address of an AWS account. # # * **Group**\: The value in the `Grantee` object is one of the # following predefined Amazon S3 groups: `AllUsers`, # `AuthenticatedUsers`, or `LogDelivery`. # # * **Grantee**\: The AWS user or group that you want to have access # to transcoded files and playlists. To identify the user or group, # you can specify the canonical user ID for an AWS account, an # origin access identity for a CloudFront distribution, the # registered email address of an AWS account, or a predefined Amazon # S3 group # # * **Access**\: The permission that you want to give to the AWS user # that you specified in `Grantee`. Permissions are granted on the # files that Elastic Transcoder adds to the bucket, including # playlists and video files. Valid values include: # # * `READ`\: The grantee can read the objects and metadata for # objects that Elastic Transcoder adds to the Amazon S3 bucket. # # * `READ_ACP`\: The grantee can read the object ACL for objects # that Elastic Transcoder adds to the Amazon S3 bucket. # # * `WRITE_ACP`\: The grantee can write the ACL for the objects that # Elastic Transcoder adds to the Amazon S3 bucket. # # * `FULL_CONTROL`\: The grantee has `READ`, `READ_ACP`, and # `WRITE_ACP` permissions for the objects that Elastic Transcoder # adds to the Amazon S3 bucket. # # * **StorageClass**\: The Amazon S3 storage class, `Standard` or # `ReducedRedundancy`, that you want Elastic Transcoder to assign to # the video files and playlists that it stores in your Amazon S3 # bucket. # @return [Types::PipelineOutputConfig] # # @!attribute [rw] thumbnail_config # The `ThumbnailConfig` object specifies several values, including the # Amazon S3 bucket in which you want Elastic Transcoder to save # thumbnail files, which users you want to have access to the files, # the type of access you want users to have, and the storage class # that you want to assign to the files. # # If you specify values for `ContentConfig`, you must also specify # values for `ThumbnailConfig` even if you don't want to create # thumbnails. # # If you specify values for `ContentConfig` and `ThumbnailConfig`, # omit the `OutputBucket` object. # # * **Bucket**\: The Amazon S3 bucket in which you want Elastic # Transcoder to save thumbnail files. # # * **Permissions** (Optional): The `Permissions` object specifies # which users and/or predefined Amazon S3 groups you want to have # access to thumbnail files, and the type of access you want them to # have. You can grant permissions to a maximum of 30 users and/or # predefined Amazon S3 groups. # # * **GranteeType**\: Specify the type of value that appears in the # Grantee object: # # * **Canonical**\: The value in the `Grantee` object is either the # canonical user ID for an AWS account or an origin access # identity for an Amazon CloudFront distribution. # # A canonical user ID is not the same as an AWS account number. # # * **Email**\: The value in the `Grantee` object is the registered # email address of an AWS account. # # * **Group**\: The value in the `Grantee` object is one of the # following predefined Amazon S3 groups: `AllUsers`, # `AuthenticatedUsers`, or `LogDelivery`. # # * **Grantee**\: The AWS user or group that you want to have access # to thumbnail files. To identify the user or group, you can specify # the canonical user ID for an AWS account, an origin access # identity for a CloudFront distribution, the registered email # address of an AWS account, or a predefined Amazon S3 group. # # * **Access**\: The permission that you want to give to the AWS user # that you specified in `Grantee`. Permissions are granted on the # thumbnail files that Elastic Transcoder adds to the bucket. Valid # values include: # # * `READ`\: The grantee can read the thumbnails and metadata for # objects that Elastic Transcoder adds to the Amazon S3 bucket. # # * `READ_ACP`\: The grantee can read the object ACL for thumbnails # that Elastic Transcoder adds to the Amazon S3 bucket. # # * `WRITE_ACP`\: The grantee can write the ACL for the thumbnails # that Elastic Transcoder adds to the Amazon S3 bucket. # # * `FULL_CONTROL`\: The grantee has `READ`, `READ_ACP`, and # `WRITE_ACP` permissions for the thumbnails that Elastic # Transcoder adds to the Amazon S3 bucket. # # * **StorageClass**\: The Amazon S3 storage class, `Standard` or # `ReducedRedundancy`, that you want Elastic Transcoder to assign to # the thumbnails that it stores in your Amazon S3 bucket. # @return [Types::PipelineOutputConfig] # class UpdatePipelineRequest < Struct.new( :id, :name, :input_bucket, :role, :aws_kms_key_arn, :notifications, :content_config, :thumbnail_config) include Aws::Structure end # When you update a pipeline, Elastic Transcoder returns the values that # you specified in the request. # # @!attribute [rw] pipeline # The pipeline updated by this `UpdatePipelineResponse` call. # @return [Types::Pipeline] # # @!attribute [rw] warnings # Elastic Transcoder returns a warning if the resources used by your # pipeline are not in the same region as the pipeline. # # Using resources in the same region, such as your Amazon S3 buckets, # Amazon SNS notification topics, and AWS KMS key, reduces processing # time and prevents cross-regional charges. # @return [Array] # class UpdatePipelineResponse < Struct.new( :pipeline, :warnings) include Aws::Structure end # The `UpdatePipelineStatusRequest` structure. # # @note When making an API call, you may pass UpdatePipelineStatusRequest # data as a hash: # # { # id: "Id", # required # status: "PipelineStatus", # required # } # # @!attribute [rw] id # The identifier of the pipeline to update. # @return [String] # # @!attribute [rw] status # The desired status of the pipeline: # # * `Active`\: The pipeline is processing jobs. # # * `Paused`\: The pipeline is not currently processing jobs. # @return [String] # class UpdatePipelineStatusRequest < Struct.new( :id, :status) include Aws::Structure end # When you update status for a pipeline, Elastic Transcoder returns the # values that you specified in the request. # # @!attribute [rw] pipeline # A section of the response body that provides information about the # pipeline. # @return [Types::Pipeline] # class UpdatePipelineStatusResponse < Struct.new( :pipeline) include Aws::Structure end # One or more required parameter values were not provided in the # request. # class ValidationException < Aws::EmptyStructure; end # The `VideoParameters` structure. # # @note When making an API call, you may pass VideoParameters # data as a hash: # # { # codec: "VideoCodec", # codec_options: { # "CodecOption" => "CodecOption", # }, # keyframes_max_dist: "KeyframesMaxDist", # fixed_gop: "FixedGOP", # bit_rate: "VideoBitRate", # frame_rate: "FrameRate", # max_frame_rate: "MaxFrameRate", # resolution: "Resolution", # aspect_ratio: "AspectRatio", # max_width: "DigitsOrAuto", # max_height: "DigitsOrAuto", # display_aspect_ratio: "AspectRatio", # sizing_policy: "SizingPolicy", # padding_policy: "PaddingPolicy", # watermarks: [ # { # id: "PresetWatermarkId", # max_width: "PixelsOrPercent", # max_height: "PixelsOrPercent", # sizing_policy: "WatermarkSizingPolicy", # horizontal_align: "HorizontalAlign", # horizontal_offset: "PixelsOrPercent", # vertical_align: "VerticalAlign", # vertical_offset: "PixelsOrPercent", # opacity: "Opacity", # target: "Target", # }, # ], # } # # @!attribute [rw] 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`. # @return [String] # # @!attribute [rw] codec_options # **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. # @return [Hash] # # @!attribute [rw] keyframes_max_dist # 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`. # @return [String] # # @!attribute [rw] fixed_gop # 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. # @return [String] # # @!attribute [rw] bit_rate # 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 # @return [String] # # @!attribute [rw] frame_rate # 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 # @return [String] # # @!attribute [rw] max_frame_rate # 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`. # @return [String] # # @!attribute [rw] 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 # @return [String] # # @!attribute [rw] aspect_ratio # 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. # @return [String] # # @!attribute [rw] max_width # 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. # @return [String] # # @!attribute [rw] max_height # 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. # @return [String] # # @!attribute [rw] display_aspect_ratio # The value that Elastic Transcoder adds to the metadata in the output # file. # @return [String] # # @!attribute [rw] sizing_policy # 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. # @return [String] # # @!attribute [rw] padding_policy # 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`. # @return [String] # # @!attribute [rw] 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. # @return [Array] # class VideoParameters < Struct.new( :codec, :codec_options, :keyframes_max_dist, :fixed_gop, :bit_rate, :frame_rate, :max_frame_rate, :resolution, :aspect_ratio, :max_width, :max_height, :display_aspect_ratio, :sizing_policy, :padding_policy, :watermarks) include Aws::Structure end # Elastic Transcoder returns a warning if the resources used by your # pipeline are not in the same region as the pipeline. # # Using resources in the same region, such as your Amazon S3 buckets, # Amazon SNS notification topics, and AWS KMS key, reduces processing # time and prevents cross-regional charges. # # @!attribute [rw] code # The code of the cross-regional warning. # @return [String] # # @!attribute [rw] message # The message explaining what resources are in a different region from # the pipeline. # # AWS KMS keys must be in the same region as the pipeline. # # # @return [String] # class Warning < Struct.new( :code, :message) include Aws::Structure end end end