すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo Media Processing:メディアファイルのマージとクリップ

最終更新日:Jan 12, 2025

ビデオのマージを使用すると、さまざまな形式、ビットレート、解像度のビデオを、特定の形式、ビットレート、解像度の長いビデオにマージできます。 通常は、ビデオに開始部分または終了部分を追加したり、録画されたライブストリームのクリップをマージしたりするために使用されます。 ビデオのクリッピングを使用すると、元のビデオからクリップをキャプチャし、クリップを新しいビデオとして保存できます。 通常は、ビデオからハイライトをキャプチャするために使用されます。 このトピックでは、Python 用 ApsaraVideo Media Processing(MPS)SDK にカプセル化されている API オペレーションを使用して、メディアファイルをマージおよびクリップする方法の例を示します。

サンプルコード

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

# 環境変数から AccessKey ID と AccessKey シークレットを取得します。
credentials = AccessKeyCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'])
# region_id パラメーターは、MPS サービスがデプロイされているリージョンの ID を指定します。サポートされているリージョンについては、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 = '<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')
# ジョブ入力。
job_input = {'Location': oss_location,
             'Bucket': oss_bucket,
             'Object': quote(head_object) }
request.set_Input(json.dumps(job_input))
# ジョブ出力。
output = {'OutputObject': quote(oss_output_object)}
output['TemplateId'] = template_id
output['Video'] = {'Width': 1280,
                   'Height': 720}
# ジョブ出力のマージリスト。
# メディアファイルのオブジェクトストレージサービス (OSS) URL をエンコードする必要があります。
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]
# ジョブ出力。
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)
# レスポンスを表示します。
print(str(response, encoding='utf-8'))

関連情報