全部产品
Search
文档中心

ApsaraVideo Media Processing:Tambahkan watermark

更新时间:Jul 06, 2025

Anda dapat menambahkan watermark terlihat, seperti logo perusahaan atau logo stasiun TV, ke video Anda untuk meningkatkan visibilitas merek, melindungi hak cipta, dan meningkatkan pengenalan produk. ApsaraVideo Media Processing (MPS) mendukung image watermarks, animated watermarks, dan text watermarks. Anda dapat menambahkan watermark sesuai dengan kebutuhan Anda. Topik ini menyediakan contoh kode untuk menggunakan MPS SDK untuk PHP dalam menambahkan watermark.

Contoh kode

<?php
require_once './aliyun-php-sdk-core/Config.php'; 
use Mts\Request\V20140618 as Mts;

function initMtsClient($accessKeyId, $accessKeySecret) {
    $regionId = 'cn-shanghai';  // ID wilayah tempat layanan MPS Anda diterapkan.
    $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 antrian MPS. Anda dapat masuk ke konsol MPS untuk melihat ID tersebut.
    $templateId = "S00000001-100020"; # ID template transkoding. Anda dapat masuk ke konsol MPS untuk melihat ID tersebut.
    $ossLocation = 'oss-cn-shanghai';
    $bucket = '<nama bucket>';
    $ossInputObject = 'input.mp4';
    $ossOutputObject = 'output.mp4';
    # ID template watermark. Anda dapat melihat ID template di konsol MPS. Template watermark hanya didukung untuk image watermark dan animated image watermark.
    $watermarkTemplateId = '0ba6fb1ab7c5271a2e1293*****';
    $imageWatermarkObject = 'logo.png';
    $videoWatermarkObject = 'logo.mov';
    $request = new Mts\SubmitJobsRequest();
    # Input pekerjaan.
    $input = array('Location' => $ossLocation,
               'Bucket' => $bucket,
               'Object' => urlencode($ossInputObject));

    # Output pekerjaan.
    $output = array('OutputObject' => urlencode($ossOutputObject));
    $output['TemplateId'] = $templateId;
    # Konfigurasi watermark gambar.
    $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
                    );
    # Konfigurasi watermark teks.
    $textConfig = array(
                # Konten watermark teks, yang harus dienkripsi Base64.
                'Content' => '5rWL6K+V5paH5a2X5rC05Y2w',
                'FontName' => 'SimSun',
                'FontSize' => 16,
                'FontColor' => 'Red',
                'FontAlpha' => 0.5,
                'Top' => 10,
                'Left' => 10
                );
    $textWatermark = array(
                    'Type' => 'Text',
                    'TextWaterMark' => $textWatermark
                    );
    # Konfigurasi watermark gambar animasi.
    $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. Maksimal empat watermark didukung.
    $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);
}

Referensi