翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS Elemental MediaConvertAWS SDK for PHP バージョン 3 を使用した の例
AWS Elemental MediaConvert は、ブロードキャストグレード機能を備えたファイルベースのビデオトランスコーディングサービスです。このサービスでは、インターネット全体に配信するブロードキャストおよびビデオオンデマンド (VOD) 用のアセットを作成できます。詳細については、AWS Elemental MediaConvert ユーザーガイドをご参照ください。
の PHP API 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 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 コンソール
サンプルコード
$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 を作成した後で、AWS.MediaConvert service object
を呼び出して createJob メソッドを呼び出し、パラメータを渡します。作成されたジョブの 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、および追加するジョブのステータスが含まれます。最大 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";
}