2

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

这是我的代码:

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.'}
4

2 回答 2

5

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

import boto.elastictranscoder
transcode = boto.elastictranscoder.connect_to_region('us-west-2')
transcode.create_job(...)
于 2013-07-30T20:07:59.490 回答
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 管理控制台的 Presets 下找到这些。最后,可以从以下链接逐字提取字典中可以填充的值 - 据我所知,它们只是插入到 REST 调用中(显然区分大小写)。

AWS 创建作业 API

于 2013-10-09T18:57:25.233 回答