AWS Elemental MediaConvert exemples d'utilisation de la AWS SDK for PHP version 3 - AWS SDK for PHP

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS Elemental MediaConvert exemples d'utilisation de la AWS SDK for PHP version 3

AWS Elemental MediaConvert est un service de transcodage vidéo basé sur des fichiers doté de fonctionnalités adaptées à la diffusion. Vous pouvez l'utiliser pour créer des ressources destinées à la diffusion et à la diffusion video-on-demand (VOD) sur Internet. Pour plus d’informations, consultez le AWS Elemental MediaConvert Guide de l’utilisateur .

Le formulaire PHP API AWS Elemental MediaConvert est exposé par le biais de la classe AWS.MediaConvertclient. Pour plus d'informations, voir Class: AWS.MediaConvertla API référence.

Créez et gérez des tâches de transcodage dans AWS Elemental MediaConvert

Dans cet exemple, vous utilisez la AWS SDK for PHP version 3 pour appeler AWS Elemental MediaConvert et créer une tâche de transcodage. Avant de commencer, vous devez télécharger la vidéo d'entrée dans le compartiment Amazon S3 que vous avez configuré pour le stockage d'entrée. Pour obtenir la liste des codecs et conteneurs vidéo d'entrée pris en charge, consultez la section Codecs et conteneurs d'entrée pris en charge dans le guide de l'utilisateur.AWS Elemental MediaConvert

Les exemples suivants montrent comment :

  • Créez des tâches de transcodage dans. AWS Elemental MediaConvertCreateJob.

  • Annulez une tâche de transcodage depuis la AWS Elemental MediaConvert file d'attente. CancelJob

  • Récupérez le JSON pour une tâche de transcodage terminée. GetJob

  • Récupérez un JSON tableau contenant jusqu'à 20 des tâches les plus récemment créées. ListJobs

Tous les exemples de code pour le AWS SDK for PHP sont disponibles ici GitHub.

Informations d’identification

Avant d'exécuter l'exemple de code, configurez vos AWS informations d'identification, comme décrit dansInformations d'identification. Importez ensuite le AWS SDK for PHP, comme décrit dansUtilisation de base.

Pour accéder au MediaConvert client, créez un IAM rôle qui donne AWS Elemental MediaConvert accès à vos fichiers d'entrée et aux compartiments Amazon S3 dans lesquels vos fichiers de sortie sont stockés. Pour plus de détails, consultez la section Configurer IAM les autorisations dans le guide de AWS Elemental MediaConvert l'utilisateur.

Création d'un client

Configurez le AWS SDK for PHP en créant un MediaConvert client, avec la région de votre code. Dans cet exemple, la région est définie sur us-west-2.

Importations

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

Exemple de code

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

Définition d'une tâche de transcodage simple

Créez le JSON qui définit les paramètres de la tâche de transcodage.

Ces paramètres sont détaillés. Vous pouvez utiliser la AWS Elemental MediaConvert console pour générer les paramètres de la JSON tâche en choisissant les paramètres de la tâche dans la console, puis en choisissant Afficher la tâche JSON en bas de la section Job. Cet exemple montre le JSON pour une tâche simple.

Exemple de code

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

Créez une tâche

Après avoir créé les paramètres de la tâcheJSON, appelez la createJob méthode en invoquant an AWS.MediaConvert service object et en transmettant les paramètres. L'ID de la tâche créée est renvoyé dans les données de réponse.

Exemple de code

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

Récupérez une offre d'emploi

Avec le JoBid renvoyé lorsque vous avez appelé createjob, vous pouvez obtenir des descriptions détaillées des tâches récentes au format. JSON

Exemple de code

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

Annuler une tâche

Avec le JobID renvoyé lorsque vous avez appelé createjob, vous pouvez annuler une tâche pendant qu'elle est encore dans la file d'attente. Vous ne pouvez pas annuler des tâches qui ont déjà commencé le transcodage.

Exemple de code

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

Liste des travaux de transcodage récents

Créez les paramètresJSON, y compris les valeurs permettant de spécifier s'il faut trier la liste ou l'DESCENDINGordre ARN de la file d'attente des tâches à vérifier et le statut des tâches à inclure. ASCENDING Cela renvoie jusqu'à 20 tâches. Pour récupérer les 20 tâches les plus récentes suivantes, utilisez la nextToken chaîne renvoyée avec le résultat.

Exemple de code

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