通過閱讀本文,您可以瞭解通過服務端SDK調用OpenAPI發起並查詢智能媒體服務轉碼任務的範例程式碼。
使用說明
發起轉碼任務時,需要先根據使用者所提供的region(提供服務的地區)、name(轉碼任務名稱)、inputPath(轉碼任務的輸入OSS路徑)、outputpath(轉碼任務的輸出OSS路徑)和templateId(轉碼模板ID)參數提交轉碼任務。轉碼任務處理成功後,可以根據返回的JobId(任務ID)查詢該轉碼任務資訊。
轉碼任務參數需注意以下幾點:
region為提供服務的地區。
name可以為空白。
inputPath、outputpath必須和region在同一地區。
templateId可通過轉碼範本管理員頁面擷取。
說明
region目前支援地區如下:
點播ApsaraVideo for Media Processing:華東2(上海)、華北2(北京)、華南1(深圳)
即時ApsaraVideo for Media Processing:華東2(上海)
範例程式碼
您可以通過阿里雲OpenAPI開發人員門戶線上調試。
import Console from '@alicloud/tea-console';
import OpenApi, * as $OpenApi from '@alicloud/openapi-client';
import Util from '@alicloud/tea-util';
import ICE20201109, * as $ICE20201109 from '@alicloud/ice20201109';
import * as $tea from '@alicloud/tea-typescript';
import Credential, { Config } from '@alicloud/credentials';
/**
* Node.js環境版本為8.x及以上。
* 安裝阿里雲SDK Credentials工具。 npm install @alicloud/credentials
* 安裝IMS SDK npm install --save @alicloud/ice20201109@1.3.11
*
*/
export default class Client {
/** Credentials方式初始化用戶端
* @param regionId 提供服務的地區
* @return 發送請求的用戶端
*/
static async createClient(regionId: string): Promise<ICE20201109> {
const cred = new Credential();
let config = new $OpenApi.Config({ });
config.credential = cred;
config.endpoint = `ice.${regionId}.aliyuncs.com`;
return new ICE20201109(config);
}
/** 明文方式初始化用戶端
* 如需寫入程式碼AccessKey ID和AccessKey Secret,代碼如下,但強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
* @param accessKeyId 阿里雲AK
* @param accessKeySecret 阿里雲SK
* @param regionId 提供服務的地區
* @return 發送請求的用戶端
*/
// static async createClient(accessKeyId: string, accessKeySecret: string, regionId: string): Promise<ICE20201109> {
// let config = new $OpenApi.Config({ });
// config.accessKeyId = accessKeyId;
// config.accessKeySecret = accessKeySecret;
// config.regionId = regionId;
// config.endpoint = `ice.${regionId}.aliyuncs.com`;
// return new ICE20201109(config);
// }
// 讀取命令列參數
static async main(args: string[]): Promise<void> {
let regionId = args[0];
let name = args[1];
let inputPath = args[2];
let outputPath = args[3];
let templateId = args[4];
// 初始化用戶端
let client = await Client.createClient(regionId);
// 構造提交工作要求
let request = new $ICE20201109.SubmitTranscodeJobRequest({
name: name,
// 輸入資訊
inputGroup: [
new $ICE20201109.SubmitTranscodeJobRequestInputGroup({
type: "OSS",
media: inputPath,
})
],
// 輸出資訊
outputGroup: [
new $ICE20201109.SubmitTranscodeJobRequestOutputGroup({
output: new $ICE20201109.SubmitTranscodeJobRequestOutputGroupOutput({
type: "OSS",
media: outputPath,
}),
processConfig: new $ICE20201109.SubmitTranscodeJobRequestOutputGroupProcessConfig({
transcode: new $ICE20201109.SubmitTranscodeJobRequestOutputGroupProcessConfigTranscode({
templateId: templateId,
}),
}),
})
],
});
// 發送提交工作要求
let response = await client.submitTranscodeJob(request);
// 列印結果資訊
Console.log(Util.toJSONString($tea.toMap(response)));
// 提取任務ID,並構造查詢工作要求
let jobId = response.body.transcodeParentJob.parentJobId;
let queryRequest = new $ICE20201109.GetTranscodeJobRequest({
jobId: jobId,
});
// 發送查詢任務情況請求
let queryResponse = await client.getTranscodeJob(queryRequest);
// 列印結果資訊
Console.log(Util.toJSONString($tea.toMap(queryResponse)));
}
}
Client.main(process.argv.slice(2));