通过阅读本文,您可以了解通过服务端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保存在环境变量为例说明。配置方法请参见:https://help.aliyun.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);
}
相关接口
文档内容是否对您有帮助?