2

使用Ruby SDK的版本1.22.1我無法設置Elastic Transcoder轉碼的視頻輸出的持續時間。根據文檔,它看起來像輸出哈希需要一個合成數組/散列,其中包含一個帶有持續時間的time_span散列。在我的情況下,我試圖將其限制爲10秒。無法使用Elastic Transcoder Ruby SDK設置輸出持續時間

代碼示例:

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的初始化和組合片段。

回答

2

commit history看來,只有:composition僅在SDK的v1.25.0版本中添加。在網站上發佈的文檔只反映了最新版本的SDK。如果你更新到最新版本,你應該可以使用這個參數。不過要注意的是記錄作爲陣列哈希,所以你必須要包裝你的組成結構,散列的數組:

composition: [{time_span: {duration: '...'}}]

+0

感謝您看這個。不幸的是,即使是1.29.0(和1.25.0),我也遇到了同樣的錯誤,即構圖是一個意想不到的選擇。 –

+0

你確定你使用的是1.29.0嗎?我在今天之前嘗試過,確保它對我有用。這可能是Bundler版本鎖定問題嗎?什麼是「AWS :: VERSION」? –

+0

1.29.1。我重新啓動了Passenger和Apache,似乎無法通過這個錯誤。我更新了原始文章中的代碼以包含初始化以查看是否有任何內容。 –

相關問題