我想知道是否有人可以帮我解决这个问题。
我需要帮助才能找到一种使用弹性转码器制作回形针的方法。
我需要能够使用paperclip在S3 Amazon存储桶中保存上传的视频,然后将上传的视频转码为3种不同的格式并将其保存在同一个存储桶中。
问题是我可以一起完成所有工作吗?
答案 0 :(得分:1)
使用名为'elastic_transcoder'的宝石
解决了这个问题以下是使用elastic_transcoder
首先获取您要转码的视频的网址,不包括AWS domain name
和bucket name
。
url = self.paperclip_video.url.split('/').pop
url = url.drop(3).join('/')
您明白上述代码会因您获得的网址而异,您只需要我在排除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}"
这将完成工作,您可以将视频转码。