在rails中处理后如何更新回形针视频位置

Posted

技术标签:

【中文标题】在rails中处理后如何更新回形针视频位置【英文标题】:How to update paperclip video location after processing in rails 【发布时间】:2011-10-14 21:40:42 【问题描述】:

我正在使用 Paperclip 处理用户通过 ffmpeg 上传的视频。我想创建一个缩略图,并将视频转换为我选择的标准格式。我有 ffmpeg 处理工作,但是,我似乎无法弄清楚如何在完成处理后更新记录。我使用了许多 rails - paperclip - ffmpeg 参考,但没有看到任何人转换视频,然后在 rails db 中使用转换后的视频,因为它正在创建一个新视频,我需要能够更新记录在回形针处理器中,但是怎么做呢?

谢谢

使用 Rails 3 在 ffmpeg 中使用回形针处理器

【问题讨论】:

你能告诉我们你的处理器代码吗?您是否考虑过使用现有的 gem,例如 paperclip-ffmpeg? 【参考方案1】:

根据Paperclip::Processor 的文档:

只有一种方法必须实现才能正确地成为 [of Paperclip::Processor]:#make...

所有#make需要返回的是File的实例(Tempfile可以接受) 其中包含处理的结果。

所以你的处理器看起来像这样:

module Paperclip
  class MyProcessor
    # ...

    def make file, options = , attachment = nil
      in_filename = File.absolute_path file.path  # probably just a good idea

      out_filename = 'output_filename.mp4' # doesn't matter, maybe you use
                                           # Tempfile--just need to know
                                           # the path of ffmpeg's output file
      # run ffmpeg
      self.class.run 'ffmpeg',
        "-i #in_filename", /* more params..., */ out_filename

      File.open out_filename, 'r'  # then just return a File object pointing to
    end                            # the output file; Paperclip does the rest
  end
end

【讨论】:

以上是关于在rails中处理后如何更新回形针视频位置的主要内容,如果未能解决你的问题,请参考以下文章

Rails:使用 Jcrop 和回形针裁剪图像后出现重定向问题

Rails 4 - 使用自定义回形针附件处理器解析参数的顺序

如何将文件从 HTML5 拖放到 Rails 3 应用程序和回形针?

如何使用Paperclip在Rails 4中上传多个图像

Rails 回形针,多种不同类型(PDF、图像、文档...)

Rails 4 Paperclip with Devise,文件保存错误