

# Working with frame rate conversion
<a name="working-with-video-frame-rates"></a>

The *frame rate* of a video asset represents how quickly video player devices play back the frames of a video, in frames per second (fps). For example, films have a frame rate of 24 fps, NTSC television broadcasts are 29.97/59.94 fps, and PAL television broadcasts are 50/25 fps. If you keep the MediaConvert default settings in your job, your output video will have the same frame rate as your input video.

Some videos have a frame rate that varies over the duration of the video. For example, some cameras automatically generate video that uses more frames for high-action sequences and fewer frames for sequences with less motion. MediaConvert supports variable frame rate (VFR) inputs, but creates only constant frame rate (CFR) outputs. For more information, see [Variable frame rate inputs](using-variable-frame-rate-inputs.md).

**Topics**
+ [Settings for frame rate conversion](#settings-for-frame-rate-conversion)
+ [Converting the frame rate of your video](converting-frame-rate.md)
+ [Using variable frame rate inputs in AWS Elemental MediaConvert](using-variable-frame-rate-inputs.md)
+ [Working with progressive and interlaced scan types in AWS Elemental MediaConvert](working-with-scan-type.md)
+ [Working with telecine in AWS Elemental MediaConvert](working-with-telecine-and-inverse-telecine.md)

## Settings for frame rate conversion
<a name="settings-for-frame-rate-conversion"></a>

To create outputs that have a different frame rate than your input, use these MediaConvert settings:

**Frame rate** (`framerateControl`, `framerateNumerator`, `framerateDenominator`)  
For frame rate conversion, specify a frame rate in your output encoding settings that's different from your input video frame rate. MediaConvert will then create an output that has the frame rate you specify, rather than the frame rate of your input video.  
Specifying your output frame rate directly in your JSON job specification can be more complex than doing so in the MediaConvert console. For details, see the procedure for using the API, CLI, and SDK in the topic [Configuring frame rate conversion](converting-frame-rate.md).

**Frame rate conversion algorithm** (`framerateConversionAlgorithm`)  
Choose how you want MediaConvert to increase or decrease the frame rate. The best choice for this setting depends on the content of your video.  
When you use **Drop duplicate**, MediaConvert copies or deletes frames but doesn't alter them. This preserves the picture quality of each individual frame, but might introduce stuttering in some conversions. For numerically simple conversions, such as 60 fps to 30 fps, Drop duplicate is often the best choice.   
When you use **Interpolate**, MediaConvert blends frames together to avoid the need to repeat or remove frames. This results in smooth motion, but might introduce undesirable video artifacts. For numerically complex conversions, Interpolate is likely to provide better results than Drop duplicate.   
When you use **FrameFormer**, MediaConvert uses the InSync FrameFormer library. The conversion uses motion-compensated interpolation based on the content of your input video. FrameFormer performs various frame rate conversion techniques on a scene-by-scene basis and can use different techniques on different regions of each frame. FrameFormer does the conversion based on automatic detection of your source video's underlying cadence, rather than relying on the frame rate reported in the file's metadata.  
**Feature limitations:**   
+ You can use FrameFormer with inputs that have resolutions up to 4K only. MediaConvert doesn't support FrameFormer conversion with 8K inputs.
+ You can use FrameFormer only with jobs that you run through an on-demand queue. You can't use reserved queues with FrameFormer.
Using FrameFormer increases the transcoding time and incurs a significant add-on cost. For more information, see the [MediaConvert pricing page](https://aws.amazon.com/mediaconvert/pricing/).

Depending on the conversion, you might also use these settings:

**Slow PAL** (`slowPal`)  
When you convert the frame rate from 23.976 or 24 frames per second (fps) to 25 fps, you can optionally enable **Slow PAL** (slow phase alternating line ). When you enable slow PAL, instead of duplicating frames to increase the frame rate, MediaConvert relabels the video frames as 25 fps and resamples your audio to keep it synchronized with the video. Slow PAL frame rate conversion slightly reduces the duration of the video. Generally, you use slow PAL to convert a cinema format for file-based playback or internet streaming.

**Telecine** (`telecine`)  
When you convert the frame rate from 23.976 frames per second (fps) to 29.97 fps, and your output scan type is interlaced, you can optionally set **Telecine** to **Hard** or **Soft** to create a smoother picture. Generally, you use telecine when you're preparing a video asset for broadcasting to set-top boxes.  
For more information, see [Telecine](working-with-telecine-and-inverse-telecine.md).

**Scan type** (`inputScanType`)  
Use this setting only with progressive segmented frame (PsF) inputs. MediaConvert automatically detects progressive and interlaced inputs. But it doesn't detect PsF. When your input is PsF, set **Scan type** to **PsF** for better preservation of quality when you do deinterlacing and frame rate conversion.

# Converting the frame rate of your video
<a name="converting-frame-rate"></a>

 After you know how you want to specify the relevant settings, use one of the following procedures to set up your job. For conceptual information and guidance about choosing the right values for these settings, see [Settings for frame rate conversion](working-with-video-frame-rates.md#settings-for-frame-rate-conversion).

------
#### [ Console ]

To set up your transcoding job with frame rate conversion using the MediaConvert console:

1. Determine the values that you want to set for frame rate conversion. For more information, see [Settings for frame rate conversion](working-with-video-frame-rates.md#settings-for-frame-rate-conversion).

1. Set up your job inputs and outputs as described in [Tutorial: Configuring job settings](setting-up-a-job.md).

1. On the **Create job** page, in the **Job** pane on the left, choose the output that you want to use frame rate conversion with.
**Tip**  
To find a specific encoding setting on the MediaConvert console, use your browser's search function.

1. In the **Encoding settings** section, for **Frame rate**, choose the frame rate that you want for your output. If the frame rate that you want isn't listed, choose **Custom**. Then specify your frame rate as a fraction in the fields to the right of **Frame rate**.

1. For **Framerate conversion algorithm**, choose the algorithm most suited to your content.

   **Framerate conversion algorithm** isn't available on the MediaConvert console until you choose your output frame rate.

1. Optional. If your output is 25 fps and you want to use **Slow PAL**, enable it.

1. Optional. If you're converting from 23.976 fps to 29.97 fps and you want to do a telecine conversion, set **Telecine** to **Hard** or **Soft**.

   **Telecine** isn't available on the MediaConvert console until you set your output frame rate to 29.97.

------
#### [ API, SDK, or CLI ]

If you use the API, CLI, or an SDK, specify the relevant settings in your JSON job specification and then submit it programmatically with your job. For more information about submitting your job programmatically, see one of the introductory topics of the *AWS Elemental MediaConvert API Reference*:
+ [Getting started with AWS Elemental MediaConvert using the AWS SDKs or the AWS CLI](https://docs.aws.amazon.com/mediaconvert/latest/apireference/custom-endpoints.html)
+ [Getting started with AWS Elemental MediaConvert using the API](https://docs.aws.amazon.com/mediaconvert/latest/apireference/getting-started.html)

To set up your transcoding job with frame rate conversion using the API, SDK or AWS Command Line Interface (CLI):

1. Determine the values you want to set for frame rate conversion. For more information, see [Settings for frame rate conversion](working-with-video-frame-rates.md#settings-for-frame-rate-conversion).

1. Use the MediaConvert console to generate your JSON job specification. We recommend this approach, because the console functions as an interactive validator against the MediaConvert job schema. Follow these steps to generate your JSON job specification using the console:

   1. Follow the previous procedure for the console.

   1. In the **Job** pane on the left, under **Job settings**, choose **Show job JSON**.

Find additional information, including where each setting belongs in the job settings structure, in the *AWS Elemental MediaConvert API Reference*. Links in this list go to information about the setting in that document:
+ **Frame rate control** (`framerateControl`)

  Use the frame rate control setting to specify whether MediaConvert uses the frame rate of your input sources or the frame rate that you specify with the `framerateNumerator` and `framerateDenominator` settings.
**Note**  
The default behavior for this setting is to follow source. Therefore, if you keep this setting out of your JSON job specification, MediaConvert ignores any values you provide for `framerateNumerator` and `framerateDenominator`.
  + AV1: `[framerateControl](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-model-av1frameratecontrol)`
  + AVC (H.264): `[framerateControl](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h264settings-frameratecontrol)`
  + HEVC (H.265): `[framerateControl](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h265settings-frameratecontrol)`
  + MPEG-2: `[framerateControl](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-mpeg2settings-frameratecontrol)`
  + Apple ProRes: `[framerateControl](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-proressettings-frameratecontrol)`
  + VP8: `[framerateControl](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-vp8settings-frameratecontrol)`
  + VP9: `[framerateControl](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-vp9settings-frameratecontrol)`
+ **Frame rate** (`framerateNumerator` and `framerateDenominator`)

  In the MediaConvert job settings schema, frame rate is represented as a fraction, to retain precision with irrational numbers. Therefore, specify your frame rate value as `framerateNumerator` divided by `framerateDenominator`. For values for common frame rates, see the table following this list of settings.

  Links to `framerateNumerator`
  + AV1: `[framerateNumerator](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-av1settings-frameratenumerator)`
  + AVC (H.264): `[framerateNumerator](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h264settings-frameratenumerator)`
  + HEVC (H.265): `[framerateNumerator](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h265settings-frameratenumerator)`
  + MPEG-2: `[framerateNumerator](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-mpeg2settings-frameratenumerator)`
  + Apple ProRes: `[framerateNumerator](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-proressettings-frameratenumerator)`
  + VP8: `[framerateNumerator](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-vp8settings-frameratenumerator)`
  + VP9: `[framerateNumerator](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-vp9settings-frameratenumerator)`

  Links to `framerateDenominator`
  + AV1: `[framerateDenominator](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-av1settings-frameratedenominator)`
  + AVC (H.264): `[framerateDenominator](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h264settings-frameratedenominator)`
  + HEVC (H.265): `[framerateDenominator](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h265settings-frameratedenominator)`
  + MPEG-2: `[framerateDenominator](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-mpeg2settings-frameratedenominator)`
  + Apple ProRes: `[framerateDenominator](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-proressettings-frameratedenominator)`
  + VP8: `[framerateDenominator](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-vp9settings-frameratedenominator)`
  + VP9: `[framerateDenominator](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-av1settings-frameratenumerator)`
+ **Frame rate conversion algorithm** (`framerateConversionAlgorithm`)
  + AV1: `[framerateConversionAlgorithm](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-av1settings-framerateconversionalgorithm)`
  + AVC (H.264): `[framerateConversionAlgorithm](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h264settings-framerateconversionalgorithm)`
  + HEVC (H.265): `[framerateConversionAlgorithm](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h265settings-framerateconversionalgorithm)`
  + MPEG-2: `[framerateConversionAlgorithm](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-mpeg2settings-framerateconversionalgorithm)`
  + Apple ProRes: `[framerateConversionAlgorithm](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-vp8settings-framerateconversionalgorithm)`
  + VP8: `[framerateConversionAlgorithm](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-vp9settings-framerateconversionalgorithm)`
  + VP9: `[framerateConversionAlgorithm](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-av1settings-frameratedenominator)`
+ **Slow PAL** (`slowPal`)
  + AVC (H.264): `[slowPal](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h264settings-slowpal)`
  + HEVC (H.265): `[slowPal](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-mpeg2settings-slowpal)`
  + MPEG-2: `[slowPal](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h264settings-slowpal)`
  + Apple ProRes: `[slowPal](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h264settings-slowpal)`
+ **Telecine** (`telecine`)
  + AVC (H.264): `[telecine](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h264settings-telecine)`
  + HEVC (H.265): `[telecine](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h265settings-telecine)`
  + MPEG-2: `[telecine](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-mpeg2settings-telecine)`
  + Apple ProRes: `[telecine](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-proressettings-telecine)`
  + **Scan type** (`[InputScanType](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-input-inputscantype)`)


**Common frame rate ratios**  

| Frame rate common name | Value for framerateNumerator | Value for framerateDenominator | 
| --- | --- | --- | 
| 23.976 | 24,000 | 1,001 | 
| 29.97 | 30,000 | 1,001 | 
| 59.94 | 60,000 | 1,001 | 

------

# Using variable frame rate inputs in AWS Elemental MediaConvert
<a name="using-variable-frame-rate-inputs"></a>

Some videos have a frame rate that varies over the duration of the video. Some cameras—for example, the cameras in many smartphones—automatically generate video that uses more frames for high-action sequences and fewer frames for sequences with less motion. MediaConvert supports variable frame rate (VFR) inputs, but creates only constant frame rate (CFR) outputs.

The default setting for output frame rate is **Follow source**. **Follow source** causes different behavior depending on whether your input video has a constant or variable frame rate.
+ For constant frame rate inputs, **Follow source** results in outputs that have the same frame rate as the input video.
+ For variable frame rate inputs, **Follow source** results in outputs that have a constant frame rate output, with a frame rate that is the average of the input frame rates, rounded up to the nearest whole number standard frame rate: 1, 5, 10, 15, 24, 30, 50, or 60 fps.

**Feature restrictions**  
MediaConvert support for variable frame rate video is limited in these ways:
+ Variable frame rates are supported as input only. Outputs are only constant frame rate.
+ Variable frame rate inputs are supported in these containers only: MP4, MOV, WEBM, and MKV.

# Working with progressive and interlaced scan types in AWS Elemental MediaConvert
<a name="working-with-scan-type"></a>

*Progressive* and *interlaced* are two types of video display methods. Modern display devices detect whether a video is interlaced or progressive and automatically play back the video correctly. But, progressive video looks much better on modern screens.

To get the best results with using interlacing/deinterlacing and converting to and from telecine, you must consider how your input video was recorded and what transformations have been done to it. For example, when you apply deinterlacing to an input that is not interlaced, your output video quality suffers.

**Topics**
+ [Basic scan type vocabulary](#scan-type-vocabulary)
+ [Settings for scan type conversion](#settings-for-scan-type-conversion)
+ [Converting the scan type of your video](converting-scan-type.md)
+ [Valid settings combinations and requirements](valid-settings-combinations.md)

## Basic scan type vocabulary
<a name="scan-type-vocabulary"></a>

Progressive video  
*Progressive video* includes all lines in all frames. It looks better on modern screens because it drastically reduces the amount of image flicker the viewer sees on the screen. Devices displaying progressive video will re-draw all horizontal lines in a frame. For example, a device running at 50 Hertz playing a 1080 progressive video re-draws 1080 lines (every line in the frame) 50 times per second.

Interlaced video  
*Interlaced video* uses a technique that doubles the perceived frame rate of a video display without consuming extra bandwidth. On older displays, most people won't notice decreased video quality with interlaced video. Devices that support interlaced video re-draw every *other* horizontal line in a frame. For example, a device running at 50 Hertz playing a 1080 interlaced video redraws 540 lines (half of the lines in the frame) 50 times per second. 

Field polarity for interlaced frames  
Interlaced video contains two fields of a video frame, each one made up of every other horizontal line the image. *Field polarity* in video distinguishes between these two sets of lines. A set's polarity indicates whether the top field comes first or bottom field comes first. In the following illustration, the set with top field polarity is shown in blue and contains the topmost line. The set with bottom field polarity is shown in red and contains the second horizontal line from the top. The complete frame contains both, with each set being refreshed alternately.  

![\[The illustration representing the complete frame is a square made up of alternating blue and red stripes. The top field square shows only the blue stripes, with white representing space between them. The first blue stripe is at the top of the square. The bottom field square shows only the red stripes. The first red stripe is one stripe's width below the top.\]](http://docs.aws.amazon.com/mediaconvert/latest/ug/images/interlaced-field.PNG)

When you create interlaced outputs with MediaConvert, you can specify which field polarity comes first with the setting **Interlace mode**.

## Settings for scan type conversion
<a name="settings-for-scan-type-conversion"></a>

To convert between interlaced to progressive video, specify the MediaConvert settings covered in this topic. This topic offers conceptual information and guidance for choosing values for the MediaConvert settings related to interlacing and deinterlacing. For directions for specifying them, see the procedures in the topic [Configuring scan type conversion](converting-scan-type.md).

Valid values for some of these settings depend on what you choose for the other settings. For a table that shows how to specify them together correctly, see [Requirements](valid-settings-combinations.md).

**Deinterlacer** preprocessor `(Deinterlacer`)  
Use this parent setting to enable and disable deinterlacing. If you simply enable the deinterlacer without specifying any further deinterlacing settings, your job will convert interlaced content to progressive. For the default deinterlacing to work correctly, your input video must be interlaced and the frames of your input video must not have metadata that tags them as progressive.

**Deinterlace Control** (`DeinterlacerControl`)  
This setting is a child of the deinterlacer setting. You can optionally use **Deinterlace control** to have MediaConvert deinterlace all frames of your input video, including those that are tagged as progressive. Only use this setting when you know that this metadata in your input video is wrong.

**Deinterlace algorithm** (`DeinterlaceAlgorithm)`  
This setting is a child of the deinterlacer setting. You can optionally use **Deinterlace algorithm** to specify the way that MediaConvert does the deinterlacing to get the best quality for your content. For sharper pictures, choose one of the motion adaptive interpolation options (**Interpolate** or **Interpolate ticker**). For smoother motion, choose one of the blend options (**Blend** or **Blend ticker**). When your source file includes moving text, such as a scrolling headline at the bottom of the frame, choose the ticker version of the algorithm.

**Deinterlace mode** (`DeinterlacerMode`)  
This setting is a child of the deinterlacer setting. You can optionally use **Deinterlace mode** to modify how MediaConvert applies deinterlacing.  
Keep the default value, **Deinterlace**, to do regular deinterlacing.  
Choose **Inverse telecine** to convert hard telecine (29.97 fps, interlaced) to progressive video at 23.976 fps. When you use inverse telecine, you must still specify your output frame rate as 23.97. MediaConvert doesn't automatically set this.   
Choose **Adaptive** to have MediaConvert automatically detect interlaced inputs and apply deinterlacing and inverse telecine to them. Adaptive deinterlace mode is useful when you use output presets, job templates, or custom programming to apply the same job settings to transcode an entire library of assets.  
When you choose **Adaptive** for this setting, MediaConvert automatically uses inverse telecine as well.

**Interlace mode** (`interlaceMode`)  
When you create interlaced video, from either progressive or interlaced inputs, use this MediaConvert setting. The default value of this setting is **Progressive**, so you can ignore this setting unless you want an interlaced output.   
When you use an interlaced input and you keep the default setting, **Progressive**, for **Interlace mode**, you should also enable **Deinterlace**. Otherwise, your progressive output will have very poor video quality.
When you create interlaced outputs, use **Interlace mode** to specify the [field polarity](#scan-type-vocabulary) of your outputs. You can either directly specify the field that comes first, or you can set it to follow the polarity of the source input. For jobs that have multiple inputs, the output might have a mix of top and bottom field first, depending on the polarity of the inputs.  
When you set **Interlace mode** to follow the source and your input is progressive, the output's field polarity depends on which of the follow options you set. **Follow, top field** results in an output that's top field first. **Follow, bottom field** results in an output that's bottom field first.

**Scan type** (`inputScanType`)  
Use this setting only when your input is progressive segmented frame (PsF). MediaConvert automatically detects progressive and interlaced inputs. But it doesn't detect PsF. When your input is PsF, set **Scan type** to **PsF** for better preservation of quality when you do deinterlacing and frame rate conversion.

# Converting the scan type of your video
<a name="converting-scan-type"></a>

 After you know how you want to specify the relevant settings, use one of the following procedures to set up your job. For conceptual information and guidance about choosing the right values for these settings, see [Settings for scan type conversion](working-with-scan-type.md#settings-for-scan-type-conversion).

**To set up your transcoding job to convert scan type and telecine (console)**

1. Consult the topic [Settings for scan type conversion](working-with-scan-type.md#settings-for-scan-type-conversion) to determine the values that you want to set for interlacing or deinterlacing.

1. Set up your job inputs and outputs as described in [Tutorial: Configuring job settings](setting-up-a-job.md).

1. On the **Create job** page, in the **Job** pane on the left, choose the output that you want to work with.

1. Find the settings you need in the **Encoding settings** section as follows:
   + **Deinterlacer** preprocessor: Choose **Deinterlacer** from the list of preprocessors at the bottom of the **Encoding settings** section.
   + **Deinterlace Control**: Find this setting in the **Deinterlacer** section after you enable the deinterlacer.
   + **Deinterlace algorithm**: Find this setting in the **Deinterlacer** section after you enable the deinterlacer.
   + **Deinterlace mode**: Find this setting in the **Deinterlacer** section after you enable the deinterlacer.
   + **Interlace mode**: Find this setting directly under **Encoding settings**. You might want to use your web browser's search function to find this setting.
   + **Telecine**: This setting is only visible in the MediaConvert console when you set **Frame rate** to **29.970**. Find **Frame rate** directly under **Encoding settings**. You might want to use your web browser's search function to find this setting.

     The default value for **Telecine** is **None**. Therefore, you only need to make this setting visible in the MediaConvert console when you are creating a telecine output.

**To set up your transcoding job to convert scan type and telecine (API, CLI, or SDK)**

If you use the API, CLI, or an SDK, specify the relevant settings in your JSON job specification and then submit it programmatically with your job. For more information about submitting your job programmatically, see one of the introductory topics of the *AWS Elemental MediaConvert API Reference*:
+ [Getting started with AWS Elemental MediaConvert using the AWS SDKs or the AWS CLI](https://docs.aws.amazon.com/mediaconvert/latest/apireference/custom-endpoints.html)
+ [Getting started with AWS Elemental MediaConvert using the API](https://docs.aws.amazon.com/mediaconvert/latest/apireference/getting-started.html)

1. Consult the topic [Settings for scan type conversion](working-with-scan-type.md#settings-for-scan-type-conversion) to determine the values that you want to set for interlacing or deinterlacing.

1. Use the MediaConvert console to generate your JSON job specification. We recommend this approach, because the console functions as an interactive validator against the MediaConvert job schema. Follow these steps to generate your JSON job specification using the console:

   1. Follow the previous procedure for the console.

   1. In the **Job** pane on the left, under **Job settings**, choose **Show job JSON**.

   Find additional information, including where each setting belongs in the job settings structure, in the *AWS Elemental MediaConvert API Reference*. Links in this list go to information about the setting in that document:
   + **Deinterlacer** preprocessor: `[Deinterlacer](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-videopreprocessor-deinterlacer)`
   + **Deinterlace Control**: `[DeinterlacerControl](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-deinterlacer-control)`
   + **Deinterlace algorithm**: `[DeinterlaceAlgorithm](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-deinterlacer-algorithm)`
   + **Deinterlace mode**: `[DeinterlacerMode](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-deinterlacer-mode)`
   + **Interlace mode** (`interlaceMode`)
     + AVC (H.264): `[interlaceMode](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h264settings-interlacemode)`
     + HEVC (H.265): `[interlaceMode](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h265settings-interlacemode)`
     + MPEG-2: `[interlaceMode](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-mpeg2settings-interlacemode)`
     + Apple ProRes: `[interlaceMode](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-proressettings-interlacemode)`
   + **Telecine** (`telecine`)
     + AVC (H.264): `[telecine](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h264settings-telecine)`
     + HEVC (H.265): `[telecine](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h265settings-telecine)`
     + MPEG-2: `[telecine](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-mpeg2settings-telecine)`
     + Apple ProRes: `[telecine](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-proressettings-telecine)`
   + **Scan type** (`[InputScanType](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-input-inputscantype)`)

# Valid settings combinations and requirements
<a name="valid-settings-combinations"></a>

Use this table to confirm that the scan type settings you intend to use are valid together and that they work with the scan type of your source input.

**Note**  
**Deinterlace algorithm** doesn't appear in this table, because whenever it makes sense to enable **Deinterlacer**, you can choose any value regardless of your other settings.


| To convert this input | To this output | Use these settings values | 
| --- | --- | --- | 
|  Progressive  |  Progressive  |  **Deinterlacer**: Disabled **Deinterlace control**: N/A **Deinterlace mode**: N/A **Interlace mode**: Progressive (default) **Telecine**: None (default)  | 
|  Interlaced  |  Progressive  |  **Deinterlacer**: Enabled **Deinterlace control**: Either value **Deinterlace mode**: Deinterlace (default) **Interlace mode**: Progressive (default) **Telecine**: None (default)  | 
|  Hard telecine  |  Progressive  |  **Deinterlacer**: Enabled **Deinterlace control**: Either value **Deinterlace mode**: Inverse telecine **Interlace mode**: Progressive (default) **Telecine**: None (default) **Frame rate**: 23.976  | 
|  Hard telecine  |  Progressive *When you want to use **Adaptive** for **Deinterlace mode***  |  **Deinterlacer**: Enabled **Deinterlace control**: Normal **Deinterlace mode**: Adaptive **Interlace mode**: Progressive (default) **Telecine**: None (default) **Frame rate**: 23.976  | 
|  Soft telecine  |  Progressive  |  **Deinterlacer**: Disabled **Deinterlace control**: N/A **Deinterlace mode**: N/A **Interlace mode**: Progressive (default) **Telecine**: None (default) **Frame rate**: 23.976  | 
|  Multiple inputs, some interlaced and some progressive  |  Progressive  |  **Deinterlacer**: Enabled **Deinterlace control**: Normal **Deinterlace mode**: Adaptive **Interlace mode**: Progressive (default) **Telecine**: None (default)  | 
|  Progressive  |  Hard telecine  |  **Deinterlacer**: Disabled **Deinterlace control**: N/A **Deinterlace mode**: N/A **Interlace mode**: Any value except progressive **Telecine**: Hard **Frame rate**: 29.97  | 
|  Hard telecine  |  Hard telecine  |  **Deinterlacer**: Disabled **Deinterlace control**: N/A **Deinterlace mode**: N/A **Interlace mode**: Any value except progressive **Telecine**: None **Frame rate**: Follow source  | 
|  Soft telecine  |  Hard telecine  |  **Deinterlacer**: Disabled **Interlace mode**: Any value except progressive **Telecine**: Hard **Framerate**: 29.97  | 
|  Multiple inputs, some interlaced and some progressive  |  Hard telecine  |  **Deinterlacer**: Disabled **Deinterlace control**: N/A **Deinterlace mode**: N/A **Interlace mode**: Any value except progressive **Telecine**: Hard **Framerate**: 29.97  | 
|  Interlaced  |  Interlaced  |  **Deinterlacer**: Disabled **Deinterlace control**: N/A **Deinterlace mode**: N/A **Interlace mode**: Any value except progressive **Telecine**: None  | 
|  Multiple inputs, some interlaced and some progressive  |  Interlaced  |  **Deinterlacer**: Disabled **Deinterlace control**: N/A **Deinterlace mode**: N/A **Interlace mode**: Any value except progressive **Telecine**: None  | 
|  Progressive  |  Soft telecine  |  **Deinterlacer**: Disabled **Deinterlace control**: N/A **Deinterlace mode**: N/A **Interlace mode**: Any value except progressive **Telecine**: Soft  | 
|  Hard telecine  |  Soft telecine  |  **Deinterlacer**: Enabled **Deinterlace control**: Either value **Deinterlace mode**: Inverse telecine **Interlace mode**: Any value except progressive **Telecine**: Soft **Framerate**: 23.967  | 
|  Hard telecine  |  Soft telecine *When you want to use **Adaptive** for **Deinterlace mode***  |  **Deinterlacer**: Enabled **Deinterlace control**: Normal **Deinterlace mode**: Adaptive **Interlace mode**: Any value except progressive **Telecine**: Soft **Framerate**: 23.967  | 
|  Soft telecine  |  Soft telecine  |  **Deinterlacer**: Disabled **Deinterlace control**: N/A **Deinterlace mode**: N/A **Interlace mode**: Any value except progressive **Telecine**: Soft  | 
|  Multiple inputs, some interlaced and some progressive  |  Soft telecine  |  **Deinterlacer**: Enabled **Deinterlace control**: Normal **Deinterlace mode**: Adaptive **Interlace mode**: Any value except progressive **Telecine**: Soft **Framerate**: 23.967  | 

# Working with telecine in AWS Elemental MediaConvert
<a name="working-with-telecine-and-inverse-telecine"></a>

When you convert the frame rate from 23.976 frames per second (fps) to 29.97 fps, and your output scan type is interlaced, you can optionally use the **Telecine** setting to enable hard or soft telecine. *Hard telecine* produces a 29.97i output by duplicating interlaced video frame fields onto multiple frames. *Soft telecine* produces a 23.976 fps output that signals to the video player device to do the conversion during play back. Generally, broadcasters use telecine when preparing film assets for broadcasting to NTSC set-top boxes.

How you set some of the related MediaConvert settings depends on the scan type and frame rate of your input, and whether your input has telecine frames already. Details about related settings are in the following list. For a summary table, see [Requirements](valid-settings-combinations.md).Related settings

**Frame rate** (`framerateControl`, `framerateNumerator`, `framerateDenominator`)  
When you enable the telecine setting, you must still specify your output frame rate as 29.97. MediaConvert doesn't automatically set this.

**Frame rate conversion algorithm** (`framerateConversionAlgorithm`)  
When your input frame rate isn't 23.976 and you enable **Telecine**, MediaConvert uses the frame rate conversion algorithm that you specify to convert your frame rate to 23.976 before applying telecine. When your input frame rate is 23.976, MediaConvert ignores any value you set for **Frame rate conversion algorithm**.

**Deinterlacer** preprocessor `(Deinterlacer`)  
Enable the deinterlacer when you want to remove interlacing to create a progressive output. When you remove interlacing from a telecine input, make sure to also set **Deinterlace mode** to **Inverse telecine**.  
For more information about deinterlacing, see [Progressive and interlaced scan types](working-with-scan-type.md).

**Interlace mode** (`interlaceMode`)  
When your input is progressive and you set up a telecine output, apply interlacing using **Interlace mode**.  
For more information about interlacing, see [Progressive and interlaced scan types](working-with-scan-type.md).

**Scan type** (`inputScanType`)  
Use this setting only when your input is progressive segmented frame (PsF). MediaConvert automatically detects progressive and interlaced inputs. But it doesn't detect PsF. When your input is PsF, set **Scan type** to **PsF** for better preservation of quality when you do deinterlacing and frame rate conversion.

For MediaConvert console and API procedures for setting up a job to convert a video to or from telecine, see [Configuring scan type conversion](converting-scan-type.md).

**Tip**  
If your video processing workflow doesn't require telecine, choose a standard progressive output.