AWS Elemental MediaConvert Beispiele mit der AWS SDK for PHP Version 3 - AWS SDK for PHP

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS Elemental MediaConvert Beispiele mit der AWS SDK for PHP Version 3

AWS Elemental MediaConvert ist ein dateibasierter Video-Transcodierungsdienst mit Funktionen in Rundfunkqualität. Sie können damit Inhalte für die Übertragung und für die video-on-demand (VOD-) Übertragung über das Internet erstellen. Weitere Informationen finden Sie im AWS Elemental MediaConvert -Benutzerhandbuch.

Die PHP-API für AWS Elemental MediaConvert wird über die AWS.MediaConvertClient-Klasse verfügbar gemacht. Weitere Informationen finden Sie Class: AWS.MediaConvertin der API-Referenz.

Erstellen und verwalten Sie Transcodierungsaufträge in AWS Elemental MediaConvert

In diesem Beispiel verwenden Sie AWS SDK for PHP Version 3, um einen Transcodierungsjob aufzurufen AWS Elemental MediaConvert und zu erstellen. Bevor Sie beginnen, müssen Sie das Eingabevideo in den Amazon S3 S3-Bucket hochladen, den Sie für den Eingabespeicher bereitgestellt haben. Eine Liste der unterstützten Eingabe-Videocodecs und Container finden Sie im Benutzerhandbuch unter Unterstützte Eingabecodecs und Container.AWS Elemental MediaConvert

In den nachstehenden Beispielen wird Folgendes veranschaulicht:

  • Erstellen Sie Transcodierungsaufträge in. AWS Elemental MediaConvertCreateJob.

  • Brecht einen Transcodierungsauftrag aus der AWS Elemental MediaConvert Warteschlange ab. CancelJob

  • Rufen Sie den JSON-Code für einen abgeschlossenen Transcodierungsauftrag ab. GetJob

  • Rufen Sie ein JSON-Array für bis zu 20 der zuletzt erstellten Jobs ab. ListJobs

Der gesamte Beispielcode für die AWS SDK for PHP ist hier verfügbar GitHub.

Anmeldeinformationen

Bevor Sie den Beispielcode ausführen, konfigurieren Sie Ihre AWS Anmeldeinformationen wie unter beschriebenAnmeldeinformationen. Importieren Sie dann die AWS SDK for PHP, wie unter beschriebenGrundlegende Verwendung.

Um auf den MediaConvert Client zuzugreifen, erstellen Sie eine IAM-Rolle, die AWS Elemental MediaConvert Zugriff auf Ihre Eingabedateien und die Amazon S3 S3-Buckets gewährt, in denen Ihre Ausgabedateien gespeichert sind. Einzelheiten finden Sie unter Einrichten von IAM-Berechtigungen im AWS Elemental MediaConvert Benutzerhandbuch.

Erstellen Sie einen Client

Konfigurieren Sie den, AWS SDK for PHP indem Sie einen MediaConvert Client mit der Region für Ihren Code erstellen. In diesem Beispiel ist die Region "us-west-2".

Importe

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

Beispiel-Code

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

Definition eines einfachen Transcodierungsauftrags

Erstellen Sie die JSON für die Definition der Transcodierungsauftragsparameter.

Diese Parameter sind detailliert. Sie können die AWS Elemental MediaConvert Konsole verwenden, um die JSON-Jobparameter zu generieren, indem Sie Ihre Job-Einstellungen in der Konsole auswählen und dann am Ende des Job-Abschnitts die Option Job-JSON anzeigen wählen. Dieses Beispiel enthält die JSON für einen einfachen Auftrag.

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

Erstellen eines Auftrags

Nachdem Sie die Auftragsparameter-JSON erstellt haben, rufen Sie die createJob-Methode auf, indem Sie ein AWS.MediaConvert service object aufrufen und die Parameter übergeben. Die ID des erstellten Auftrags wird in den Antwortdaten zurückgegeben.

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

Rufen Sie einen Job ab

Mit der Auftrags-ID, die von CreateJob zurückgegeben wurde, erhalten Sie eine detaillierte Beschreibung der zuletzt ausgeführten Aufträge im JSON-Format.

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

Abbrechen eines Auftrags

Mit der Auftrags-ID, die vom CreateJob-Aufruf zurückgegeben wurde, können Sie einen Auftrag in der Warteschlange abbrechen. Bereits begonnene Transcodierungsaufträge können nicht mehr abgebrochen werden.

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

Listet die letzten Transcodierungsaufträge auf

Erstellen Sie die Parameter-JSON einschließlich der Werte, um festzulegen, ob die Liste in aufsteigender oder absteigender Reihenfolge sortiert wird. Außerdem legen Sie hier den ARN der zu prüfenden Auftragswarteschlange sowie den Status der einzubeziehenden Aufträge fest. Es werden bis zu 20 Aufträge zurückgegeben. Verwenden Sie die Zeichenfolge „nextToken“ aus dem Ergebnis, um die nächsten 20 Aufträge abzurufen.

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