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

ApsaraVideo VOD:コード変換のテンプレート

最終更新日:Oct 28, 2024

このトピックでは、トランスコードテンプレートモジュールのAPI操作の使用例を示します。 API操作はApsaraVideo VOD SDK for Pythonにカプセル化されています。 APIを呼び出して、トランスコードテンプレートグループを作成、変更、削除、および照会できます。 コード変換テンプレートグループをデフォルトとして指定することもできます。

使用上の注意

  • この例では、AccessKeyペアを使用してクライアントインスタンスを初期化します。

  • この操作のリクエストおよびレスポンスパラメーターの詳細については、 OpenAPI Explorerに移動します。 上部のナビゲーションバーで [APIドキュメント] をクリックすると、API操作に関連する情報が表示されます。

  • このトピックでは、一部の複雑なAPI操作のサンプルコードのみを示します。 他のAPI操作のサンプルコードを取得するには、次の操作を実行します。 Alibaba Cloud OpenAPI Explorerに移動します。左側のナビゲーションウィンドウで、サンプルコードを取得するAPI操作を見つけ、[パラメーター] タブで必要なパラメーターを指定します。 次に、[呼び出しの開始] をクリックします。 [SDKサンプルコード] タブで、サンプルコードを表示およびダウンロードする言語を選択します。

  • このトピックでは、ApsaraVideo VOD SDK for Java V1.0を使用してAPI操作を呼び出す方法について説明します。 ApsaraVideo VOD SDK for Java V2.0を使用してAPI操作を呼び出す場合、Alibaba Cloud OpenAPI Explorerでサンプルコードを取得するときにV2.0を指定します。image.png

クライアントを初期化

SDKを使用する前に、クライアントを初期化してください。 詳細については、「初期化」をご参照ください。

トランスコードテンプレートグループの作成

AddTranscodeTemplateGroup操作を呼び出して、トランスコードテンプレートグループを作成できます。

このAPI操作の詳細については、AddTranscodeTemplateGroupを参照してください。

サンプルコード:

from aliyunsdkvod.request.v20170321 import AddTranscodeTemplateGroupRequest

""" Construct the parameters of the transcoding template that you want to create. """
def build_transcode_template_list():
    transcodeTemplateList = []
    transcodeTemplate = {}

    # The name of the template.
    transcodeTemplate["TemplateName"] = "MP4-for-Low-Definition"

    # The definition.
    transcodeTemplate["Definition"] = "LD"

    # The transcoding settings for video streams.
    videoConfig = {"Width": 640, "Bitrate": 400, "Fps": 25, "Remove": False, "Codec": "H.264", "Gop": "250"}
    transcodeTemplate["Video"] = videoConfig

    # The transcoding settings for audio streams.
    audioConfig = {"Codec": "AAC", "Bitrate": "64", "Channels": "2", "Samplerate": "32000"}
    transcodeTemplate["Audio"] = audioConfig

    # The container.
    container = {"Format": "mp4"}
    transcodeTemplate["Container"] = container

    # The conditional transcoding configurations.
    condition = {"IsCheckReso": False, "IsCheckResoFail": False, "IsCheckVideoBitrate": False,
                 "IsCheckVideoBitrateFail": False, "IsCheckAudioBitrate": False, "IsCheckAudioBitrateFail": False}
    transcodeTemplate["TransConfig"] = condition

    """
    # The encryption configurations. Only HLS encryption is supported.
    encryptSetting = {"EncryptType": "Private"}
    transcodeTemplate["EncryptSetting"] = encryptSetting
    """

    # The IDs of associated watermarks.
    watermarkIdList = []
    #watermarkIdList.append("<WatermarkId>")
    watermarkIdList.append("USER_DEFAULT_WATERMARK")
    transcodeTemplate["WatermarkIds"] = watermarkIdList

    transcodeTemplateList.append(transcodeTemplate)

    return transcodeTemplateList


"""  Add transcoding template configurations.   """
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('<AccessKeyId>', '<AccessKeySecret>')
    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操作の詳細については、UpdateTranscodeTemplateGroupを参照してください。

サンプルコード:

from aliyunsdkvod.request.v20170321 import UpdateTranscodeTemplateGroupRequest

""" Construct the parameters of the transcoding template that you want to modify. """
def build_transcode_template_list():
    transcodeTemplateList = []
    transcodeTemplate = {}

    # Required. The ID of the transcoding template.
    transcodeTemplate["TranscodeTemplateId"] = "<TranscodeTemplateId>"

    # The following parameters are optional:

    # The new template name. Specify this parameter based on your business requirements.
    transcodeTemplate["TemplateName"] = "new-MP4-for-Low-Definition"

    # The transcoding settings for video streams.
    videoConfig = {"Width": 640, "Bitrate": 500, "Fps": 60, "Remove": False, "Codec": "H.264", "Gop": "250"}
    transcodeTemplate["Video"] = videoConfig

    # The transcoding settings for audio streams.
    audioConfig = {"Codec": "AAC", "Bitrate": "128", "Channels": "2", "Samplerate": "32000"}
    transcodeTemplate["Audio"] = audioConfig

    # The container.
    container = {"Format": "mp4"}
    transcodeTemplate["Container"] = container

    # The conditional transcoding configurations.
    condition = {"IsCheckReso": False, "IsCheckResoFail": False, "IsCheckVideoBitrate": False,
                 "IsCheckVideoBitrateFail": False, "IsCheckAudioBitrate": False, "IsCheckAudioBitrateFail": False}
    transcodeTemplate["TransConfig"] = condition

    """
    # The encryption configurations. Only HLS encryption is supported.
    encryptSetting = {"EncryptType": "Private"}
    transcodeTemplate["EncryptSetting"] = encryptSetting
    """

    # The IDs of associated watermarks.
    watermarkIdList = []
    #watermarkIdList.append("<WatermarkId>")
    watermarkIdList.append("USER_DEFAULT_WATERMARK")
    transcodeTemplate["WatermarkIds"] = watermarkIdList

    transcodeTemplateList.append(transcodeTemplate)

    return transcodeTemplateList


"""  Modify a transcoding template.   """
def update_transcode_template_group(clt):
    request = UpdateTranscodeTemplateGroupRequest.UpdateTranscodeTemplateGroupRequest()

    # Specify the transcoding template group ID.
    request.set_TranscodeTemplateGroupId("<TranscodeTemplateGroupId>")

    # Specify the transcoding template configurations.
    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('<AccessKeyId>', '<AccessKeySecret>')
    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操作の詳細については、SetDefaultTranscodeTemplateGroupを参照してください。

コード変換テンプレートグループの削除

DeleteTranscodeTemplateGroup操作を呼び出して、トランスコードテンプレートグループを削除できます。

このAPI操作の詳細については、DeleteTranscodeTemplateGroupを参照してください。