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抱歉,我已经更新了答案。希望我现在的答案更好,并会帮助你或任何人。 –