AWS Elemental MediaConvert exemplos usando a AWS SDK for PHP versão 3 - AWS SDK for PHP

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWS Elemental MediaConvert exemplos usando a AWS SDK for PHP versão 3

AWS Elemental MediaConvert é um serviço de transcodificação de vídeo baseado em arquivo com recursos de nível de transmissão. Você pode usá-lo para criar ativos para transmissão e entrega video-on-demand (VOD) pela Internet. Para mais informações, consulte o Guia do usuário do AWS Elemental MediaConvert.

A API PHP para AWS Elemental MediaConvert é exposta por meio da classe AWS.MediaConvertcliente. Para obter mais informações, consulte Class: AWS.MediaConvert na Referência da API.

Crie e gerencie trabalhos de transcodificação no AWS Elemental MediaConvert

Neste exemplo, você usa a AWS SDK for PHP versão 3 para chamar AWS Elemental MediaConvert e criar um trabalho de transcodificação. Antes de começar, é necessário fazer upload do vídeo de entrada no bucket do Amazon S3 que você provisionou para o armazenamento de entrada. Para obter uma lista dos codecs de vídeo de entrada e contêineres compatíveis, consulte Codecs e contêineres de entrada compatíveis no Guia do usuário do AWS Elemental MediaConvert.

Os exemplos a seguir mostram como:

  • Crie trabalhos de transcodificação em. AWS Elemental MediaConvertCreateJob.

  • Cancele um trabalho de transcodificação da AWS Elemental MediaConvert fila. CancelJob

  • Recupere o JSON para concluir o trabalho de transcodificação. GetJob

  • Recupere uma matriz JSON para até 20 dos trabalhos criados mais recentemente. ListJobs

Todo o código de exemplo para o AWS SDK for PHP está disponível aqui em GitHub.

Credenciais

Antes de executar o código de exemplo, configure suas AWS credenciais, conforme descrito emCredenciais. Em seguida, importe o AWS SDK for PHP, conforme descrito emUso básico.

Para acessar o MediaConvert cliente, crie uma função do IAM que dê AWS Elemental MediaConvert acesso aos seus arquivos de entrada e aos buckets do Amazon S3 onde seus arquivos de saída são armazenados. Para obter detalhes, consulte Configurar permissões do IAM no Guia do usuário do AWS Elemental MediaConvert.

Criar um cliente

Configure o AWS SDK for PHP criando um MediaConvert cliente, com a região do seu código. Neste exemplo, a região é definida como us-west-2.

Importações

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\MediaConvert\MediaConvertClient;

Código de exemplo

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

Definição de um trabalho de transcodificação simples

Crie o JSON que define os parâmetros da tarefa de transcodificação.

Esses parâmetros são detalhados. Você pode usar o console do AWS Elemental MediaConvert para gerar os parâmetros de tarefa do JSON escolhendo as configurações de tarefa no console e depois selecionando Mostrar JSON de tarefa na parte inferior da seção Trabalho. Este exemplo mostra o JSON para uma tarefa simples.

Código de exemplo

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

Criar um trabalho

Depois de criar o JSON de parâmetros de tarefa, chame o método createJob invocando um AWS.MediaConvert service object e passando os parâmetros. O ID da tarefa criado é retornado nos dados da resposta.

Código de exemplo

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

Recuperar um trabalho

Com o JobID retornado quando o createjob foi chamado, você pode obter descrições detalhadas dos trabalhos recentes no formato JSON.

Código de exemplo

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

Cancelar um trabalho

Com o JobID retornado quando o createjob foi chamado, você pode cancelar uma tarefa enquanto ela ainda está na fila. Você não pode cancelar tarefas cuja transcodificação já tenha sido iniciada.

Código de exemplo

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

Listagem de trabalhos de transcodificação recentes

Crie o JSON de parâmetros, incluindo valores para especificar se deseja classificar a lista em ordem CRESCENTE ou DECRESCENTE, o ARN da fila de trabalho a ser verificada e o status de tarefas a ser incluído. Isso retornará até 20 trabalhos. Para recuperar os próximos 20 trabalhos mais recentes, use a string nextToken retornada com o resultado.

Código de exemplo

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