通过阅读本文,您可以了解通过服务端SDK调用OpenAPI发起并查询智能媒体服务转码任务的示例代码。
使用说明
发起转码任务时,需要先根据用户所提供的region(提供服务的区域)、name(转码任务名称)、inputPath(转码任务的输入OSS路径)、outputpath(转码任务的输出OSS路径)和templateId(转码模板ID)参数提交转码任务。转码任务处理成功后,可以根据返回的JobId(任务ID)查询该转码任务信息。
转码任务参数需注意以下几点:
region目前仅支持服务地域中的区域。
name可以为空。
inputPath、outputpath必须和region在同一区域。
templateId可通过转码模板管理页面获取。
示例代码
您可以通过阿里云OpenAPI开发者门户在线调试。
package main
import (
"fmt"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
ice "github.com/alibabacloud-go/ice-20201109/v2/client"
"github.com/aliyun/credentials-go/credentials"
"github.com/alibabacloud-go/tea/tea"
)
func main() {
// 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
// 本示例以将AccessKey ID和 AccessKey Secret保存在环境变量为例说明。配置方法请参见:https://help.aliyun.com/document_detail/378661.html。
credential, _err := credentials.NewCredential(nil)
if _err != nil {
panic(_err)
}
iceClient, _err := ice.NewClient(&openapi.Config{
Credential: credential,
Endpoint: tea.String("ice.cn-shanghai.aliyuncs.com"),
})
// 如需硬编码AccessKey ID和AccessKey Secret,代码如下,强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
// config := new(openapi.Config)
// config.SetAccessKeyId("<accessKeyId>").
// SetAccessKeySecret("<accessKeySecret>").
// SetRegionId("<regionId>").
// SetEndpoint("<endpoint>")
// iceClient, _err := ice.NewClient(config)
if _err != nil {
panic(_err)
}
// 提交转码任务。
jobName := "sdk_sample_snapshot_job"
inputType := "Media"
inputMedia := "3945e42d-1823498****"
outputType := "Media"
outputMedia := "3945e42d-1823498****"
templateId := "as8ee42d-1823498****"
request := &ice.SubmitTranscodeJobRequest{
Name: &jobName,
// 输入信息。
InputGroup: []*ice.SubmitTranscodeJobRequestInputGroup{&ice.SubmitTranscodeJobRequestInputGroup{
Type: &inputType,
Media: &inputMedia,
}},
// 输出信息。
OutputGroup: []*ice.SubmitTranscodeJobRequestOutputGroup{&ice.SubmitTranscodeJobRequestOutputGroup{
Output: &ice.SubmitTranscodeJobRequestOutputGroupOutput{
Type: &outputType,
Media: &outputMedia,
},
ProcessConfig: &ice.SubmitTranscodeJobRequestOutputGroupProcessConfig{
Transcode: &ice.SubmitTranscodeJobRequestOutputGroupProcessConfigTranscode{
TemplateId: &templateId,
},
},
}},
}
response, err := iceClient.SubmitTranscodeJob(request)
fmt.Println(response, err)
// 提取任务ID,查询转码任务信息。
jobId := response.Body.TranscodeParentJob.ParentJobId
queryRequest := &ice.GetTranscodeJobRequest{
ParentJobId: jobId,
}
queryResponse, err := iceClient.GetTranscodeJob(queryRequest)
fmt.Println(queryResponse, err)
}
相关接口
文档内容是否对您有帮助?