

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# AWS Elemental MediaConvert esempi utilizzando la AWS SDK per PHP versione 3
<a name="emc-examples"></a>

AWS Elemental MediaConvert è un servizio di transcodifica video basato su file con funzionalità di livello broadcast. Puoi usarlo per creare risorse per la trasmissione e la distribuzione video-on-demand (VOD) su Internet. Per ulteriori informazioni, consulta la [Guida per l'utente AWS Elemental MediaConvert](https://docs.aws.amazon.com/mediaconvert/latest/ug/).

L'API PHP per AWS Elemental MediaConvert è esposta tramite la classe *`AWS.MediaConvert`*client. Per ulteriori informazioni, consulta il riferimento [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)all'API.

## Crea e gestisci lavori di transcodifica in AWS Elemental MediaConvert
<a name="emc-examples-jobs"></a>

In questo esempio, si utilizza la AWS SDK per PHP versione 3 per chiamare AWS Elemental MediaConvert e creare un processo di transcodifica. Prima di iniziare, devi caricare il video di input nel bucket Amazon S3 che hai fornito per lo storage di input. [Per un elenco dei codec e contenitori di input video supportati, consulta Codecs e contenitori di [input supportati nella Guida per l'utente.](https://docs.aws.amazon.com/mediaconvert/latest/ug/reference-codecs-containers-input.html)AWS Elemental MediaConvert](https://docs.aws.amazon.com/mediaconvert/latest/ug/)

Gli esempi seguenti mostrano come:
+ Crea lavori di transcodifica in. AWS Elemental MediaConvert[CreateJob](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-mediaconvert-2017-08-29.html#createjob).
+ Annulla un processo di transcodifica dalla AWS Elemental MediaConvert coda. [CancelJob](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-mediaconvert-2017-08-29.html#canceljob) 
+ Recupera il codice JSON per un processo di transcodifica completato. [GetJob](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-mediaconvert-2017-08-29.html#getjob) 
+ Recupera un array JSON per un massimo di 20 dei lavori creati più di recente. [ListJobs](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-mediaconvert-2017-08-29.html#listjobs) 

Tutto il codice di esempio per il AWS SDK per PHP è [disponibile qui GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

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

Prima di eseguire il codice di esempio, configurate AWS le vostre credenziali, come descritto in[Autenticazione con l' AWS utilizzo AWS SDK per PHP della versione 3](credentials.md). Quindi importate il file AWS SDK per PHP, come descritto in[Installazione della AWS SDK per PHP versione 3](getting-started_installation.md).

Per accedere al MediaConvert client, crea un ruolo IAM che dia AWS Elemental MediaConvert accesso ai tuoi file di input e ai bucket Amazon S3 in cui sono archiviati i file di output. [Per i dettagli, consulta [Configurare le autorizzazioni IAM nella Guida](https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html) per l'AWS Elemental MediaConvert utente.](https://docs.aws.amazon.com/mediaconvert/latest/ug/)

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

Configuralo AWS SDK per PHP creando un MediaConvert client, con la regione per il tuo codice. In questo esempio, la regione è impostata su us-west-2.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

### Definizione di un semplice processo di transcodifica
<a name="defining-a-simple-transcoding-job"></a>

Crea il file JSON che definisce i parametri del processo di transcodifica.

Questi parametri sono dettagliati. È possibile utilizzare la [AWS Elemental MediaConvert console](https://console.aws.amazon.com/mediaconvert/home) per generare i parametri del lavoro JSON scegliendo le impostazioni del processo nella console e quindi selezionando **Mostra lavoro JSON** nella parte inferiore della sezione **Job**. Questo esempio illustra il JSON per un processo semplice.

 **Codice di esempio** 

```
$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"
    ]
];
```

### Creazione di un processo
<a name="create-a-job"></a>

Dopo aver creato il JSON dei parametri del processo, chiama il metodo createJob invocando un `AWS.MediaConvert service object`e trasferendo i parametri. L'ID del processo creato viene restituito nei dati della risposta.

 **Codice di esempio** 

```
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";
}
```

### Recupera un lavoro
<a name="retrieve-a-job"></a>

Con il JobID restituito quando viene chiamato createjob, è possibile ottenere descrizioni dettagliate dei processi recenti in formato JSON.

 **Codice di esempio** 

```
$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";
}
```

### Annullamento di un processo
<a name="cancel-a-job"></a>

Con il JobID restituito quando viene chiamato createjob, è possibile annullare un processo mentre è ancora in coda. Non è possibile annullare i processi che hanno già avviato la transcodifica.

 **Codice di esempio** 

```
$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";
}
```

### Elenco dei lavori di transcodifica recenti
<a name="listing-recent-transcoding-jobs"></a>

Crea il JSON dei parametri, inclusi i valori per specificare se ordinare l'elenco in ordine CRESCENTE o DECRESCENTE, l'ARN della coda dei processi da controllare e lo stato dei processi da includere. Vengono restituiti fino a 20 processi. Per recuperare i successivi 20 processi più recenti, utilizza la stringa nextToken restituita con il risultato.

 **Codice di esempio** 

```
$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";
}
```