我想知道是否有人可以帮我解决这个问题。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抱歉,我已经更新了答案。希望我现在的答案更好,并会帮助你或任何人。 –
那么我会试着用适当的英文编辑这个,所以如果我改变你的问题的初衷 –