Dalam produksi video, Anda dapat menyisipkan klip pembuka dan penutup yang berisi informasi penting ke dalam video utama menggunakan efek Picture-in-Picture (PiP). Topik ini menyediakan contoh kode yang menunjukkan cara mengatur pembuka dan penutup di ApsaraVideo Media Processing menggunakan kit pengembangan perangkat lunak (SDK) Python.
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
# Baca ID AccessKey dan Rahasia AccessKey dari variabel lingkungan.
credentials = AccessKeyCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'])
# region_id adalah ID wilayah tempat layanan dipanggil. Untuk daftar wilayah yang didukung, lihat 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 = '9bad31a2c3d1c22c4df9c6****'
template_id = 'S00000001-200030'
oss_location = 'oss-cn-shanghai'
oss_bucket = '<your bucket name>'
oss_input_object = 'input.mp4'
oss_output_object = 'output.mp4'
head_object = 'head.mp4'
tail_object = 'tail.mp4'
request = SubmitJobsRequest()
request.set_accept_format('json')
# Struktur parameter Input. Objek harus di-URL encode.
job_input = {'Location': oss_location,
'Bucket': oss_bucket,
'Object': quote(head_object) }
request.set_Input(json.dumps(job_input))
# Struktur parameter Output.
output = {'OutputObject': quote(oss_output_object)}
output['TemplateId'] = template_id
# Struktur parameter Output->OpeningList untuk klip pembuka.
opening_video = {'OpenUrl': 'http://%s.%s.aliyuncs.com/%s'%(oss_bucket, oss_location, quote(head_object)),
'Width': 640,
'Start': 2}
output['OpeningList'] = [opening_video]
# Struktur parameter Output->TailSlateList untuk klip penutup.
tailslate_video = {'TailUrl': 'http://%s.%s.aliyuncs.com/%s'%(oss_bucket, oss_location, quote(tail_object)),
'Width': 640,
'BlendDuration': 3,
'BgColor': 'Black'}
output['TailSlateList'] = [tailslate_video]
# Struktur parameter Outputs.
outputs = [output]
request.set_Outputs(json.dumps(outputs))
request.set_OutputBucket(oss_bucket)
request.set_OutputLocation(oss_location)
request.set_PipelineId(pipeline_id)
response_str = client.do_action_with_exception(request)
response = json.loads(response_str)
# Cetak output.
print(str(response, encoding='utf-8'))