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 Python dalam menambahkan watermark.
Contoh kode
import os
import json
from urllib.parse import quote
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkcore.auth.credentials import AccessKeyCredential
from aliyunsdkmts.request.v20140618.SubmitJobsRequest import SubmitJobsRequest
# Mendapatkan ID AccessKey dan rahasia AccessKey dari variabel lingkungan.
credentials = AccessKeyCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'])
# Parameter region_id menentukan ID wilayah tempat layanan MPS Anda diterapkan. Untuk informasi tentang wilayah yang didukung, kunjungi https://www.alibabacloud.com/help/zh/apsaravideo-for-media-processing/latest/service-regions.
client = AcsClient(region_id = 'cn-shanghai', credential = credentials)
mps_region_id = 'cn-shanghai'
pipeline_id = '9bad1a2e3c2c4df9c6****'
# ID template watermark. Anda dapat membuat template watermark di konsol MPS. Template watermark hanya didukung untuk watermark gambar.
watermark_template_id = '9bad1a2e3c2c4df9c6****'
template_id = 'S00000001-200030'
oss_location = 'oss-cn-shanghai'
oss_bucket = '<nama bucket Anda>'
oss_input_object = 'input.mp4'
oss_output_object = 'output.mp4'
image_watermark_object = 'logo.png'
video_watermark_object = 'logo.mov'
request = SubmitJobsRequest()
request.set_accept_format('json')
# Masukan pekerjaan.
job_input = {'Location': oss_location,
'Bucket': oss_bucket,
'Object': quote(oss_input_object) }
request.set_Input(json.dumps(job_input))
# Keluaran pekerjaan.
output = {'OutputObject': quote(oss_output_object)}
output['TemplateId'] = template_id
## Konfigurasi watermark gambar.
image_watermark_input = {'Location': oss_location,
'Bucket': oss_bucket,
'Object': quote(image_watermark_object) }
image_watermark = {
'WaterMarkTemplateId': watermark_template_id,
'Type': 'Image',
'InputFile': image_watermark_input,
'ReferPos': 'TopRight',
'Width': 0.05,
'Dx': 0,
'Dy': 0
}
## Konfigurasi watermark teks.
text_config = {
# Konten watermark teks, yang harus di-enkode Base64.
'Content': '5rWL6K+V5paH5a2X5rC05Y2w',
'FontName': 'SimSun',
'FontSize': 16,
'FontColor': 'Red',
'FontAlpha': 0.5,
'Top': 10,
'Left': 10
}
text_watermark = {
'WaterMarkTemplateId': watermark_template_id,
'Type': 'Text',
'TextWaterMark': text_config
}
## Konfigurasi watermark gambar animasi.
video_watermark_input = {'Location': oss_location,
'Bucket': oss_bucket,
'Object': quote(video_watermark_object) }
video_watermark = {
'WaterMarkTemplateId': watermark_template_id,
'Type': 'Image',
'InputFile': video_watermark_input,
'ReferPos': 'BottomLeft',
'Height': 240,
'Dx': 0,
'Dy': 0
}
# Output->Watermarks
watermarks = [image_watermark, text_watermark, video_watermark]
output['WaterMarks'] = watermarks
# Tanggapan terhadap permintaan.
outputs = [output]
request.set_Outputs(json.dumps(outputs))
request.set_OutputBucket(oss_bucket)
request.set_OutputLocation(oss_location)
request.set_PipelineId(pipeline_id)
response = client.do_action_with_exception(request)
# Menampilkan tanggapan.
print(str(response, encoding='utf-8'))