AWS Elemental MediaConvertAWS SDK for PHP バージョン 3 を使用した例 - AWS SDK for PHP

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Elemental MediaConvertAWS SDK for PHP バージョン 3 を使用した例

AWS Elemental MediaConvert は、ブロードキャストグレードの機能を持つファイルベースのビデオトランスコーディングサービスです。これを使用して、インターネットを介したブロードキャストおよび (VOD) 配信用の video-on-demandアセットを作成できます。詳細については、AWS Elemental MediaConvert ユーザーガイドをご参照ください。

PHP API for AWS Elemental MediaConvert はAWS.MediaConvertクライアントクラスを通じて公開されます。詳細については、 APIリファレンスClass: AWS.MediaConvertの「」を参照してください。

でトランスコーディングジョブを作成および管理します。 AWS Elemental MediaConvert

この例では、 AWS SDK for PHP バージョン 3 を使用してトランスコーディングジョブを呼び出して AWS Elemental MediaConvert 作成します。開始する前に、入力ストレージとしてプロビジョニングした Amazon S3 バケットに対して、入力動画をアップロードする必要があります。サポートされている入力動画のコーデックとコンテナの一覧については、「AWS Elemental MediaConvert ユーザーガイド」の「サポートされる入力コーデックおよびコンテナ」を参照してください。

以下の例では、次の方法を示しています。

  • でトランスコードジョブを作成します AWS Elemental MediaConvert。CreateJob

  • AWS Elemental MediaConvert キューからトランスコードジョブをキャンセルします。 CancelJob

  • 完了したトランスコーディングジョブJSONの を取得します。 GetJob

  • 最後に作成されたジョブの最大 20 個のJSON配列を取得します。 ListJobs

のすべてのサンプルコード AWS SDK for PHP は、 で GitHub入手できます。

認証情報

サンプルコードを実行する前に、「」の説明に従って AWS 認証情報を設定します認証情報。次に AWS SDK for PHP、「」の説明に従って をインポートします基本的な使用法

MediaConvert クライアントにアクセスするには、入力ファイルと出力ファイルが保存されている Amazon S3 バケット AWS Elemental MediaConvert へのアクセスを許可するIAMロールを作成します。詳細については、AWS Elemental MediaConvert 「 ユーザーガイド」のIAM「アクセス許可の設定」を参照してください。

クライアントの作成

コードのリージョンを使用して MediaConvert クライアント AWS SDK for PHP を作成して を設定します。次の例では、リージョンを us-west-2 に設定しています。

インポート

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

サンプルコード

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

シンプルなコード変換ジョブの定義

トランスコードジョブパラメータJSONを定義する を作成します。

これらは詳細パラメータです。AWS Elemental MediaConvert コンソールを使用してJSONジョブパラメータを生成するには、コンソールでジョブ設定を選択し、ジョブセクションの下部でジョブを表示JSONを選択します。この例では、シンプルなジョブJSONの を示しています。

サンプルコード

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

ジョブの作成

ジョブパラメータ を作成したらJSON、 を呼び出して createJob メソッドを呼び出しAWS.MediaConvert service object、パラメータを渡します。作成されたジョブの ID がレスポンスのデータで返されます。

サンプルコード

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

ジョブの取得

createjob を呼び出すときに返された JobID を使用すると、最近のジョブの詳細な説明を JSON 形式で取得できます。

サンプルコード

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

ジョブのキャンセル

createjob を呼び出して返された JobID を使用して、キュー内にあるジョブをキャンセルできます。コード変換を既に開始しているジョブをキャンセルすることはできません。

サンプルコード

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

最新のコード変換ジョブの一覧表示

リストをソートするかどうかを指定する値JSON、チェックするジョブキューARNの DESCENDING ASCENDING、含めるジョブのステータスなど、パラメータ を作成します。最大 20 個のジョブが返されます。次に最新の 20 個のジョブを取得するには、結果とともに返された nextToken 文字列を使用します。

サンプルコード

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