通過閱讀本文,您可以了解通過服務端SDK調用OpenAPI發起并查詢智能媒體服務轉碼任務的示例代碼。
使用說明
發起轉碼任務時,需要先根據用戶所提供的region(提供服務的區域)、name(轉碼任務名稱)、inputPath(轉碼任務的輸入OSS路徑)、outputpath(轉碼任務的輸出OSS路徑)和templateId(轉碼模板ID)參數提交轉碼任務。轉碼任務處理成功后,可以根據返回的jobId(任務ID)查詢該轉碼任務信息。
轉碼任務參數需注意以下幾點:
region為提供服務的區域。
name可以為空。
inputPath、outputpath必須和region在同一區域。
templateId可通過轉碼模板管理頁面獲取。
說明
region目前支持區域如下:
點播媒體處理:華東2(上海)、華北2(北京)、華南1(深圳)
實時媒體處理:華東2(上海)
示例代碼
您可以通過阿里云OpenAPI開發者門戶在線調試。
<?php
require_once '../vendor/autoload.php';
use AlibabaCloud\SDK\ICE\V20201109\ICE;
use AlibabaCloud\SDK\ICE\V20201109\Models;
use AlibabaCloud\SDK\ICE\V20201109\Models\GetTranscodeJobRequest;
use AlibabaCloud\SDK\ICE\V20201109\Models\SubmitTranscodeJobRequest;
use AlibabaCloud\SDK\ICE\V20201109\Models\SubmitTranscodeJobRequest\outputGroup\processConfig\transcode;
use AlibabaCloud\SDK\ICE\V20201109\Models\SubmitTranscodeJobRequest\outputGroup\processConfig;
use AlibabaCloud\SDK\ICE\V20201109\Models\SubmitTranscodeJobRequest\outputGroup\output;
use AlibabaCloud\SDK\ICE\V20201109\Models\SubmitTranscodeJobRequest\outputGroup;
use AlibabaCloud\SDK\ICE\V20201109\Models\SubmitTranscodeJobRequest\inputGroup;
use Darabonba\OpenApi\Models\Config;
try {
// 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
// 本示例以將AccessKey ID和 AccessKey Secret保存在環境變量為例說明。配置方法請參見:http://bestwisewords.com/document_detail/311677.html
$credential = new Credential([]);
$config = new Config([
'credential' => $credential,
'endpoint' => 'ice.cn-shanghai.aliyuncs.com'
]);
// 如需硬編碼AccessKey ID和AccessKey Secret,代碼如下,但強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
// $config->accessKeyId = '<yourAccessKeyId>';
// $config->accessKeySecret = '<yourAccessKeySecret>';
$client = new ICE($config);
// 構造提交任務請求
$inputGroup = new inputGroup(["Type" => "OSS","Media" => "oss://bucket/path/to/input_video.mp4"]);
$outputGroupOutput = new output(["Type" => "OSS","Media" => "oss://bucket/path/to/output_video.mp4"]);
$outputGroupProcessConfigTranscode = new transcode(["TemplateId" => "9547c6ad97cb4f2aaa29683ebd18****"]);
$outputGroupProcessConfig = new processConfig(["Transcode" => $outputGroupProcessConfigTranscode]);
$outputGroup = new outputGroup(["Output" => $outputGroupOutput,"ProcessConfig" => $outputGroupProcessConfig]);
// 發送請求
$request = new SubmitTranscodeJobRequest();
$request->inputGroup = [$inputGroup];
$request->outputGroup = [$outputGroup];
$response = $client->submitTranscodeJob($request);
echo json_encode($response->body);
// 提取任務ID,并構造查詢任務請求
$jobId = $response->body->transcodeParentJob->parentJobId;
$request = new GetTranscodeJobRequest();
$request->jobId = $jobId;
// 發送查詢任務情況請求
$response = $client->getTranscodeJob($request);
echo json_encode($response->body);
} catch (TeaUnableRetryError $e) {
var_dump($e);
}
相關接口
文檔內容是否對您有幫助?