All Products
Search
Document Center

ApsaraVideo Media Processing:Set opening and ending parts during video merging

Last Updated:Aug 28, 2023

This topic provides the sample code for using ApsaraVideo Media Processing (MPS) SDK for Python to set the opening and ending parts during video merging.

Sample code

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

# Obtain an AccessKey ID and an AccessKey secret from environment variables.
credentials = AccessKeyCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'])
# The region_id parameter specifies the ID of the region in which your MPS service is deployed. For information about supported regions, see 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')
# The job input. The input object must be URL-encoded.
job_input = {'Location': oss_location,
             'Bucket': oss_bucket,
             'Object': quote(head_object) }
request.set_Input(json.dumps(job_input))
# The job output.
output = {'OutputObject': quote(oss_output_object)}
output['TemplateId'] = template_id
# The structure of the OpeningList parameter.
opening_video = {'OpenUrl': 'http://%s.%s.aliyuncs.com/%s'%(oss_bucket, oss_location, quote(head_object)),
                 'Width': 640,
                 'Start': 2}
output['OpeningList'] = [opening_video]
# The structure of the TailSlateList parameter.
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]

# The  response to the request.
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)
# Display the response.
print(str(response, encoding='utf-8'))