Transcoding jobs

Updated at:

Initiate and query transcoding jobs in Intelligent Media Services by calling API operations with a server-side SDK.

Usage notes

To initiate a transcoding job, submit the job with the regionId, Inputs, and OutputGroups parameters. After the job is processed, you can use the returned JobId to query the job information.

Note the following about transcoding job parameters:

  • regionId is the region where the service is provided.

  • Inputs and OutputGroups files corresponding to OutputGroups must be in the same region regionId.

  • Obtain templateId from the transcoding template management page.

For complete parameter structure see MediaConvertJobConfig.

Note

For a list of supported regionId, please refer Service regions.

Sample code

You can use Alibaba Cloud OpenAPI Explorer to debug API calls online.

# -*- 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:
        credential = CredentialClient()
        config = open_api_models.Config(
            credential=credential
        )
        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:
            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:
            print(error.message)
            print(error.data.get("Recommend"))


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

Related API operations