我正在尝试对某些视频进行转码,但我连接的方式出了问题。
这是我的代码:
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.'}
答案 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调用中(显然区分大小写)。