

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

# AWS Elemental MediaConvert AWS SDK for PHP バージョン 3 を使用した の例
<a name="emc-examples"></a>

AWS Elemental MediaConvert は、ブロードキャストグレード機能を備えたファイルベースのビデオトランスコーディングサービスです。このサービスでは、インターネット全体に配信するブロードキャストおよびビデオオンデマンド (VOD) 用のアセットを作成できます。詳細については、「[AWS Elemental MediaConvert ユーザーガイド](https://docs.aws.amazon.com/mediaconvert/latest/ug/)」を参照してください。

の PHP API AWS Elemental MediaConvert は、 *`AWS.MediaConvert`*クライアントクラスを通じて公開されます。詳細については、API リファレンスの[https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-mediaconvert-2017-08-29.html](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-mediaconvert-2017-08-29.html)を参照してください。

## でのトランスコードジョブの作成と管理 AWS Elemental MediaConvert
<a name="emc-examples-jobs"></a>

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

以下の例では、次の方法を示しています。
+ でトランスコードジョブを作成します AWS Elemental MediaConvert。[CreateJob](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-mediaconvert-2017-08-29.html#createjob)。
+  AWS Elemental MediaConvert キューからトランスコードジョブをキャンセルします。[CancelJob](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-mediaconvert-2017-08-29.html#canceljob) 
+ 完了したコード変換ジョブの JSON を取得します。[GetJob](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-mediaconvert-2017-08-29.html#getjob) 
+ 最近作成されたジョブの最大 20 個の JSON 配列を取得します。[ListJobs](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-mediaconvert-2017-08-29.html#listjobs) 

のすべてのサンプルコード AWS SDK for PHP は[GitHub で入手できます](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code)。

### 認証情報
<a name="examplecredentials"></a>

サンプルコードを実行する前に、「」の説明に従って AWS 認証情報を設定します[AWS SDK for PHP バージョン 3 AWS を使用した での認証](credentials.md)。次に AWS SDK for PHP、「」の説明に従って をインポートします[AWS SDK for PHP バージョン 3 のインストール](getting-started_installation.md)。

MediaConvert クライアントにアクセスするには、入力ファイルと出力ファイルが保存されている Amazon S3 バケット AWS Elemental MediaConvert へのアクセスを許可する IAM ロールを作成します。詳細については、「[AWS Elemental MediaConvert ユーザーガイド](https://docs.aws.amazon.com/mediaconvert/latest/ug/)」の「[IAM アクセス許可の設定](https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html)」を参照してください。

### クライアントの作成
<a name="create-a-client"></a>

コードのリージョンで 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'
]);
```

### シンプルなコード変換ジョブの定義
<a name="defining-a-simple-transcoding-job"></a>

コード変換ジョブのパラメータを定義する JSON を作成します。

これらは詳細パラメータです。[AWS Elemental MediaConvert コンソール](https://console.aws.amazon.com/mediaconvert/home)を使用して 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"
    ]
];
```

### ジョブの作成
<a name="create-a-job"></a>

ジョブパラメータの 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";
}
```

### ジョブの取得
<a name="retrieve-a-job"></a>

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

### ジョブのキャンセル
<a name="cancel-a-job"></a>

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

### 最新のコード変換ジョブの一覧表示
<a name="listing-recent-transcoding-jobs"></a>

パラメータの 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";
}
```