接入教程
1. 登录AWS控制台并打开Elastic Transcoder服务
2. 创建转码管道并配置输入输出存储桶
3. 设置转码预设或自定义转码参数
4. 提交转码任务并监控处理进度
5. 在输出存储桶中获取转码后的媒体文件
使用Python创建转码作业
import boto3
# 初始化客户端
client = boto3.client(
'elastictranscoder',
region_name='us-east-1',
aws_access_key_id='YOUR_API_KEY',
aws_secret_access_key='YOUR_API_SECRET'
)
# 创建转码作业
response = client.create_job(
PipelineId='your-pipeline-id',
Input={'Key': 'input/video.mp4'},
Outputs=[
{
'Key': 'output/video_480p.mp4',
'PresetId': '1351620000001-000020',
'ThumbnailPattern': 'thumbnails/{count}',
},
],
OutputKeyPrefix='output/'
)
print(f"Job created: {response['Job']['Id']}")
使用PHP列出转码作业
<?php
require 'vendor/autoload.php';
use Aws\ElasticTranscoder\ElasticTranscoderClient;
use Aws\Exception\AwsException;
// 创建客户端
$client = new ElasticTranscoderClient([
'region' => 'us-east-1',
'version' => 'latest',
'credentials' => [
'key' => 'YOUR_API_KEY',
'secret' => 'YOUR_API_SECRET',
],
]);
// 列出作业
try {
$result = $client->listJobsByPipeline([
'PipelineId' => 'your-pipeline-id',
]);
foreach ($result['Jobs'] as $job) {
echo "Job ID: " . $job['Id'] . "\n";
echo "Status: " . $job['Status'] . "\n\n";
}
} catch (AwsException $e) {
echo "Error: " . $e->getMessage() . "\n";
}
?>
使用JavaScript读取作业详情
const AWS = require('aws-sdk');
// 配置AWS
AWS.config.update({
region: 'us-east-1',
accessKeyId: 'YOUR_API_KEY',
secretAccessKey: 'YOUR_API_SECRET'
});
const elastictranscoder = new AWS.ElasticTranscoder();
// 读取作业详情
const params = {
Id: 'your-job-id'
};
elastictranscoder.readJob(params, function(err, data) {
if (err) {
console.log("Error:", err);
} else {
console.log("Job Details:", JSON.stringify(data.Job, null, 2));
console.log("\nJob Status:", data.Job.Status);
console.log("Output Key:", data.Job.Output?.Key);
}
});
常见问题
什么是转码预设(Preset)?如何在作业中使用?
转码预设是一组预定义的转码参数配置,包含视频编码格式、分辨率、比特率、音频设置等。AWS Elastic Transcoder提供多种系统预设(如'H.264 480p 4:3'),也支持创建自定义预设。在创建转码作业时,通过PresetId指定要使用的预设ID,系统将按照预设参数执行转码操作。
如何设置输出文件的存储位置?
输出文件位置通过OutputKeyPrefix和Outputs中的Key参数组合确定。OutputKeyPrefix设置输出路径的前缀目录(如'processed/'),Outputs中每个输出对象的Key指定文件名或相对路径。例如:OutputKeyPrefix='videos/output/',Outputs中Key='video_720p.mp4',则最终输出路径为's3://bucket/videos/output/video_720p.mp4'。
转码作业失败的可能原因有哪些?
转码作业失败的常见原因包括:1) 输入文件格式不受支持或文件损坏;2) 预设参数与输入文件不兼容;3) 输出S3存储桶权限不足或存储空间已满;4) 管道(Pipeline)配置错误或未启用;5) 账户配额限制或服务限制。建议检查CloudWatch日志获取详细错误信息,并验证输入文件、预设配置和权限设置。
Aitishiku.com