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 für 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.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 für 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 für 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 für 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 für 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
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";
}