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 para video-on-demand (VOD) entrega pela Internet. Para obter mais informações, consulte o Guia do usuário do AWS Elemental MediaConvert.

O PHP API formulário AWS Elemental MediaConvert é exposto por meio da classe AWS.MediaConvertcliente. Para obter mais informações, consulte Class: AWS.MediaConvertna API referência.

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 JSON matriz 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 IAM função 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 IAM permissões no Guia AWS Elemental MediaConvert do usuário.

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 do trabalho de transcodificação.

Esses parâmetros são detalhados. Você pode usar o AWS Elemental MediaConvert console para gerar os parâmetros do JSON trabalho escolhendo suas configurações de trabalho no console e, em seguida, escolhendo Mostrar trabalho JSON na parte inferior da seção Trabalho. Este exemplo mostra o JSON para um trabalho 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 os parâmetros do trabalhoJSON, chame o createJob método 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 você ligou para createjob, você pode obter descrições detalhadas dos trabalhos recentes em 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 os parâmetrosJSON, incluindo valores para especificar se a lista deve ser ASCENDING classificada ou DESCENDING ordenada pela fila ARN de trabalhos a ser verificada e o status dos trabalhos a serem incluídos. Isso retornará até 20 trabalhos. Para recuperar os próximos 20 trabalhos mais recentes, use a nextToken string 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"; }