转码任务

更新时间:
复制 MD 格式

通过阅读本文,您可以了解通过服务端SDK调用OpenAPI发起并查询智能媒体服务转码任务的示例代码。

使用说明

发起转码任务时,需要先根据用户所提供的regionId(提供服务的地域)、Inputs(转码任务的输入配置)、OutputGroups(转码作业输出组配置列表)参数提交转码任务。转码任务处理成功后,可以根据返回的JobId(任务ID)查询该转码任务信息。

转码任务参数需注意以下几点:

  • regionId为提供服务的地域。

  • InputsOutputGroups对应的输入输出文件,必须处于同一地域regionId

  • templateId可通过转码模板管理页面获取。

完整参数结构参见 MediaConvertJobConfig

说明

regionId支持地域请参考服务地域

示例代码

您可以通过阿里云OpenAPI开发者门户在线调试。

# -*- coding: utf-8 -*-
import os
import sys
import json

from typing import List

from alibabacloud_ice20201109.client import Client as ICE20201109Client
from alibabacloud_credentials.client import Client as CredentialClient
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_ice20201109 import models as ice20201109_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient


class Sample:
    def __init__(self):
        pass

    @staticmethod
    def create_client() -> ICE20201109Client:
        """
        使用凭据初始化账号Client
        @return: Client
        @throws Exception
        """
        # 工程代码建议使用更安全的无AK方式,凭据配置方式请参见:https://help.aliyun.com/document_detail/378659.html。
        credential = CredentialClient()
        config = open_api_models.Config(
            credential=credential
        )
        # Endpoint 请参考 https://api.aliyun.com/product/ICE
        # cn-shanghai 可替换为所使用的regionId
        config.endpoint = f'ice.cn-shanghai.aliyuncs.com'
        return ICE20201109Client(config)

    @staticmethod
    def main(
        args: List[str],
    ) -> None:
        client = Sample.create_client()
        submit_media_convert_job_request = ice20201109_models.SubmitMediaConvertJobRequest(
            config='{"Inputs":[{"InputFile":{"Type":"OSS","Media":"http://<bucket name>.oss-cn-shanghai.aliyuncs.com/input/**/60min.mp4"}}],"OutputGroups":[{"GroupConfig":{"Type":"File","OutputFileBase":{"Type":"OSS","Media":"http://<bucket name>.oss-cn-shanghai.aliyuncs.com/output/**/"}},"Outputs":[{"OutputFileName":"hd.mp4","TemplateId":"<TemplateId>"},{"OutputFileName":"sd.mp4","TemplateId":"<TemplateId>"}]}]}',
            user_data='{"videoId":"abcd"}'
        )
        runtime = util_models.RuntimeOptions()
        try:
            resp = client.submit_media_convert_job_with_options(submit_media_convert_job_request, runtime)
            print(json.dumps(resp, default=str, indent=2))
        except Exception as error:
            # 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
            # 错误 message
            print(error.message)
            # 诊断地址
            print(error.data.get("Recommend"))

    @staticmethod
    async def main_async(
        args: List[str],
    ) -> None:
        client = Sample.create_client()
        submit_media_convert_job_request = ice20201109_models.SubmitMediaConvertJobRequest(
            config='{"Inputs":[{"InputFile":{"Type":"OSS","Media":"http://<bucket name>.oss-cn-shanghai.aliyuncs.com/input/**/60min.mp4"}}],"OutputGroups":[{"GroupConfig":{"Type":"File","OutputFileBase":{"Type":"OSS","Media":"http://<bucket name>.oss-cn-shanghai.aliyuncs.com/output/**/"}},"Outputs":[{"OutputFileName":"hd.mp4","TemplateId":"<TemplateId>"},{"OutputFileName":"sd.mp4","TemplateId":"<TemplateId>"}]}]}',
            user_data='{"videoId":"abcd"}'
        )
        runtime = util_models.RuntimeOptions()
        try:
            resp = await client.submit_media_convert_job_with_options_async(submit_media_convert_job_request, runtime)
            print(json.dumps(resp, default=str, indent=2))
        except Exception as error:
            # 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
            # 错误 message
            print(error.message)
            # 诊断地址
            print(error.data.get("Recommend"))


if __name__ == '__main__':
    Sample.main(sys.argv[1:])

相关接口