Penggabungan video memungkinkan Anda menggabungkan beberapa video dengan format, bitrate, dan resolusi berbeda menjadi satu video yang lebih panjang dengan format, bitrate, dan resolusi tertentu. Fungsionalitas ini biasanya digunakan untuk menambahkan bagian awal atau akhir pada video, atau untuk menggabungkan klip dari siaran langsung yang direkam. Pemotongan video memungkinkan Anda menangkap klip dari video asli dan menyimpannya sebagai video baru. Fitur ini umumnya digunakan untuk mengekstrak sorotan dari video. Topik ini memberikan contoh penggunaan operasi API yang dienkapsulasi dalam ApsaraVideo Media Processing (MPS) SDK untuk Python guna menggabungkan dan memotong file media.
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
# Dapatkan AccessKey ID dan AccessKey secret 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 = '9ba1a2b3c561c22c4df9c6****'
template_id = 'S00000001-200030'
oss_location = 'oss-cn-shanghai'
oss_bucket = '<nama bucket Anda>'
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')
# Masukan pekerjaan.
job_input = {'Location': oss_location,
'Bucket': oss_bucket,
'Object': quote(head_object) }
request.set_Input(json.dumps(job_input))
# Keluaran pekerjaan.
output = {'OutputObject': quote(oss_output_object)}
output['TemplateId'] = template_id
output['Video'] = {'Width': 1280,
'Height': 720}
# Daftar penggabungan untuk keluaran pekerjaan.
# Anda harus mengkodekan URL Object Storage Service (OSS) dari file media.
merge_video = {'MergeURL': 'http://%s.%s.aliyuncs.com/%s'%(oss_bucket, oss_location, quote(oss_input_object))}
merge_tail = {'MergeURL': 'http://%s.%s.aliyuncs.com/%s'%(oss_bucket, oss_location, quote(tail_object))}
output['MergeList'] = [merge_video, merge_tail]
# Keluaran pekerjaan.
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)
# Tampilkan respons.
print(str(response, encoding='utf-8'))