Anda dapat menambahkan watermark yang terlihat—seperti logo perusahaan atau logo stasiun TV—ke video Anda guna meningkatkan visibilitas merek, melindungi hak cipta, dan memperkuat pengenalan produk. ApsaraVideo Media Processing (MPS) mendukung image watermarks, animated watermarks, dan text watermarks. Topik ini menyediakan contoh kode yang menunjukkan cara menambahkan watermark menggunakan MPS SDK untuk PHP.
Contoh kode
<?php
require_once './aliyun-php-sdk-core/Config.php';
use Mts\Request\V20140618 as Mts;
function initMtsClient($accessKeyId, $accessKeySecret) {
$regionId = 'cn-shanghai'; // Wilayah tempat MPS diaktifkan.
$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*****'; # ID pipeline. Anda dapat memperolehnya dari Konsol MPS.
$templateId = "S00000*01-100020"; # ID template transkoding. Anda dapat memperolehnya dari Konsol MPS.
$ossLocation = 'oss-cn-shanghai';
$bucket = '<bucket name>';
$ossInputObject = 'input.mp4';
$ossOutputObject = 'output.mp4';
# ID template watermark. Anda dapat memperolehnya dari Konsol MPS. Ini hanya berlaku untuk image watermark dan animated watermark.
$watermarkTemplateId = '0ba6fb1ab7c5271a2e1293*****';
$imageWatermarkObject = 'logo.png';
$videoWatermarkObject = 'logo.mov';
$request = new Mts\SubmitJobsRequest();
# Parameter input
$input = array('Location' => $ossLocation,
'Bucket' => $bucket,
'Object' => urlencode($ossInputObject));
# Parameter output
$output = array('OutputObject' => urlencode($ossOutputObject));
$output['TemplateId'] = $templateId;
# Image watermark
$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
);
# Text watermark
$textConfig = array(
# Nilai 'Content' harus dikodekan dalam Base64.
'Content' => '5rWL6K+V5paH5a2X5rC05Y2w',
'FontName' => 'SimSun',
'FontSize' => 16,
'FontColor' => 'Red',
'FontAlpha' => 0.5,
'Top' => 10,
'Left' => 10
);
$textWatermark = array(
'Type' => 'Text',
'TextWaterMark' => $textConfig
);
# Animated watermark
$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
);
# Array watermark. Anda dapat menambahkan hingga empat watermark.
$watermarks = array($imageWatermark, $textWatermark, $videoWatermark);
$output['WaterMarks'] = $watermarks;
$outputs = array($output);
# Parameter permintaan
$request->setInput(json_encode($input));
$request->setOutputs(json_encode($outputs));
$request->setOutputBucket($bucket);
$request->setOutputLocation($ossLocation);
$request->setPipelineId($pipelineId);
return $client->getAcsResponse($request);
}