转码模板

视频转码基于转码模板发起,当视频点播提供的系统内置转码模板组无法满足您的转码需求时,您可以创建一个新的转码模板组,自定义模板中的编码格式、帧率、分辨率等参数。本文提供了Python SDK转码模板组相关的API调用示例,包含如何创建以及管理转码模板组。

接口调用说明

  • 本文提供的接口调用示例均通过AccessKey初始化客户端实例。

  • 接口的参数解释和返回字段的详细说明请访问阿里云OpenAPI门户,在各接口右侧的文档页签查看。

  • 本文仅提供部分复杂接口的代码示例,其余接口的SDK代码示例,可以通过阿里云OpenAPI门户获取。访问阿里云OpenAPI门户,在接口的左侧参数配置页签,填写需要的参数信息并发起调用后,在右侧的SDK示例页签,选择SDK版本,选择目标语言,查看并下载示例代码。

  • 本文均以V1.0版本的SDK为例进行接口调用,如需获取V2.0版本的SDK示例,请在通过阿里云OpenAPI门户获取SDK示例时,指定到对应的SDK版本。image.png

初始化客户端

使用前请先初始化客户端,请参见初始化

添加转码模板组

调用AddTranscodeTemplateGroup接口,生成添加转码模板组的SDK示例。

阿里云OpenAPI门户地址: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接口,生成修改转码模板组的SDK示例。

阿里云OpenAPI门户地址: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接口,生成查询单个转码模板组信息的SDK示例。

    阿里云OpenAPI门户地址:GetTranscodeTemplateGroup

  • 调用ListTranscodeTemplateGroup接口,生成查询转码模板组列表信息的SDK示例。

    阿里云OpenAPI门户地址:ListTranscodeTemplateGroup

设置默认转码模板组

调用SetDefaultTranscodeTemplateGroup接口,生成设置默认转码模板组的SDK示例。

阿里云OpenAPI门户地址:SetDefaultTranscodeTemplateGroup

删除转码模板组

调用DeleteTranscodeTemplateGroup接口,生成删除转码模板组的SDK示例。

阿里云OpenAPI门户地址:DeleteTranscodeTemplateGroup

相关文档

  • 音视频转码:介绍视频点播的转码功能更完整更详细的信息,包括功能特点、应用场景、费用说明等。

  • 转码模板管理:提供转码模板完整的SDK示例代码。