我想知道是否有人可以幫我解決這個問題。RoR:使用回形針進行視頻上傳,並使用彈性代碼轉換器代碼轉換器
我需要幫助來找到一種方法使回形針與彈性代碼轉換器一起工作。
我需要能夠使用回形針將上傳的視頻保存在S3 Amazon存儲桶中,然後將上傳的視頻轉碼爲3種不同的格式並將它們保存回同一存儲桶中。
問題是我可以一起完成所有工作嗎?
我想知道是否有人可以幫我解決這個問題。RoR:使用回形針進行視頻上傳,並使用彈性代碼轉換器代碼轉換器
我需要幫助來找到一種方法使回形針與彈性代碼轉換器一起工作。
我需要能夠使用回形針將上傳的視頻保存在S3 Amazon存儲桶中,然後將上傳的視頻轉碼爲3種不同的格式並將它們保存回同一存儲桶中。
問題是我可以一起完成所有工作嗎?
此問題已通過使用一個名爲「elastic_transcoder」
這裏的寶石解決的問題是什麼,我已經使用elastic_transcoder
首先得到你想要轉碼的視頻的URL來完成的樣本不包括AWS domain name
和bucket name
。
url = self.paperclip_video.url.split('/').pop
url = url.drop(3).join('/')
你得到了上面的代碼取決於該URL的想法你得到你只需要爲我排除了AWS domain name
和bucket name
之前所說的路徑。
然後獲取路徑原始視頻
input_url = url + '/' + self.paperclip_video_file_name
然後拿到filename
排除擴展到用戶生成output url
爲transcoded 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}"
這將做的工作,你可以得到的視頻轉碼。
請問你能否詳細說明如何在paperclip中使用elastic_transcoder gem?處理器的代碼片段可能是? – MoMolog
@MoMolog抱歉,我已經更新了答案。希望我現在的答案更好,並會幫助你或任何人。 –
那麼我會試着用適當的英文編輯這個,所以如果我改變你的問題的初衷 –