ApsaraVideo VOD は、動画トランスコーディングにトランスコードテンプレートを使用します。組み込みのトランスコードテンプレートグループが要件を満たさない場合は、トランスコードテンプレートグループを作成し、エンコーディング形式、フレームレート、解像度などのパラメーターをカスタマイズできます。Python SDK を使用して API オペレーションを呼び出し、トランスコードテンプレートグループを作成および管理できます。
注意事項
-
このトピックのすべての例では、AccessKey ペアを使用してクライアントインスタンスを初期化します。
-
リクエストとレスポンスのパラメーターの詳細については、Alibaba Cloud OpenAPI Explorer にある [API Documentations] タブをご参照ください。
-
他の API オペレーションの SDK サンプルについては、Alibaba Cloud OpenAPI Explorer にアクセスしてください。[Parameters] タブでパラメーターを指定して呼び出しを開始し、[SDK Sample Code] タブで SDK のバージョンと言語を選択すると、コードの表示とダウンロードができます。
-
このトピックの例では SDK V1.0 を使用しています。V2.0 の例については、OpenAPI Explorer で正しい SDK バージョンを選択してください。

クライアントの初期化
SDK を使用する前に、クライアントを初期化します。詳細については、「初期化」をご参照ください。
トランスコードテンプレートグループの作成
AddTranscodeTemplateGroup API を呼び出して、トランスコードテンプレートグループを作成します。
このAPI操作の詳細については、AddTranscodeTemplateGroupを参照してください。
サンプルコード:
from aliyunsdkvod.request.v20170321 import AddTranscodeTemplateGroupRequest
""" 追加するトランスコードテンプレートの設定データを構成します。 """
def build_transcode_template_list():
transcodeTemplateList = []
transcodeTemplate = {}
# テンプレート名を設定します。
transcodeTemplate["TemplateName"] = "MP4-for-Low-Definition"
# 画質。
transcodeTemplate["Definition"] = "LD"
# 動画ストリームのトランスコーディング設定。
videoConfig = {"Width": 640, "Bitrate": 400, "Fps": 25, "Remove": False, "Codec": "H.264", "Gop": "250"}
transcodeTemplate["Video"] = videoConfig
# 音声ストリームのトランスコーディング設定。
audioConfig = {"Codec": "AAC", "Bitrate": "64", "Channels": "2", "Samplerate": "32000"}
transcodeTemplate["Audio"] = audioConfig
# コンテナ。
container = {"Format": "mp4"}
transcodeTemplate["Container"] = container
# 条件付きトランスコーディング設定。
condition = {"IsCheckReso": False, "IsCheckResoFail": False, "IsCheckVideoBitrate": False,
"IsCheckVideoBitrateFail": False, "IsCheckAudioBitrate": False, "IsCheckAudioBitrateFail": False}
transcodeTemplate["TransConfig"] = condition
"""
# 暗号化設定 (HLS のみ)。
encryptSetting = {"EncryptType": "Private"}
transcodeTemplate["EncryptSetting"] = encryptSetting
"""
# ウォーターマーク ID (複数のウォーターマークを関連付けるため)。
watermarkIdList = []
#watermarkIdList.append("<WatermarkId>")
watermarkIdList.append("USER_DEFAULT_WATERMARK")
transcodeTemplate["WatermarkIds"] = watermarkIdList
transcodeTemplateList.append(transcodeTemplate)
return transcodeTemplateList
""" トランスコードテンプレートの設定を追加します。 """
def add_transcode_template_group(clt):
request = AddTranscodeTemplateGroupRequest.AddTranscodeTemplateGroupRequest()
request.set_Name("SampleTranscodeTemplateGroup")
transcodeTemplateList = build_transcode_template_list()
request.set_TranscodeTemplateList(json.dumps(transcodeTemplateList))
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception(request))
return response
try:
clt = init_vod_client()
res = add_transcode_template_group(clt)
print(json.dumps(res, ensure_ascii=False, indent=4))
except Exception as e:
print(e)
print(traceback.format_exc())
トランスコードテンプレートグループの変更
UpdateTranscodeTemplateGroup API を呼び出して、トランスコードテンプレートグループを変更します。
このAPI操作の詳細については、UpdateTranscodeTemplateGroupを参照してください。
サンプルコード:
from aliyunsdkvod.request.v20170321 import UpdateTranscodeTemplateGroupRequest
""" 変更するトランスコードテンプレートの設定データを構成します。 """
def build_transcode_template_list():
transcodeTemplateList = []
transcodeTemplate = {}
# トランスコードテンプレート ID を設定します。これは必須です。
transcodeTemplate["TranscodeTemplateId"] = "<TranscodeTemplateId>"
# 以下はオプションです。
# 新しいテンプレート名を設定します (変更する場合)。
transcodeTemplate["TemplateName"] = "new-MP4-for-Low-Definition"
# 動画ストリームのトランスコーディング設定。
videoConfig = {"Width": 640, "Bitrate": 500, "Fps": 60, "Remove": False, "Codec": "H.264", "Gop": "250"}
transcodeTemplate["Video"] = videoConfig
# 音声ストリームのトランスコーディング設定。
audioConfig = {"Codec": "AAC", "Bitrate": "128", "Channels": "2", "Samplerate": "32000"}
transcodeTemplate["Audio"] = audioConfig
# コンテナ。
container = {"Format": "mp4"}
transcodeTemplate["Container"] = container
# 条件付きトランスコーディング設定。
condition = {"IsCheckReso": False, "IsCheckResoFail": False, "IsCheckVideoBitrate": False,
"IsCheckVideoBitrateFail": False, "IsCheckAudioBitrate": False, "IsCheckAudioBitrateFail": False}
transcodeTemplate["TransConfig"] = condition
"""
# 暗号化設定 (HLS のみ)。
encryptSetting = {"EncryptType": "Private"}
transcodeTemplate["EncryptSetting"] = encryptSetting
"""
# ウォーターマーク ID (複数のウォーターマークを関連付けるため)。
watermarkIdList = []
#watermarkIdList.append("<WatermarkId>")
watermarkIdList.append("USER_DEFAULT_WATERMARK")
transcodeTemplate["WatermarkIds"] = watermarkIdList
transcodeTemplateList.append(transcodeTemplate)
return transcodeTemplateList
""" トランスコードテンプレートの設定を変更します。 """
def update_transcode_template_group(clt):
request = UpdateTranscodeTemplateGroupRequest.UpdateTranscodeTemplateGroupRequest()
# トランスコードテンプレートグループ ID を設定します。
request.set_TranscodeTemplateGroupId("<TranscodeTemplateGroupId>")
# トランスコードテンプレートを設定します。
transcodeTemplateList = build_transcode_template_list()
request.set_TranscodeTemplateList(json.dumps(transcodeTemplateList))
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception(request))
return response
try:
clt = init_vod_client()
res = update_transcode_template_group(clt)
print(json.dumps(res, ensure_ascii=False, indent=4))
except Exception as e:
print(e)
print(traceback.format_exc())
トランスコードテンプレートグループの照会
GetTranscodeTemplateGroup操作を呼び出して、トランスコードテンプレートグループを照会できます。
このAPI操作の詳細については、GetTranscodeTemplateGroupを参照してください。
ListTranscodeTemplateGroup操作を呼び出して、トランスコードテンプレートグループのリストを照会できます。
このAPI操作の詳細については、ListTranscodeTemplateGroupを参照してください。
デフォルトのトランスコードテンプレートグループの指定
SetDefaultTranscodeTemplateGroup API を呼び出して、トランスコードテンプレートグループをデフォルトとして設定します。
このAPI操作の詳細については、SetDefaultTranscodeTemplateGroupを参照してください。
トランスコードテンプレートグループの削除
DeleteTranscodeTemplateGroup API を呼び出して、トランスコードテンプレートグループを削除します。
このAPI操作の詳細については、DeleteTranscodeTemplateGroupを参照してください。