我有带有这些 gem 的 Rails 3.0.3:

  • 延迟作业 2.1.4
  • delay_paperclip 0.7.1
  • 回形针 2.3.16
  • 回形针-ffmpeg 0.7.0

  • (这种组合非常特殊。一些较新的 gem 不能与其他 gem 一起使用。)

    这是我的视频模型:
    class Video < Upload
      has_attached_file :file, :default_style => :view, :processors => [:ffmpeg],
        :url => '/system/:class/:attachment/:id/:style/:basename.:extension',
        :path => ':rails_root/public/system/:class/:attachment/:id/:style' \
          + '/:basename.:extension',
        :default_url => '/images/en/processing.png',
        :styles => {
          :mp4video => { :geometry => '520x390', :format => 'mp4',
            :convert_options => { :output => { :vcodec => 'libx264',
              :vpre => 'ipod640', :b => '250k', :bt => '50k',
              :acodec => 'libfaac', :ab => '56k', :ac => 2 } } },
          :oggvideo => { :geometry => '520x390', :format => 'ogg',
            :convert_options => { :output => { :vcodec => 'libtheora',
              :b => '250k', :bt => '50k', :acodec => 'libvorbis',
              :ab => '56k', :ac => 2 } } },
          :view => { :geometry => '520x390', :format => 'jpg', :time => 1 },
          :preview => { :geometry => '160x120', :format => 'jpg', :time => 1 }
        }
      validates_attachment_content_type :file, :content_type => VIDEOTYPES,
        :if => Proc.new { |upload| upload.file.file? }
      process_in_background :file
    end
    

    创建带有附件的新 Video 对象时,将保存原始对象,但不会进行任何转换。除了返回 Video.last.file.reprocess! 之外,即使调用 true 也不会。 (不确定在这种情况下“真实”是什么意思,因为它不起作用。)

    我尝试在 Paperclip::options[:command_path] 中硬编码到 ffmpeg 的路径。我什至尝试删除 paperclip-ffmpeg.rb 文件并将其替换为空白文件。真的以为我会通过稍后得到一个异常(exception),相反,我只是再次得到“真实”。

    感觉就像正在加载 paperclip-ffmpeg.rb 一样,因为 config/application.rb 需要它,但是在尝试生成缩略图或转换视频时没有调用它。

    谁能帮我这个?提前致谢!

    最佳答案

    看来我自己解决了这个问题,它是由我做的事情引起的。

    我编写了自己的脚本来将文件和数据库从较旧的应用程序导入到 Rails。文件已经就位,但有人我用错误的文件扩展名更新了数据库(在这种情况下,“.jpg”而不是“.MOV”)。

    Paperclip 将根据存储在数据库中的文件名,在调用任何处理器之前首先验证原始文件是否存在。事实并非如此,Paperclip 只是什么也没做。一旦我纠正了数据,一切都按预期运行。 (我在使用 FFMPEG 时遇到了问题,但这是一个不同的问题。)

    如果我浪费了任何人的时间,我深表歉意。希望这对某人有帮助。

    关于ruby-on-rails-3 - Rails 3 : How can I make Paperclip-FFMPEG work?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8045077/

    10-10 17:22