File Coverage

blib/lib/Paws/ElasticTranscoder/VideoParameters.pm
Criterion Covered Total %
statement 3 3 100.0
branch n/a
condition n/a
subroutine 1 1 100.0
pod n/a
total 4 4 100.0


line stmt bran cond sub pod time code
1             package Paws::ElasticTranscoder::VideoParameters;
2 1     1   743 use Moose;
  1         6  
  1         14  
3             has AspectRatio => (is => 'ro', isa => 'Str');
4             has BitRate => (is => 'ro', isa => 'Str');
5             has Codec => (is => 'ro', isa => 'Str');
6             has CodecOptions => (is => 'ro', isa => 'Paws::ElasticTranscoder::CodecOptions');
7             has DisplayAspectRatio => (is => 'ro', isa => 'Str');
8             has FixedGOP => (is => 'ro', isa => 'Str');
9             has FrameRate => (is => 'ro', isa => 'Str');
10             has KeyframesMaxDist => (is => 'ro', isa => 'Str');
11             has MaxFrameRate => (is => 'ro', isa => 'Str');
12             has MaxHeight => (is => 'ro', isa => 'Str');
13             has MaxWidth => (is => 'ro', isa => 'Str');
14             has PaddingPolicy => (is => 'ro', isa => 'Str');
15             has Resolution => (is => 'ro', isa => 'Str');
16             has SizingPolicy => (is => 'ro', isa => 'Str');
17             has Watermarks => (is => 'ro', isa => 'ArrayRef[Paws::ElasticTranscoder::PresetWatermark]');
18             1;
19              
20             ### main pod documentation begin ###
21              
22             =head1 NAME
23              
24             Paws::ElasticTranscoder::VideoParameters
25              
26             =head1 USAGE
27              
28             This class represents one of two things:
29              
30             =head3 Arguments in a call to a service
31              
32             Use the attributes of this class as arguments to methods. You shouldn't make instances of this class.
33             Each attribute should be used as a named argument in the calls that expect this type of object.
34              
35             As an example, if Att1 is expected to be a Paws::ElasticTranscoder::VideoParameters object:
36              
37             $service_obj->Method(Att1 => { AspectRatio => $value, ..., Watermarks => $value });
38              
39             =head3 Results returned from an API call
40              
41             Use accessors for each attribute. If Att1 is expected to be an Paws::ElasticTranscoder::VideoParameters object:
42              
43             $result = $service_obj->Method(...);
44             $result->Att1->AspectRatio
45              
46             =head1 DESCRIPTION
47              
48             The C<VideoParameters> structure.
49              
50             =head1 ATTRIBUTES
51              
52              
53             =head2 AspectRatio => Str
54              
55             To better control resolution and aspect ratio of output videos, we
56             recommend that you use the values C<MaxWidth>, C<MaxHeight>,
57             C<SizingPolicy>, C<PaddingPolicy>, and C<DisplayAspectRatio> instead of
58             C<Resolution> and C<AspectRatio>. The two groups of settings are
59             mutually exclusive. Do not use them together.
60              
61             The display aspect ratio of the video in the output file. Valid values
62             include:
63              
64             C<auto>, C<1:1>, C<4:3>, C<3:2>, C<16:9>
65              
66             If you specify C<auto>, Elastic Transcoder tries to preserve the aspect
67             ratio of the input file.
68              
69             If you specify an aspect ratio for the output file that differs from
70             aspect ratio of the input file, Elastic Transcoder adds pillarboxing
71             (black bars on the sides) or letterboxing (black bars on the top and
72             bottom) to maintain the aspect ratio of the active region of the video.
73              
74              
75             =head2 BitRate => Str
76              
77             The bit rate of the video stream in the output file, in
78             kilobits/second. Valid values depend on the values of C<Level> and
79             C<Profile>. If you specify C<auto>, Elastic Transcoder uses the
80             detected bit rate of the input source. If you specify a value other
81             than C<auto>, we recommend that you specify a value less than or equal
82             to the maximum H.264-compliant value listed for your level and profile:
83              
84             I<Level - Maximum video bit rate in kilobits/second (baseline and main
85             Profile) : maximum video bit rate in kilobits/second (high Profile)>
86              
87             =over
88              
89             =item *
90              
91             1 - 64 : 80
92              
93             =item *
94              
95             1b - 128 : 160
96              
97             =item *
98              
99             1.1 - 192 : 240
100              
101             =item *
102              
103             1.2 - 384 : 480
104              
105             =item *
106              
107             1.3 - 768 : 960
108              
109             =item *
110              
111             2 - 2000 : 2500
112              
113             =item *
114              
115             3 - 10000 : 12500
116              
117             =item *
118              
119             3.1 - 14000 : 17500
120              
121             =item *
122              
123             3.2 - 20000 : 25000
124              
125             =item *
126              
127             4 - 20000 : 25000
128              
129             =item *
130              
131             4.1 - 50000 : 62500
132              
133             =back
134              
135              
136              
137             =head2 Codec => Str
138              
139             The video codec for the output file. Valid values include C<gif>,
140             C<H.264>, C<mpeg2>, C<vp8>, and C<vp9>. You can only specify C<vp8> and
141             C<vp9> when the container type is C<webm>, C<gif> when the container
142             type is C<gif>, and C<mpeg2> when the container type is C<mpg>.
143              
144              
145             =head2 CodecOptions => L<Paws::ElasticTranscoder::CodecOptions>
146              
147             B<Profile (H.264/VP8/VP9 Only)>
148              
149             The H.264 profile that you want to use for the output file. Elastic
150             Transcoder supports the following profiles:
151              
152             =over
153              
154             =item *
155              
156             C<baseline>: The profile most commonly used for videoconferencing and
157             for mobile applications.
158              
159             =item *
160              
161             C<main>: The profile used for standard-definition digital TV
162             broadcasts.
163              
164             =item *
165              
166             C<high>: The profile used for high-definition digital TV broadcasts and
167             for Blu-ray discs.
168              
169             =back
170              
171             B<Level (H.264 Only)>
172              
173             The H.264 level that you want to use for the output file. Elastic
174             Transcoder supports the following levels:
175              
176             C<1>, C<1b>, C<1.1>, C<1.2>, C<1.3>, C<2>, C<2.1>, C<2.2>, C<3>,
177             C<3.1>, C<3.2>, C<4>, C<4.1>
178              
179             B<MaxReferenceFrames (H.264 Only)>
180              
181             Applicable only when the value of Video:Codec is H.264. The maximum
182             number of previously decoded frames to use as a reference for decoding
183             future frames. Valid values are integers 0 through 16, but we recommend
184             that you not use a value greater than the following:
185              
186             C<Min(Floor(Maximum decoded picture buffer in macroblocks * 256 /
187             (Width in pixels * Height in pixels)), 16)>
188              
189             where I<Width in pixels> and I<Height in pixels> represent either
190             MaxWidth and MaxHeight, or Resolution. I<Maximum decoded picture buffer
191             in macroblocks> depends on the value of the C<Level> object. See the
192             list below. (A macroblock is a block of pixels measuring 16x16.)
193              
194             =over
195              
196             =item *
197              
198             1 - 396
199              
200             =item *
201              
202             1b - 396
203              
204             =item *
205              
206             1.1 - 900
207              
208             =item *
209              
210             1.2 - 2376
211              
212             =item *
213              
214             1.3 - 2376
215              
216             =item *
217              
218             2 - 2376
219              
220             =item *
221              
222             2.1 - 4752
223              
224             =item *
225              
226             2.2 - 8100
227              
228             =item *
229              
230             3 - 8100
231              
232             =item *
233              
234             3.1 - 18000
235              
236             =item *
237              
238             3.2 - 20480
239              
240             =item *
241              
242             4 - 32768
243              
244             =item *
245              
246             4.1 - 32768
247              
248             =back
249              
250             B<MaxBitRate (Optional, H.264/MPEG2/VP8/VP9 only)>
251              
252             The maximum number of bits per second in a video buffer; the size of
253             the buffer is specified by C<BufferSize>. Specify a value between 16
254             and 62,500. You can reduce the bandwidth required to stream a video by
255             reducing the maximum bit rate, but this also reduces the quality of the
256             video.
257              
258             B<BufferSize (Optional, H.264/MPEG2/VP8/VP9 only)>
259              
260             The maximum number of bits in any x seconds of the output video. This
261             window is commonly 10 seconds, the standard segment duration when
262             you're using FMP4 or MPEG-TS for the container type of the output
263             video. Specify an integer greater than 0. If you specify C<MaxBitRate>
264             and omit C<BufferSize>, Elastic Transcoder sets C<BufferSize> to 10
265             times the value of C<MaxBitRate>.
266              
267             B<InterlacedMode (Optional, H.264/MPEG2 Only)>
268              
269             The interlace mode for the output video.
270              
271             Interlaced video is used to double the perceived frame rate for a video
272             by interlacing two fields (one field on every other line, the other
273             field on the other lines) so that the human eye registers multiple
274             pictures per frame. Interlacing reduces the bandwidth required for
275             transmitting a video, but can result in blurred images and flickering.
276              
277             Valid values include C<Progressive> (no interlacing, top to bottom),
278             C<TopFirst> (top field first), C<BottomFirst> (bottom field first), and
279             C<Auto>.
280              
281             If C<InterlaceMode> is not specified, Elastic Transcoder uses
282             C<Progressive> for the output. If C<Auto> is specified, Elastic
283             Transcoder interlaces the output.
284              
285             B<ColorSpaceConversionMode (Optional, H.264/MPEG2 Only)>
286              
287             The color space conversion Elastic Transcoder applies to the output
288             video. Color spaces are the algorithms used by the computer to store
289             information about how to render color. C<Bt.601> is the standard for
290             standard definition video, while C<Bt.709> is the standard for high
291             definition video.
292              
293             Valid values include C<None>, C<Bt709toBt601>, C<Bt601toBt709>, and
294             C<Auto>.
295              
296             If you chose C<Auto> for C<ColorSpaceConversionMode> and your output is
297             interlaced, your frame rate is one of C<23.97>, C<24>, C<25>, C<29.97>,
298             C<50>, or C<60>, your C<SegmentDuration> is null, and you are using one
299             of the resolution changes from the list below, Elastic Transcoder
300             applies the following color space conversions:
301              
302             =over
303              
304             =item *
305              
306             I<Standard to HD, 720x480 to 1920x1080> - Elastic Transcoder applies
307             C<Bt601ToBt709>
308              
309             =item *
310              
311             I<Standard to HD, 720x576 to 1920x1080> - Elastic Transcoder applies
312             C<Bt601ToBt709>
313              
314             =item *
315              
316             I<HD to Standard, 1920x1080 to 720x480> - Elastic Transcoder applies
317             C<Bt709ToBt601>
318              
319             =item *
320              
321             I<HD to Standard, 1920x1080 to 720x576> - Elastic Transcoder applies
322             C<Bt709ToBt601>
323              
324             =back
325              
326             Elastic Transcoder may change the behavior of the
327             C<ColorspaceConversionMode> C<Auto> mode in the future. All outputs in
328             a playlist must use the same C<ColorSpaceConversionMode>.
329              
330             If you do not specify a C<ColorSpaceConversionMode>, Elastic Transcoder
331             does not change the color space of a file. If you are unsure what
332             C<ColorSpaceConversionMode> was applied to your output file, you can
333             check the C<AppliedColorSpaceConversion> parameter included in your job
334             response. If your job does not have an C<AppliedColorSpaceConversion>
335             in its response, no C<ColorSpaceConversionMode> was applied.
336              
337             B<ChromaSubsampling>
338              
339             The sampling pattern for the chroma (color) channels of the output
340             video. Valid values include C<yuv420p> and C<yuv422p>.
341              
342             C<yuv420p> samples the chroma information of every other horizontal and
343             every other vertical line, C<yuv422p> samples the color information of
344             every horizontal line and every other vertical line.
345              
346             B<LoopCount (Gif Only)>
347              
348             The number of times you want the output gif to loop. Valid values
349             include C<Infinite> and integers between C<0> and C<100>, inclusive.
350              
351              
352             =head2 DisplayAspectRatio => Str
353              
354             The value that Elastic Transcoder adds to the metadata in the output
355             file.
356              
357              
358             =head2 FixedGOP => Str
359              
360             Applicable only when the value of Video:Codec is one of C<H.264>,
361             C<MPEG2>, or C<VP8>.
362              
363             Whether to use a fixed value for C<FixedGOP>. Valid values are C<true>
364             and C<false>:
365              
366             =over
367              
368             =item *
369              
370             C<true>: Elastic Transcoder uses the value of C<KeyframesMaxDist> for
371             the distance between key frames (the number of frames in a group of
372             pictures, or GOP).
373              
374             =item *
375              
376             C<false>: The distance between key frames can vary.
377              
378             =back
379              
380             C<FixedGOP> must be set to C<true> for C<fmp4> containers.
381              
382              
383             =head2 FrameRate => Str
384              
385             The frames per second for the video stream in the output file. Valid
386             values include:
387              
388             C<auto>, C<10>, C<15>, C<23.97>, C<24>, C<25>, C<29.97>, C<30>, C<60>
389              
390             If you specify C<auto>, Elastic Transcoder uses the detected frame rate
391             of the input source. If you specify a frame rate, we recommend that you
392             perform the following calculation:
393              
394             C<Frame rate = maximum recommended decoding speed in luma
395             samples/second / (width in pixels * height in pixels)>
396              
397             where:
398              
399             =over
400              
401             =item *
402              
403             I<width in pixels> and I<height in pixels> represent the Resolution of
404             the output video.
405              
406             =item *
407              
408             I<maximum recommended decoding speed in Luma samples/second> is less
409             than or equal to the maximum value listed in the following table, based
410             on the value that you specified for Level.
411              
412             =back
413              
414             The maximum recommended decoding speed in Luma samples/second for each
415             level is described in the following list (I<Level - Decoding speed>):
416              
417             =over
418              
419             =item *
420              
421             1 - 380160
422              
423             =item *
424              
425             1b - 380160
426              
427             =item *
428              
429             1.1 - 76800
430              
431             =item *
432              
433             1.2 - 1536000
434              
435             =item *
436              
437             1.3 - 3041280
438              
439             =item *
440              
441             2 - 3041280
442              
443             =item *
444              
445             2.1 - 5068800
446              
447             =item *
448              
449             2.2 - 5184000
450              
451             =item *
452              
453             3 - 10368000
454              
455             =item *
456              
457             3.1 - 27648000
458              
459             =item *
460              
461             3.2 - 55296000
462              
463             =item *
464              
465             4 - 62914560
466              
467             =item *
468              
469             4.1 - 62914560
470              
471             =back
472              
473              
474              
475             =head2 KeyframesMaxDist => Str
476              
477             Applicable only when the value of Video:Codec is one of C<H.264>,
478             C<MPEG2>, or C<VP8>.
479              
480             The maximum number of frames between key frames. Key frames are fully
481             encoded frames; the frames between key frames are encoded based, in
482             part, on the content of the key frames. The value is an integer
483             formatted as a string; valid values are between 1 (every frame is a key
484             frame) and 100000, inclusive. A higher value results in higher
485             compression but may also discernibly decrease video quality.
486              
487             For C<Smooth> outputs, the C<FrameRate> must have a constant ratio to
488             the C<KeyframesMaxDist>. This allows C<Smooth> playlists to switch
489             between different quality levels while the file is being played.
490              
491             For example, an input file can have a C<FrameRate> of 30 with a
492             C<KeyframesMaxDist> of 90. The output file then needs to have a ratio
493             of 1:3. Valid outputs would have C<FrameRate> of 30, 25, and 10, and
494             C<KeyframesMaxDist> of 90, 75, and 30, respectively.
495              
496             Alternately, this can be achieved by setting C<FrameRate> to auto and
497             having the same values for C<MaxFrameRate> and C<KeyframesMaxDist>.
498              
499              
500             =head2 MaxFrameRate => Str
501              
502             If you specify C<auto> for C<FrameRate>, Elastic Transcoder uses the
503             frame rate of the input video for the frame rate of the output video.
504             Specify the maximum frame rate that you want Elastic Transcoder to use
505             when the frame rate of the input video is greater than the desired
506             maximum frame rate of the output video. Valid values include: C<10>,
507             C<15>, C<23.97>, C<24>, C<25>, C<29.97>, C<30>, C<60>.
508              
509              
510             =head2 MaxHeight => Str
511              
512             The maximum height of the output video in pixels. If you specify
513             C<auto>, Elastic Transcoder uses 1080 (Full HD) as the default value.
514             If you specify a numeric value, enter an even integer between 96 and
515             3072.
516              
517              
518             =head2 MaxWidth => Str
519              
520             The maximum width of the output video in pixels. If you specify
521             C<auto>, Elastic Transcoder uses 1920 (Full HD) as the default value.
522             If you specify a numeric value, enter an even integer between 128 and
523             4096.
524              
525              
526             =head2 PaddingPolicy => Str
527              
528             When you set C<PaddingPolicy> to C<Pad>, Elastic Transcoder may add
529             black bars to the top and bottom and/or left and right sides of the
530             output video to make the total size of the output video match the
531             values that you specified for C<MaxWidth> and C<MaxHeight>.
532              
533              
534             =head2 Resolution => Str
535              
536             To better control resolution and aspect ratio of output videos, we
537             recommend that you use the values C<MaxWidth>, C<MaxHeight>,
538             C<SizingPolicy>, C<PaddingPolicy>, and C<DisplayAspectRatio> instead of
539             C<Resolution> and C<AspectRatio>. The two groups of settings are
540             mutually exclusive. Do not use them together.
541              
542             The width and height of the video in the output file, in pixels. Valid
543             values are C<auto> and I<width> x I<height>:
544              
545             =over
546              
547             =item *
548              
549             C<auto>: Elastic Transcoder attempts to preserve the width and height
550             of the input file, subject to the following rules.
551              
552             =item *
553              
554             C<I<width> x I<height> >: The width and height of the output video in
555             pixels.
556              
557             =back
558              
559             Note the following about specifying the width and height:
560              
561             =over
562              
563             =item *
564              
565             The width must be an even integer between 128 and 4096, inclusive.
566              
567             =item *
568              
569             The height must be an even integer between 96 and 3072, inclusive.
570              
571             =item *
572              
573             If you specify a resolution that is less than the resolution of the
574             input file, Elastic Transcoder rescales the output file to the lower
575             resolution.
576              
577             =item *
578              
579             If you specify a resolution that is greater than the resolution of the
580             input file, Elastic Transcoder rescales the output to the higher
581             resolution.
582              
583             =item *
584              
585             We recommend that you specify a resolution for which the product of
586             width and height is less than or equal to the applicable value in the
587             following list (I<List - Max width x height value>):
588              
589             =over
590              
591             =item *
592              
593             1 - 25344
594              
595             =item *
596              
597             1b - 25344
598              
599             =item *
600              
601             1.1 - 101376
602              
603             =item *
604              
605             1.2 - 101376
606              
607             =item *
608              
609             1.3 - 101376
610              
611             =item *
612              
613             2 - 101376
614              
615             =item *
616              
617             2.1 - 202752
618              
619             =item *
620              
621             2.2 - 404720
622              
623             =item *
624              
625             3 - 404720
626              
627             =item *
628              
629             3.1 - 921600
630              
631             =item *
632              
633             3.2 - 1310720
634              
635             =item *
636              
637             4 - 2097152
638              
639             =item *
640              
641             4.1 - 2097152
642              
643             =back
644              
645             =back
646              
647              
648              
649             =head2 SizingPolicy => Str
650              
651             Specify one of the following values to control scaling of the output
652             video:
653              
654             =over
655              
656             =item *
657              
658             C<Fit>: Elastic Transcoder scales the output video so it matches the
659             value that you specified in either C<MaxWidth> or C<MaxHeight> without
660             exceeding the other value.
661              
662             =item *
663              
664             C<Fill>: Elastic Transcoder scales the output video so it matches the
665             value that you specified in either C<MaxWidth> or C<MaxHeight> and
666             matches or exceeds the other value. Elastic Transcoder centers the
667             output video and then crops it in the dimension (if any) that exceeds
668             the maximum value.
669              
670             =item *
671              
672             C<Stretch>: Elastic Transcoder stretches the output video to match the
673             values that you specified for C<MaxWidth> and C<MaxHeight>. If the
674             relative proportions of the input video and the output video are
675             different, the output video will be distorted.
676              
677             =item *
678              
679             C<Keep>: Elastic Transcoder does not scale the output video. If either
680             dimension of the input video exceeds the values that you specified for
681             C<MaxWidth> and C<MaxHeight>, Elastic Transcoder crops the output
682             video.
683              
684             =item *
685              
686             C<ShrinkToFit>: Elastic Transcoder scales the output video down so that
687             its dimensions match the values that you specified for at least one of
688             C<MaxWidth> and C<MaxHeight> without exceeding either value. If you
689             specify this option, Elastic Transcoder does not scale the video up.
690              
691             =item *
692              
693             C<ShrinkToFill>: Elastic Transcoder scales the output video down so
694             that its dimensions match the values that you specified for at least
695             one of C<MaxWidth> and C<MaxHeight> without dropping below either
696             value. If you specify this option, Elastic Transcoder does not scale
697             the video up.
698              
699             =back
700              
701              
702              
703             =head2 Watermarks => ArrayRef[L<Paws::ElasticTranscoder::PresetWatermark>]
704              
705             Settings for the size, location, and opacity of graphics that you want
706             Elastic Transcoder to overlay over videos that are transcoded using
707             this preset. You can specify settings for up to four watermarks.
708             Watermarks appear in the specified size and location, and with the
709             specified opacity for the duration of the transcoded video.
710              
711             Watermarks can be in .png or .jpg format. If you want to display a
712             watermark that is not rectangular, use the .png format, which supports
713             transparency.
714              
715             When you create a job that uses this preset, you specify the .png or
716             .jpg graphics that you want Elastic Transcoder to include in the
717             transcoded videos. You can specify fewer graphics in the job than you
718             specify watermark settings in the preset, which allows you to use the
719             same preset for up to four watermarks that have different dimensions.
720              
721              
722              
723             =head1 SEE ALSO
724              
725             This class forms part of L<Paws>, describing an object used in L<Paws::ElasticTranscoder>
726              
727             =head1 BUGS and CONTRIBUTIONS
728              
729             The source code is located here: https://github.com/pplu/aws-sdk-perl
730              
731             Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues
732              
733             =cut
734