无法使用Elastic Transcoder Ruby SDK设置输出持续时间

时间:2013-12-11 15:22:06

标签: ruby-on-rails ruby amazon-web-services amazon-elastic-transcoder

使用Ruby SDK的1.22.1版本我无法在Elastic Transcoder转码的视频输出上设置持续时间。基于文档,看起来输出哈希需要一个包含持续时间的time_span哈希的组合数组/哈希。在我的情况下,我试图将其限制为10秒。

代码示例:

transcoder = AWS::ElasticTranscoder::Client.new(
      access_key_id: ENV['S3_ACCESS_KEY_ID'],
      secret_access_key: ENV['S3_SECRET_ACCESS_KEY'],
      region: ENV['AET_REGION']
    )

    transcoder.create_job(
      pipeline_id: ENV['AET_PIPELINE_ID'],
      input: {
        key: "#{video.s3_key}",
        frame_rate: 'auto',
        resolution: 'auto',
        aspect_ratio: 'auto',
        interlaced: 'auto',
        container: 'auto'
      },
      output: {
        key: "#{video.s3_key}/web.mp4",
        preset_id: '1351620000001-100070', # System preset: Web
        composition: [
          {
            time_span: {
              duration: '00:00:10.000'
            }
          }
        ]
      }
    )

这是我得到的错误:

unexpected option :composition

以下是转码器上Ruby SDK文档的链接: http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/ElasticTranscoder/Client.html#create_job-instance_method

以下是常规的AWS Elastic Transcoder文档: http://docs.aws.amazon.com/elastictranscoder/latest/developerguide/create-job.html

我希望这是一个语法错误,并且不仅仅是在SDK之外。

编辑:更新了代码以包含Loren的初始化和合成片段。

1 个答案:

答案 0 :(得分:2)

commit history开始,:composition似乎只在SDK的v1.25.0中添加了 composition: [{time_span: {duration: '...'}}] 。网站上发布的文档仅反映了SDK的最新版本。如果您更新到最新版本,则应该能够使用此参数。但请注意,它被记录为哈希的数组,因此您必须将组合结构包装在哈希数组中:

{{1}}