Creación y administración de trabajos de transcodificación en AWS Elemental MediaConvert conAWS SDK for PHPVersión 3 - AWS SDK for PHP

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.

Creación y administración de trabajos de transcodificación en AWS Elemental MediaConvert conAWS SDK for PHPVersión 3

En este ejemplo, va a utilizar elAWS SDK for PHPVersión 3 para llamar a AWS Elemental MediaConvert y cree un trabajo de transcodificación. Antes de comenzar, tiene que cargar el vídeo de entrada en el bucket de Amazon S3 que ha aprovisionado para el almacenamiento de entrada. Para obtener una lista de los códecs y contenedores compatibles con vídeo de entrada, consulteCódecs y contenedores de entrada compatiblesen laAWS Elemental MediaConvert Guía del usuario de.

Los siguientes ejemplos muestran cómo:

  • Crear trabajos de transcodificación en AWS Elemental MediaConvert. CreateJob.

  • Cancelar un trabajo de transcodificación de AWS Elemental MediaConvert queue. CancelJob

  • Recuperar el JSON de un trabajo de transcodificación finalizado. GetJob

  • Recuperar una matriz JSON con un máximo de 20 de los últimos trabajos creados. ListJobs

Todo el código de ejemplo de AWS SDK for PHP está disponible aquí en GitHub.

Credentials

Antes de ejecutar el código de ejemplo, configure suAWScredenciales, tal y como se describe enConfiguración de las credenciales de . A continuación, importeAWS SDK for PHP, tal y como se describe enUso básico.

Para tener acceso a MediaConvert cliente de, cree un rol de IAM que conceda a AWS Elemental MediaConvert acceso a los archivos de entrada y a los buckets de Amazon S3 en los que se almacenan los archivos de salida. Para obtener más información, consulte .configurar los permisos de IAMen laAWS Elemental MediaConvert Guía del usuario de.

Creación de un cliente

Configuración delAWS SDK for PHPmediante la creación de un MediaConvert cliente de, con la región para el código. En este ejemplo, la región se establece en us-west-2. Dado que AWS Elemental MediaConvert utiliza puntos de enlace personalizados para cada cuenta, configure elAWS.MediaConvert client classpara utilizar el punto de enlace específico de su cuenta. Para ello, establezca el parámetro de punto de enlace en el punto de enlace específico de su cuenta.

Importaciones

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

Código de muestra

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

Definición de un trabajo de transcodificación sencillo

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

Estos parámetros son detallados. Puede utilizar elAWS Elemental MediaConvert consolapara generar los parámetros del trabajo JSON eligiendo la configuración del trabajo en la consola y, a continuación, eligiendoMostrar trabajo JSONen la parte inferior delTrabajosección. 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" ] ];

Crear una tarea

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

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', 'endpoint' => 'ACCOUNT_ENDPOINT' ]); 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

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', 'endpoint' => 'ACCOUNT_ENDPOINT' ]); 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

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', 'endpoint' => 'ACCOUNT_ENDPOINT' ]); 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"; }