このトピックでは、ApsaraVideo Media Processing (MPS) SDK for PHPを使用してメディアファイルをトランスコードする方法について説明します。 このトピックでは、完全なサンプルコードも提供します。

トランスコードのAPI操作と操作のパラメーターの詳細については、「SubmitJobs」をご参照ください。

  1. AcsClient インスタンスの作成
    $clientProfile = DefaultProfile::getProfile (
    $mps_region_id、# MPSサービスを使用するリージョンのID。
    $access_key_id、# あなたのAccessKey ID。
    $access_key_secret# AccessKey secret。
    );
    $client = new DefaultAcsClient($clientProfile);
  2. リクエストを作成し、必要なパラメーターを設定します。
    $request = new Mts\SubmitJobsRequest();
    $request->setAcceptFormat('JSON');
  3. トランスコードパラメーターを設定します。
    • 入力
      $input = array('Location' => $oss_location,
                      'Bucket' => $oss_bucket,
                      'Object' => urlencode($oss_input_object);
      $request->setInput(json_encode($input));
    • Output
      $output = array('OutputObject' => urlencode($oss_output_object));
      • コンテナー
        $output['Container'] = array('Format' => 'mp4');
      • ビデオ
        $output['Video'] =配列 ('Codec' =>'H.264 '、
                                    'Bitrate' => 1500,
                                    'Width' => 1280,
                                    'Fps' => 25);
      • Audio
        $output['Audio'] = array('Codec' => 'AAC',
                                    'Bitrate' => 128,
                                    'Channels' => 2,
                                    'Samplerate' => 44100);
      • TemplateId
        $output['TemplateId'] = $template_id;
    • PipelineId
      $request->setPipelineId($pipeline_id);
  4. リクエストを送信し、応答または例外を処理します。
    $response = $client->getAcsResponse($request);
    print 'RequestIdは: 'です。 $response->{'RequestId'} 。 "\n";;
    if ($response->{'JobResultList'}->{'JobResult'}[0]->{'Success'}) {
    印刷 'JobIdは: 'です。
          $response->{'JobResultList'}->{'JobResult'}[0]->{'Job'}->{'JobId'} 。 "\n";
    } else {
    「SubmitJobs Failed code: 」を印刷します。
          $response->{'JobResultList'}->{'JobResult'}[0]->{'Code'} .
          ' message:' .
          $response->{'JobResultList'}->{'JobResult'}[0]->{'Message'} 。 "\n";
    }
サンプルコード
<?php
include_once 'aliyun-openapi-php-sdk/aliyun-php-sdk-core/Config.php';
Mts\Request\V20140618をMtsとして使用します。$access_key_id = 'xxx';
$access_key_secret = 'xxx';
$mps_region_id = 'cn-hangzhou';
$pipeline_id = 'xxx'; # MPSキューのID。
$template_id = 'S00000001-200010 '; # トランスコードテンプレートのID。
$oss_location = 'oss-cn-hangzhou';
$oss_bucket = 'xxx';
$oss_input_object = 'input.mp4 '; # Object Storage Service (OSS) オブジェクトである入力ファイルのパス。
$oss_output_object = 'output.mp4 '; # OSSオブジェクトである入力ファイルのパス。
# DefaultAcsClientインスタンスを作成し、インスタンスを初期化します。
$clientProfile = DefaultProfile::getProfile(
    $mps_region_id、# MPSサービスを使用するリージョンのID。
    $access_key_id、# あなたのAccessKey ID。
    $access_key_secret# AccessKey secret。
);
$client = new DefaultAcsClient($clientProfile);
# リクエストを作成し、必要なパラメーターを設定します。
$request = new Mts\SubmitJobsRequest();
$request->setAcceptFormat('JSON');
# 入力
$input = array('Location' => $oss_location,
               'Bucket' => $oss_bucket,
               'Object' => urlencode($oss_input_object);
$request->setInput(json_encode($input));
# 出力
$output = array('OutputObject' => urlencode($oss_output_object));
# コンテナ
$output['Container'] = array('Format' => 'mp4');
# ビデオ
$output['Video'] =配列 ('Codec' =>'H.264 '、
                         'Bitrate' => 1500,
                         'Width' => 1280,
                         'Fps' => 25);
# オーディオ
$output['Audio'] = array('Codec' => 'AAC' 、
                         'Bitrate' => 128,
                         'Channels' => 2,
                         'Samplerate' => 44100);
# TemplateId
$output['TemplateId'] = $template_id;
$outputs = array($output);
$request->setOUtputs(json_encode($outputs));
$request->setOutputBucket($oss_bucket);
$request->setOutputLocation($oss_location);
# PipelineId
$request->setPipelineId($pipeline_id);
# リクエストを送信し、応答または例外を処理します。
try {
    $response = $client->getAcsResponse($request);
    print 'RequestIdは: 'です。 $response->{'RequestId'} 。 "\n";;
    if ($response->{'JobResultList'}->{'JobResult'}[0]->{'Success'}) {
        print 'JobId is:' .
               $response->{'JobResultList'}->{'JobResult'}[0]->{'Job'}->{'JobId'} 。 "\n";
    } else {
        print 'SubmitJobs Failed code:' .
               $response->{'JobResultList'}->{'JobResult'}[0]->{'Code'} .
               ' message:' .
               $response->{'JobResultList'}->{'JobResult'}[0]->{'Message'} 。 "\n";
    }
} catch(ServerException $e) {
    「エラー: 」を印刷します。 $e->getErrorCode() 。 'メッセージ:'. $e->getMessage() 。 "\n";
} catch(ClientException $e) {
    「エラー: 」を印刷します。 $e->getErrorCode() 。 'メッセージ:'. $e->getMessage() 。 "\n";
}