2

我想知道是否有人可以幫我解決這個問題。RoR:使用回形針進行視頻上傳,並使用彈性代碼轉換器代碼轉換器

我需要幫助來找到一種方法使回形針與彈性代碼轉換器一起工作。

我需要能夠使用回形針將上傳的視頻保存在S3 Amazon存儲桶中,然後將上傳的視頻轉碼爲3種不同的格式並將它們保存回同一存儲桶中。

問題是我可以一起完成所有工作嗎?

+1

那麼我會試着用適當的英文編輯這個,所以如果我改變你的問題的初衷 –

回答

1

此問題已通過使用一個名爲「elastic_transcoder」

這裏的寶石解決的問題是什麼,我已經使用elastic_transcoder

  • 首先得到你想要轉碼的視頻的URL來完成的樣本不包括AWS domain namebucket name

    url = self.paperclip_video.url.split('/').pop
    url = url.drop(3).join('/')

    你得到了上面的代碼取決於該URL的想法你得到你只需要爲我排除了AWS domain namebucket name之前所說的路徑。

  • 然後獲取路徑原始視頻
    input_url = url + '/' + self.paperclip_video_file_name

  • 然後拿到filename排除擴展到用戶生成output urltranscoded video

    file_name = File.basename(self.paperclip_video_file_name, File.extname(self.paperclip_video_file_name))

  • 然後創建輸出路徑

    output_url = url + '/mp4_' + file_name + '.mp4'

    爲了簡單起見,我轉碼一種爲mp4

  • 創建一個新的elastic transcoding pipline

    pipeline = ElasticTranscoder::Pipeline.new

    請注意,您需要先設置管線你AWS帳戶而且您需要將preset設置爲mp4轉換爲您的AWS account

  • 初始化您pipline object通過傳送pipeline_id你從AWS

    pipeline_front.pipeline '***************'

  • 獲得創建一個新的Jobs對象傳給你的轉碼任務,以

    jobs = ElasticTranscoder::Jobs.new

  • 創造新Job

    jobs.create_job input_url, output_url, "**your pipeline_id**", "your preset_id", "#{url}/web_thumbnail-{count}"

這將做的工作,你可以得到的視頻轉碼。

+0

請問你能否詳細說明如何在paperclip中使用elastic_transcoder gem?處理器的代碼片段可能是? – MoMolog

+0

@MoMolog抱歉,我已經更新了答案。希望我現在的答案更好,並會幫助你或任何人。 –