AWS Elemental MediaConvert contoh menggunakan AWS SDK for PHP Versi 3 - AWS SDK for PHP

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

AWS Elemental MediaConvert contoh menggunakan AWS SDK for PHP Versi 3

AWS Elemental MediaConvert adalah layanan transcoding video berbasis file dengan fitur tingkat siaran. Anda dapat menggunakannya untuk membuat aset untuk siaran dan untuk pengiriman video-on-demand (VOD) di internet. Untuk informasi selengkapnya, silakan lihat Panduan Pengguna AWS Elemental MediaConvert.

PHP API untuk AWS Elemental MediaConvert diekspos melalui kelas AWS.MediaConvertklien. Untuk informasi selengkapnya, lihat Class: AWS.MediaConvertdi referensi API.

Membuat dan mengelola pekerjaan transcoding di AWS Elemental MediaConvert

Dalam contoh ini, Anda menggunakan AWS SDK for PHP Versi 3 untuk memanggil AWS Elemental MediaConvert dan membuat pekerjaan transcoding. Sebelum memulai, Anda perlu mengunggah video input ke bucket Amazon S3 yang Anda sediakan untuk penyimpanan input. Untuk daftar codec dan container video input yang didukung, lihat Codec dan Container Input yang Didukung di Panduan Pengguna.AWS Elemental MediaConvert

Contoh berikut menunjukkan cara:

  • Buat pekerjaan transcoding di AWS Elemental MediaConvert. CreateJob.

  • Batalkan pekerjaan transcoding dari AWS Elemental MediaConvert antrian. CancelJob

  • Ambil JSON untuk pekerjaan transcoding yang selesai. GetJob

  • Ambil array JSON hingga 20 pekerjaan yang paling baru dibuat. ListJobs

Semua kode contoh untuk AWS SDK for PHP tersedia di sini GitHub.

Kredensial

Sebelum menjalankan kode contoh, konfigurasikan AWS kredensil Anda, seperti yang dijelaskan dalam. Kredensial Kemudian impor AWS SDK for PHP, seperti yang dijelaskan dalamPenggunaan dasar.

Untuk mengakses MediaConvert klien, buat peran IAM yang memberikan AWS Elemental MediaConvert akses ke file input Anda dan bucket Amazon S3 tempat file output Anda disimpan. Untuk detailnya, lihat Mengatur Izin IAM di AWS Elemental MediaConvert Panduan Pengguna.

Buat klien

Konfigurasikan AWS SDK for PHP dengan membuat MediaConvert klien, dengan wilayah untuk kode Anda. Dalam contoh ini, wilayah diatur ke us-west-2.

Impor

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

Kode Sampel

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

Mendefinisikan pekerjaan transcoding sederhana

Buat JSON yang mendefinisikan parameter pekerjaan transcode.

Parameter ini dirinci. Anda dapat menggunakan AWS Elemental MediaConvert konsol untuk menghasilkan parameter pekerjaan JSON dengan memilih pengaturan pekerjaan di konsol, lalu memilih Tampilkan pekerjaan JSON di bagian bawah bagian Job. Contoh ini menunjukkan JSON untuk pekerjaan sederhana.

Kode Sampel

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

Buat pekerjaan

Setelah membuat parameter pekerjaan JSON, panggil metode createJob dengan menjalankanAWS.MediaConvert service object, dan meneruskan parameter. ID pekerjaan yang dibuat dikembalikan dalam data respons.

Kode Sampel

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

Ambil pekerjaan

Dengan JoBid yang dikembalikan saat Anda menelepon createjob, Anda bisa mendapatkan deskripsi rinci tentang pekerjaan terbaru dalam format JSON.

Kode Sampel

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

Membatalkan tugas

Dengan JoBid dikembalikan saat Anda memanggil createjob, Anda dapat membatalkan pekerjaan saat masih dalam antrian. Anda tidak dapat membatalkan pekerjaan yang sudah mulai melakukan transcoding.

Kode Sampel

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

Daftar pekerjaan transcoding terbaru

Buat parameter JSON, termasuk nilai untuk menentukan apakah akan mengurutkan daftar dalam urutan ASCENDING, atau DESCENDING, ARN antrian pekerjaan yang akan diperiksa, dan status pekerjaan yang akan disertakan. Ini mengembalikan hingga 20 Pekerjaan. Untuk mengambil 20 pekerjaan terbaru berikutnya, gunakan string NextToken yang dikembalikan dengan hasil.

Kode Sampel

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