AWS Elemental MediaConvert esempi utilizzando la AWS SDK for PHP versione 3 - AWS SDK for PHP

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 for PHP versione 3

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 su Internet. video-on-demand VOD Per ulteriori informazioni, consulta la Guida per l'utente AWS Elemental MediaConvert.

Il PHP API for AWS Elemental MediaConvert è esposto attraverso la classe AWS.MediaConvertclient. Per ulteriori informazioni, vedere Class: AWS.MediaConvertnel API riferimento.

Crea e gestisci lavori di transcodifica in AWS Elemental MediaConvert

In questo esempio, si utilizza la AWS SDK for 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.AWS Elemental MediaConvert

Gli esempi seguenti mostrano come:

  • Crea lavori di transcodifica in. AWS Elemental MediaConvertCreateJob.

  • Annulla un processo di transcodifica dalla AWS Elemental MediaConvert coda. CancelJob

  • Recupera il file JSON per un lavoro di transcodifica completato. GetJob

  • Recupera un JSON array per un massimo di 20 dei lavori creati più di recente. ListJobs

Tutto il codice di esempio per il AWS SDK for PHP è disponibile qui GitHub.

Credenziali

Prima di eseguire il codice di esempio, configurate AWS le vostre credenziali, come descritto inCredenziali. Quindi importate il file AWS SDK for PHP, come descritto inUtilizzo di base.

Per accedere al MediaConvert client, crea un IAM ruolo 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 IAM le autorizzazioni nella Guida per l'AWS Elemental MediaConvert utente.

Crea un cliente

Configuralo AWS SDK for 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

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

Questi parametri sono dettagliati. È possibile utilizzare la AWS Elemental MediaConvert console per generare i parametri del JSON lavoro scegliendo le impostazioni del lavoro nella console e quindi selezionando Mostra lavoro nella parte JSON inferiore della sezione Job. Questo esempio mostra le istruzioni JSON per un lavoro 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" ] ];

Crea un processo.

Dopo aver creato i parametri del processoJSON, chiamate il createJob metodo richiamando un AWS.MediaConvert service object e passando 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"; }

Recuperate un lavoro

Con il JobID restituito quando hai chiamato createjob, puoi ottenere descrizioni dettagliate dei lavori 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

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

Create i parametriJSON, inclusi i valoriASCENDING, per specificare se ordinare o DESCENDING ordinare l'elenco in base alla coda ARN dei lavori da controllare e lo stato dei lavori da includere. Vengono restituiti fino a 20 processi. Per recuperare i 20 lavori più recenti successivi, utilizza la nextToken stringa restituita con result.

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