ブランドの認知度を高め、著作権を保護し、製品の認知度を高めるために、会社のロゴやテレビ局のロゴなどの可視透かしをビデオに追加できます。ApsaraVideo Media Processing(MPS)は、[画像透かし]、[アニメーション透かし]、および [テキスト透かし] をサポートしています。要件に基づいて透かしを追加できます。このトピックでは、PHP 用 MPS SDK を使用して透かしを追加するためのサンプルコードを提供します。
サンプルコード
<?php
require_once './aliyun-php-sdk-core/Config.php';
use Mts\Request\V20140618 as Mts;
function initMtsClient($accessKeyId, $accessKeySecret) {
$regionId = 'cn-shanghai'; // デプロイされている MPS サービスのリージョン ID。
$profile = DefaultProfile::getProfile($regionId, $accessKeyId, $accessKeySecret);
return new DefaultAcsClient($profile);
}
try {
$client = initMtsClient(getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'));
$response = submitClipJob($client);
print_r($response);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
function submitClipJob($client) {
$pipelineId = 'd7cedd984be7dd63395c*****'; # MPS キューの ID。MPS コンソールにログインして ID を表示できます。
$templateId = "S00000001-100020"; # トランスコーディングテンプレートの ID。MPS コンソールにログインして ID を表示できます。
$ossLocation = 'oss-cn-shanghai';
$bucket = '<bucket name>';
$ossInputObject = 'input.mp4';
$ossOutputObject = 'output.mp4';
# 透かしテンプレートの ID。テンプレート ID は MPS コンソールで確認できます。透かしテンプレートは、画像透かしとアニメーション画像透かしのみに対応しています。
$watermarkTemplateId = '0ba6fb1ab7c5271a2e1293*****';
$imageWatermarkObject = 'logo.png';
$videoWatermarkObject = 'logo.mov';
$request = new Mts\SubmitJobsRequest();
# ジョブ入力。
$input = array('Location' => $ossLocation,
'Bucket' => $bucket,
'Object' => urlencode($ossInputObject));
# ジョブ出力。
$output = array('OutputObject' => urlencode($ossOutputObject));
$output['TemplateId'] = $templateId;
# 画像透かしの構成。
$imageWatermarkInput = array(
'Location' => $ossLocation,
'Bucket' => $bucket,
'Object' => urlencode($imageWatermarkObject)
);
$imageWatermark = array(
'WaterMarkTemplateId' => $watermarkTemplateId,
'Type' => 'Image',
'InputFile' => $imageWatermarkInput,
'ReferPos' => 'TopRight',
'Width' => 0.05,
'Dx' => 0,
'Dy'=> 0
);
# テキスト透かしの構成。
$textConfig = array(
# テキスト透かしの内容。Base64 エンコードされている必要があります。
'Content' => '5rWL6K+V5paH5a2X5rC05Y2w',
'FontName' => 'SimSun',
'FontSize' => 16,
'FontColor' => 'Red',
'FontAlpha' => 0.5,
'Top' => 10,
'Left' => 10
);
$textWatermark = array(
'Type' => 'Text',
'TextWaterMark' => $textWatermark
);
# アニメーション画像透かしの構成。
$videoWatermarkInput = array (
'Location' => $ossLocation,
'Bucket' => $bucket,
'Object' => urlencode($videoWatermarkObject)
);
$videoWatermark = array(
'WaterMarkTemplateId' => $watermarkTemplateId,
'Type' => 'Image',
'InputFile'=> $videoWatermarkInput,
'ReferPos' => 'BottomLeft',
'Height' => 240,
'Dx' => 0,
'Dy' => 0
);
# 透かし配列。最大 4 つの透かしがサポートされています。
$watermarks = array($imageWatermark, $textWatermark, $videoWatermark);
$output['WaterMarks'] = $watermarks;
$outputs = array($output);
# リクエストパラメータ。
$request->setInput(json_encode($input));
$request->setOUtputs(json_encode($outputs));
$request->setOutputBucket($bucket);
$request->setOutputLocation($ossLocation);
$request->setPipelineId($pipelineId);
return $client->getAcsResponse($request);
}