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

使用说明

发起转码任务时,需要先根据用户所提供的region(提供服务的区域)、name(转码任务名称)、input_path(转码任务的输入OSS路径)、output_path(转码任务的输出OSS路径)和template_id(转码模板ID)参数提交转码任务。转码任务处理成功后,可以根据返回的job_id(任务ID)查询该转码任务信息。

转码任务参数需注意以下几点:
  • region目前仅支持服务地域中的区域。
  • name可以为空。
  • input_pathoutput_path必须和region在同一区域。
  • template_id可通过转码模板管理页面获取。

示例代码

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

import json
import os
import sys
from typing import List

from alibabacloud_ice20201109 import models
from alibabacloud_ice20201109.client import Client
from alibabacloud_tea_openapi.models import Config

class Sample:
    """ 初始化客户端
    * @param accessKeyId 阿里云 AK
    * @param accessKeySecret 阿里云 SK
    * @param regionId 提供服务的区域
    * @return 发送请求的客户端
    """
    @staticmethod
    def create_client(
            access_key_id: str,
            access_key_secret: str,
            region_id: str,
    ) -> Client:
        config = Config()
        config.access_key_id = access_key_id
        config.access_key_secret = access_key_secret
        config.region_id = region_id
        config.endpoint = f'ice.{region_id}.aliyuncs.com'
        return Client(config)

    # 读取命令行参数
    @staticmethod
    def main(
            args: List[str],
    ) -> None:
        region = args[0]
        name = args[1]
        input_path = args[2]
        output_path = args[3]
        template_id = args[4]

        # 初始化客户端
        client = Sample.create_client(os.getenv('ACCESS_KEY_ID'), os.getenv('ACCESS_KEY_SECRET'), region)

        # 构造提交任务请求
        request = models.SubmitTranscodeJobRequest(
            name=name,
            # 输入信息
            input_group=[
                models.SubmitTranscodeJobRequestInputGroup(
                    type='OSS',
                    media=input_path
                )
            ],
            # 输出信息
            output_group=[
                models.SubmitTranscodeJobRequestOutputGroup(
                    output=models.SubmitTranscodeJobRequestOutputGroupOutput(
                        type='OSS',
                        media=output_path
                    ),
                    process_config=models.SubmitTranscodeJobRequestOutputGroupProcessConfig(
                        transcode=models.SubmitTranscodeJobRequestOutputGroupProcessConfigTranscode(
                            template_id=template_id
                        )
                    )
                )
            ]
        )

        # 发送提交任务请求
        response = client.submit_transcode_job(request)
        # 打印结果信息
        print('[LOG]', json.dumps(response.to_map()))

        # 提取任务ID,并构造查询任务请求
        job_id = response.body.transcode_parent_job.parent_job_id
        query_request = models.GetTranscodeJobRequest(
            job_id=job_id
        )
        # 发送查询任务情况请求
        query_response = client.get_transcode_job(query_request)
        # 打印结果信息
        print('[LOG]', json.dumps(query_response.to_map()))

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

相关接口