

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# AWS Elemental MediaConvert ejemplos que utilizan la AWS SDK para PHP versión 3
<a name="emc-examples"></a>

AWS Elemental MediaConvert es un servicio de transcodificación de vídeo basado en archivos con funciones aptas para la radiodifusión. Puede usarlo para crear recursos para su emisión y entrega video-on-demand (VOD) a través de Internet. Para obtener más información, consulte la [Guía del usuario de AWS Elemental MediaConvert](https://docs.aws.amazon.com/mediaconvert/latest/ug/).

La API de PHP para AWS Elemental MediaConvert se expone a través de la clase de *`AWS.MediaConvert`*cliente. Para obtener más información, consulte [https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-mediaconvert-2017-08-29.html](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-mediaconvert-2017-08-29.html) en la referencia de la API.

## Cree y gestione trabajos de transcodificación en AWS Elemental MediaConvert
<a name="emc-examples-jobs"></a>

En este ejemplo, utiliza la AWS SDK para PHP versión 3 para llamar AWS Elemental MediaConvert y crear un trabajo de transcodificación. Antes de comenzar, debe cargar el vídeo de entrada en el bucket de Amazon S3 habilitado para el almacenamiento de entrada. Para obtener una lista de los códecs y contenedores compatibles con la entrada de vídeo, consulte[Códecs y contenedores de entrada compatibles](https://docs.aws.amazon.com/mediaconvert/latest/ug/reference-codecs-containers-input.html) [AWS Elemental MediaConvert Guía del usuario.](https://docs.aws.amazon.com/mediaconvert/latest/ug/).

Los siguientes ejemplos muestran cómo:
+ Cree trabajos de transcodificación en. AWS Elemental MediaConvert[CreateJob](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-mediaconvert-2017-08-29.html#createjob).
+ Cancela un trabajo de transcodificación de la AWS Elemental MediaConvert cola. [CancelJob](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-mediaconvert-2017-08-29.html#canceljob) 
+ Recupera el JSON para completar un trabajo de transcodificación. [GetJob](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-mediaconvert-2017-08-29.html#getjob) 
+ Recupere una matriz JSON para un máximo de 20 de los trabajos creados más recientemente. [ListJobs](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-mediaconvert-2017-08-29.html#listjobs) 

Todo el código de ejemplo para el AWS SDK para PHP está disponible [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

### Credenciales
<a name="examplecredentials"></a>

Antes de ejecutar el código de ejemplo, configure sus AWS credenciales, tal y como se describe en[Autenticación AWS con la AWS SDK para PHP versión 3](credentials.md). A continuación, importe las AWS SDK para PHP, tal y como se describe en[Instalación de la AWS SDK para PHP versión 3](getting-started_installation.md).

Para acceder al MediaConvert cliente, cree un rol de IAM que dé AWS Elemental MediaConvert acceso a sus archivos de entrada y a los buckets de Amazon S3 donde se almacenan los archivos de salida. Para obtener más información, consulte [Configurar los permisos de IAM](https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html) in the [AWS Elemental MediaConvert Guía del usuario](https://docs.aws.amazon.com/mediaconvert/latest/ug/).

### Crear un cliente
<a name="create-a-client"></a>

Para AWS SDK para PHP configurarlo, cree un MediaConvert cliente con la región de su código. En este ejemplo, la región se establece en us-west-2.

 **Importaciones** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\MediaConvert\MediaConvertClient;
```

 **Código de muestra** 

```
$mediaConvertClient = new MediaConvertClient([
    'version' => '2017-08-29',
    'region' => 'us-east-2',
    'profile' => 'default'
]);
```

### Definición de un trabajo de transcodificación sencillo
<a name="defining-a-simple-transcoding-job"></a>

Cree el JSON que define los parámetros del trabajo de transcodificación.

Estos parámetros son detallados. Puede utilizar la [consola de AWS Elemental MediaConvert](https://console.aws.amazon.com/mediaconvert/home) para generar los parámetros JSON del trabajo eligiendo la configuración del trabajo en la consola y, a continuación, eligiendo **Mostrar JSON del trabajo** en la parte inferior de la sección **Trabajo**. En este ejemplo, se muestra el JSON de un trabajo sencillo.

 **Código de muestra** 

```
$jobSetting = [
    "OutputGroups" => [
        [
            "Name" => "File Group",
            "OutputGroupSettings" => [
                "Type" => "FILE_GROUP_SETTINGS",
                "FileGroupSettings" => [
                    "Destination" => "s3://OUTPUT_BUCKET_NAME/"
                ]
            ],
            "Outputs" => [
                [
                    "VideoDescription" => [
                        "ScalingBehavior" => "DEFAULT",
                        "TimecodeInsertion" => "DISABLED",
                        "AntiAlias" => "ENABLED",
                        "Sharpness" => 50,
                        "CodecSettings" => [
                            "Codec" => "H_264",
                            "H264Settings" => [
                                "InterlaceMode" => "PROGRESSIVE",
                                "NumberReferenceFrames" => 3,
                                "Syntax" => "DEFAULT",
                                "Softness" => 0,
                                "GopClosedCadence" => 1,
                                "GopSize" => 90,
                                "Slices" => 1,
                                "GopBReference" => "DISABLED",
                                "SlowPal" => "DISABLED",
                                "SpatialAdaptiveQuantization" => "ENABLED",
                                "TemporalAdaptiveQuantization" => "ENABLED",
                                "FlickerAdaptiveQuantization" => "DISABLED",
                                "EntropyEncoding" => "CABAC",
                                "Bitrate" => 5000000,
                                "FramerateControl" => "SPECIFIED",
                                "RateControlMode" => "CBR",
                                "CodecProfile" => "MAIN",
                                "Telecine" => "NONE",
                                "MinIInterval" => 0,
                                "AdaptiveQuantization" => "HIGH",
                                "CodecLevel" => "AUTO",
                                "FieldEncoding" => "PAFF",
                                "SceneChangeDetect" => "ENABLED",
                                "QualityTuningLevel" => "SINGLE_PASS",
                                "FramerateConversionAlgorithm" => "DUPLICATE_DROP",
                                "UnregisteredSeiTimecode" => "DISABLED",
                                "GopSizeUnits" => "FRAMES",
                                "ParControl" => "SPECIFIED",
                                "NumberBFramesBetweenReferenceFrames" => 2,
                                "RepeatPps" => "DISABLED",
                                "FramerateNumerator" => 30,
                                "FramerateDenominator" => 1,
                                "ParNumerator" => 1,
                                "ParDenominator" => 1
                            ]
                        ],
                        "AfdSignaling" => "NONE",
                        "DropFrameTimecode" => "ENABLED",
                        "RespondToAfd" => "NONE",
                        "ColorMetadata" => "INSERT"
                    ],
                    "AudioDescriptions" => [
                        [
                            "AudioTypeControl" => "FOLLOW_INPUT",
                            "CodecSettings" => [
                                "Codec" => "AAC",
                                "AacSettings" => [
                                    "AudioDescriptionBroadcasterMix" => "NORMAL",
                                    "RateControlMode" => "CBR",
                                    "CodecProfile" => "LC",
                                    "CodingMode" => "CODING_MODE_2_0",
                                    "RawFormat" => "NONE",
                                    "SampleRate" => 48000,
                                    "Specification" => "MPEG4",
                                    "Bitrate" => 64000
                                ]
                            ],
                            "LanguageCodeControl" => "FOLLOW_INPUT",
                            "AudioSourceName" => "Audio Selector 1"
                        ]
                    ],
                    "ContainerSettings" => [
                        "Container" => "MP4",
                        "Mp4Settings" => [
                            "CslgAtom" => "INCLUDE",
                            "FreeSpaceBox" => "EXCLUDE",
                            "MoovPlacement" => "PROGRESSIVE_DOWNLOAD"
                        ]
                    ],
                    "NameModifier" => "_1"
                ]
            ]
        ]
    ],
    "AdAvailOffset" => 0,
    "Inputs" => [
        [
            "AudioSelectors" => [
                "Audio Selector 1" => [
                    "Offset" => 0,
                    "DefaultSelection" => "NOT_DEFAULT",
                    "ProgramSelection" => 1,
                    "SelectorType" => "TRACK",
                    "Tracks" => [
                        1
                    ]
                ]
            ],
            "VideoSelector" => [
                "ColorSpace" => "FOLLOW"
            ],
            "FilterEnable" => "AUTO",
            "PsiControl" => "USE_PSI",
            "FilterStrength" => 0,
            "DeblockFilter" => "DISABLED",
            "DenoiseFilter" => "DISABLED",
            "TimecodeSource" => "EMBEDDED",
            "FileInput" => "s3://INPUT_BUCKET_AND_FILE_NAME"
        ]
    ],
    "TimecodeConfig" => [
        "Source" => "EMBEDDED"
    ]
];
```

### Creación de un trabajo
<a name="create-a-job"></a>

Después de crear el JSON con los parámetros del trabajo, llame al método createJob invocando un `AWS.MediaConvert service object` y pasando los parámetros. El ID del trabajo creado se devuelve en los datos de la respuesta.

 **Código de muestra** 

```
try {
    $result = $mediaConvertClient->createJob([
        "Role" => "IAM_ROLE_ARN",
        "Settings" => $jobSetting, //JobSettings structure
        "Queue" => "JOB_QUEUE_ARN",
        "UserMetadata" => [
            "Customer" => "Amazon"
        ],
    ]);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

### Recuperación de un trabajo
<a name="retrieve-a-job"></a>

Con el JobID que se devuelve al llamar a createjob, se pueden obtener descripciones detalladas de los trabajos recientes en formato JSON.

 **Código de muestra** 

```
$mediaConvertClient = new MediaConvertClient([
    'version' => '2017-08-29',
    'region' => 'us-east-2',
    'profile' => 'default'
]);

try {
    $result = $mediaConvertClient->getJob([
        'Id' => 'JOB_ID',
    ]);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

### Cancelación de un trabajo
<a name="cancel-a-job"></a>

Con el JobID que se devuelve al llamar a createjob, se puede cancelar un trabajo mientras esté en la cola. No se pueden cancelar los trabajos cuya transcodificación ya ha comenzado.

 **Código de muestra** 

```
$mediaConvertClient = new MediaConvertClient([
    'version' => '2017-08-29',
    'region' => 'us-east-2',
    'profile' => 'default'
]);

try {
    $result = $mediaConvertClient->cancelJob([
        'Id' => 'JOB_ID', // REQUIRED The Job ID of the job to be cancelled.
    ]);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

### Listado de los trabajos de transcodificación recientes
<a name="listing-recent-transcoding-jobs"></a>

Cree el JSON con los parámetros, incluidos los valores que especifican si se debe ordenar la lista en orden ascendente (ASCENDING) o descendente (DESCENDING), el ARN de la cola de trabajos que se va comprobar y el estado de los trabajos que se deben incluir. Esto devuelve hasta 20 trabajos. Para recuperar los siguientes 20 trabajos más recientes, utilice la cadena nextToken devuelta con el resultado.

 **Código de muestra** 

```
$mediaConvertClient = new MediaConvertClient([
    'version' => '2017-08-29',
    'region' => 'us-east-2',
    'profile' => 'default'
]);

try {
    $result = $mediaConvertClient->listJobs([
        'MaxResults' => 20,
        'Order' => 'ASCENDING',
        'Queue' => 'QUEUE_ARN',
        'Status' => 'SUBMITTED',
        // 'NextToken' => '<string>', //OPTIONAL To retrieve the twenty next most recent jobs
    ]);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```