Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
AWS Elemental MediaConvert è un servizio di transcodifica video basato su file con funzionalità di livello broadcast. Puoi usarlo per creare risorse per la trasmissione e la distribuzione video-on-demand (VOD) su Internet. Per ulteriori informazioni, consulta la Guida per l'utente AWS Elemental MediaConvert.
L'API PHP per AWS Elemental MediaConvert è esposta tramite la classe AWS.MediaConvert
client. Per ulteriori informazioni, consulta il riferimento Class: AWS.MediaConvert
all'API.
Crea e gestisci lavori di transcodifica in AWS Elemental MediaConvert
In questo esempio, si utilizza la AWS SDK per PHP versione 3 per chiamare AWS Elemental MediaConvert e creare un processo di transcodifica. Prima di iniziare, devi caricare il video di input nel bucket Amazon S3 che hai fornito per lo storage di input. Per un elenco dei codec e contenitori di input video supportati, consulta Codecs e contenitori di input supportati nella Guida per l'utente.AWS Elemental MediaConvert
Gli esempi seguenti mostrano come:
-
Crea lavori di transcodifica in. AWS Elemental MediaConvertCreateJob.
-
Annulla un processo di transcodifica dalla AWS Elemental MediaConvert coda. CancelJob
-
Recupera il codice JSON per un processo di transcodifica completato. GetJob
-
Recupera un array JSON per un massimo di 20 dei lavori creati più di recente. ListJobs
Tutto il codice di esempio per il AWS SDK per PHP è disponibile qui GitHub
Credenziali
Prima di eseguire il codice di esempio, configurate AWS le vostre credenziali, come descritto inCredenziali. Quindi importate il file AWS SDK per PHP, come descritto inUtilizzo di base.
Per accedere al MediaConvert client, crea un ruolo IAM che dia AWS Elemental MediaConvert accesso ai tuoi file di input e ai bucket Amazon S3 in cui sono archiviati i file di output. Per i dettagli, consulta Configurare le autorizzazioni IAM nella Guida per l'AWS Elemental MediaConvert utente.
Crea un cliente
Configuralo AWS SDK per PHP creando un MediaConvert client, con la regione per il tuo codice. In questo esempio, la regione è impostata su us-west-2.
Importazioni
require 'vendor/autoload.php';
use Aws\Exception\AwsException;
use Aws\MediaConvert\MediaConvertClient;
Codice di esempio
$mediaConvertClient = new MediaConvertClient([
'version' => '2017-08-29',
'region' => 'us-east-2',
'profile' => 'default'
]);
Definizione di un semplice processo di transcodifica
Crea il file JSON che definisce i parametri del processo di transcodifica.
Questi parametri sono dettagliati. È possibile utilizzare la AWS Elemental MediaConvert console
Codice di esempio
$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"
]
];
Crea un processo.
Dopo aver creato il JSON dei parametri del processo, chiama il metodo createJob invocando un AWS.MediaConvert service object
e trasferendo i parametri. L'ID del processo creato viene restituito nei dati della risposta.
Codice di esempio
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";
}
Recupera un lavoro
Con il JobID restituito quando viene chiamato createjob, è possibile ottenere descrizioni dettagliate dei processi recenti in formato JSON.
Codice di esempio
$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";
}
Annullamento di un processo
Con il JobID restituito quando viene chiamato createjob, è possibile annullare un processo mentre è ancora in coda. Non è possibile annullare i processi che hanno già avviato la transcodifica.
Codice di esempio
$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";
}
Elenco dei lavori di transcodifica recenti
Crea il JSON dei parametri, inclusi i valori per specificare se ordinare l'elenco in ordine CRESCENTE o DECRESCENTE, l'ARN della coda dei processi da controllare e lo stato dei processi da includere. Vengono restituiti fino a 20 processi. Per recuperare i successivi 20 processi più recenti, utilizza la stringa nextToken restituita con il risultato.
Codice di esempio
$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";
}