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 ihn verwenden, um Inhalte für die Übertragung und video-on-demand () VOD die Übertragung über das Internet zu erstellen. Weitere Informationen finden Sie im AWS Elemental MediaConvert -Benutzerhandbuch.
Das PHP API für AWS Elemental MediaConvert wird über die AWS.MediaConvert
Client-Klasse verfügbar gemacht. Weitere Informationen finden Sie Class: AWS.MediaConvert
in 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 das JSON für einen abgeschlossenen Transcodierungsauftrag ab. GetJob
-
Ruft 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 IAMBerechtigungen einrichten 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 denJSON, der die Parameter des Transcodierungsauftrags definiert.
Diese Parameter sind detailliert. Sie können die AWS Elemental MediaConvert Konsole
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 Jobparameter erstellt habenJSON, rufen Sie die createJob Methode aufAWS.MediaConvert service object
, indem Sie an 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 JobID, die beim Aufrufen von createjob zurückgegeben wurde, können Sie detaillierte Beschreibungen der letzten Jobs im JSON Format abrufen.
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 ParameterJSON, einschließlich Werte, um anzugebenASCENDING, ob die Liste nach der ARN zu DESCENDING prüfenden Auftragswarteschlange und dem Status der einzuschließenden Jobs sortiert werden soll. Es werden bis zu 20 Aufträge zurückgegeben. Um die 20 nächsthöheren Jobs abzurufen, verwenden Sie die mit dem Ergebnis zurückgegebene nextToken Zeichenfolge.
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";
}