您如何连接到AWS Elastic Transcoder?

时间:2013-07-30 17:07:02

标签: python amazon-web-services boto transcoding

我正在尝试对某些视频进行转码,但我连接的方式出了问题。

这是我的代码:

transcode = layer1.ElasticTranscoderConnection()
transcode.DefaultRegionEndpoint = 'elastictranscoder.us-west-2.amazonaws.com'
transcode.DefaultRegionName = 'us-west-2'
transcode.create_job(pipelineId, transInput, transOutput)

以下是例外:

{u'message': u'The specified pipeline was not found: account=xxxxxx, pipelineId=xxxxxx.'}

2 个答案:

答案 0 :(得分:5)

要连接到boto中的特定区域,您可以使用:

import boto.elastictranscoder
transcode = boto.elastictranscoder.connect_to_region('us-west-2')
transcode.create_job(...)

答案 1 :(得分:4)

前几天我刚刚开始使用boto,但之前的回答对我不起作用 - 不知道API是否发生变化或者是什么(如果确实如此,那似乎有点奇怪,但无论如何)。这就是我做到的。

#!/usr/bin/env python

# Boto
import boto

# Debug
boto.set_stream_logger('boto')

# Pipeline Id
pipeline_id = 'lotsofcharacters-393824'

# The input object
input_object = {
    'Key': 'foo.webm',
    'Container': 'webm',
    'AspectRatio': 'auto',
    'FrameRate': 'auto',
    'Resolution': 'auto',
    'Interlaced': 'auto'
}

# The object (or objects) that will be created by the transcoding job;
# note that this is a list of dictionaries.
output_objects = [
    {
        'Key': 'bar.mp4',
        'PresetId': '1351620000001-000010',
        'Rotate': 'auto',
        'ThumbnailPattern': '',
    }
]

# Phone home
# - Har har.
et = boto.connect_elastictranscoder()

# Create the job
# - If successful, this will execute immediately.
et.create_job(pipeline_id, input_name=input_object, outputs=output_objects)

显然,这是一个人为的例子,只是从一个独立的python脚本运行;它假定你的某个凭据中有.boto文件。

需要注意的另一件事是PresetId;您可以在预设下的Elastic Transcoder的AWS管理控制台中找到这些内容。最后,可以在字典中填充的值从以下链接逐字提升 - 据我所知,它们只是插入到REST调用中(显然区分大小写)。

AWS Create Job API