其他

Amazon Elastic Transcoder

AWS Elastic Transcoder是一项云端媒体转码服务,可将音频和视频文件转换为适用于各种设备的分发格式,支持批量处理和自定义转码参数,帮助用户优化媒体文件以适应不同播放需求。

查看官方文档 ↗

接入教程

1. 登录AWS控制台并打开Elastic Transcoder服务
2. 创建转码管道并配置输入输出存储桶
3. 设置转码预设或自定义转码参数
4. 提交转码任务并监控处理进度
5. 在输出存储桶中获取转码后的媒体文件

使用Python创建转码作业

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
<?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读取作业详情

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日志获取详细错误信息,并验证输入文件、预设配置和权限设置。

相似接口推荐

AWS SSO Identity Store

AWS SSO Identity Store是AWS IAM Identity Center(原AWS单点登录)使用的身份存储服务,提供一个统一的位置检索所有身份信息(用户和群组)。该服务简化了身份管理流程,帮助集中管理

待确认
Amazon Honeycode

Amazon Honeycode是一项全托管服务,让您无需编程即可快速为团队构建移动和Web应用。可用于管理项目、客户、运营、审批、资源乃至团队协作等各类事务。

待确认
AWS Glue

AWS Glue 是一项完全托管的提取、转换和加载(ETL)服务,可简化数据准备和集成工作。它自动发现、编目数据,并支持在数据湖和数据仓库之间进行ETL操作。

待确认
亚马逊Glacier

亚马逊S3 Glacier(简称Glacier)是一款针对“冷数据”的存储解决方案。这项超低成本的存储服务为数据备份和归档提供安全、持久且易于使用的存储方案。用户可经济高效地存储数据数月、数年甚至数十年。

待确认