【问题标题】:RoR: using paperclip for video upload and transcoder with elastic transcoderRoR:使用回形针进行视频上传和带有弹性转码器的转码器
【发布时间】:2013-11-25 22:00:15
【问题描述】:

我想知道是否有人可以帮助我解决这个问题。

我需要帮助才能找到一种使回形针与弹性转码器配合使用的方法。

我需要能够使用回形针将上传的视频保存在 S3 Amazon 存储桶中,然后将上传的视频转码为 3 种不同的格式并将它们保存回同一个存储桶中。

问题是我可以一起完成所有工作吗?

【问题讨论】:

  • 好吧,我将尝试用正确的英语进行编辑,如果我改变你问题的初衷,请纠正我

标签: ruby-on-rails amazon-web-services amazon-s3 amazon-elastic-transcoder


【解决方案1】:

已通过使用名为“elastic_transcoder”的 gem 解决了此问题

这是我使用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,不包括用户的扩展名,为transcoded video生成output url

    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 帐户上设置管道,此外,您需要在AWS account 上设置preset 以进行mp4 转换。

  • 通过传递您从AWS 获得的pipeline_id 来初始化您的pipline object

    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}"

这将完成这项工作,您可以将视频转码。

【讨论】:

  • 您能否详细说明如何将 elastic_transcoder gem 与回形针一起使用?处理器的代码 sn-p 可能吗?
  • @MoMolog 抱歉回复晚了,我已经更新了答案。希望我现在的回答更好,对您或任何人都有帮助。
猜你喜欢
  • 2015-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多