通过阅读本文,您可以了解通过服务端SDK调用OpenAPI发起并查询智能媒体服务转码任务的示例代码。
使用说明
发起转码任务时,需要先根据用户所提供的region(提供服务的区域)、name(转码任务名称)、input_path(转码任务的输入OSS路径)、output_path(转码任务的输出OSS路径)和template_id(转码模板ID)参数提交转码任务。转码任务处理成功后,可以根据返回的job_id(任务ID)查询该转码任务信息。
转码任务参数需注意以下几点:
region为提供服务的区域。
name可以为空。
input_path、output_path必须和region在同一区域。
template_id可通过转码模板管理页面获取。
说明
region目前支持区域如下:
点播媒体处理:华东2(上海)、华北2(北京)、华南1(深圳)
实时媒体处理:华东2(上海)
示例代码
您可以通过阿里云OpenAPI开发者门户在线调试。
import json
import os
import sys
from typing import List
from alibabacloud_ice20201109.client import Client as ICE20201109Client
# 引入阿里云IMS SDK
from alibabacloud_ice20201109 import models as ice20201109_models
# Credentials和云产品SDK都需引入Client,此处为创建别名
from alibabacloud_credentials.client import Client as CredClient
# 引入阿里云SDK核心包
from alibabacloud_tea_openapi.models import Config
#######需要的依赖#############
#pip install alibabacloud_credentials
#pip install alibabacloud_ice20201109==1.3.11
class Sample:
# 初始化客户端
@staticmethod
def create_client(region: str) -> ICE20201109Client:
# 使用默认凭证初始化Credentials Client
cred = CredClient()
config = Config(credential = cred)
# 配置云产品服务接入地址(endpoint)
config.endpoint = 'ice.' + region + '.aliyuncs.com'
# 使用Credentials Client初始化ECS Client
return ICE20201109Client(config)
# @staticmethod
# def create_client(
# access_key_id: str,
# access_key_secret: str,
# region: str,
# ) -> ICE20201109Client:
# 如需硬编码AccessKey ID和AccessKey Secret,代码如下,但强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全
# config = open_api_models.Config(
# # 必填,您的 AccessKey ID,
# access_key_id = access_key_id,
# # 必填,您的 AccessKey Secret,
# access_key_secret = access_key_secret
# )
# # 访问的域名
# config.endpoint = 'ice.' + region + '.aliyuncs.com'
# return ICE20201109Client(config)
# 读取命令行参数
@staticmethod
def main() -> None:
region = 'cn-shanghai'
name = 'name'
input_path = 'input path'
output_path = 'output path'
template_id = 'template id'
# 初始化客户端
client = Sample.create_client(region)
# 构造提交任务请求
request = ice20201109_models.SubmitTranscodeJobRequest(
name = name,
# 输入信息
input_group = [
ice20201109_models.SubmitTranscodeJobRequestInputGroup(
type = 'OSS',
media = input_path
)
],
# 输出信息
output_group = [
ice20201109_models.SubmitTranscodeJobRequestOutputGroup(
output = ice20201109_models.SubmitTranscodeJobRequestOutputGroupOutput(
type = 'OSS',
media = output_path
),
process_config = ice20201109_models.SubmitTranscodeJobRequestOutputGroupProcessConfig(
transcode = ice20201109_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 = ice20201109_models.GetTranscodeJobRequest(
parent_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()
相关接口
文档内容是否对您有帮助?