我想知道是否有人可以帮助我解决这个问题。
我需要帮助才能找到一种使回形针与弹性转码器一起工作的方法。
我需要能够使用回形针将上传的视频保存在 S3 Amazon 存储桶中,然后将上传的视频转码为 3 种不同的格式并将它们保存回同一个存储桶中。
问题是我可以一起完成吗?
我想知道是否有人可以帮助我解决这个问题。
我需要帮助才能找到一种使回形针与弹性转码器一起工作的方法。
我需要能够使用回形针将上传的视频保存在 S3 Amazon 存储桶中,然后将上传的视频转码为 3 种不同的格式并将它们保存回同一个存储桶中。
问题是我可以一起完成吗?
此问题已通过使用名为“elastic_transcoder”的 gem 解决
这是我使用的示例elastic_transcoder
首先获取要转码的视频的 url,不包括AWS domain name
and bucket name
。
url = self.paperclip_video.url.split('/').pop
url = url.drop(3).join('/')
你知道上面的代码会根据你得到的url而有所不同,你只需要我之前所说的路径,排除AWS domain name
and 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}"
这将完成这项工作,您可以对视频进行转码。