加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – Rails 3:如何使Paperclip-FFMPEG正常工作?

发布时间:2020-12-17 02:16:21 所属栏目:百科 来源:网络整理
导读:我有这些宝石的Rails 3.0.3: delayed_job 2.1.4 delayed_pa??perclip 0.7.1 回形针2.3.16 paperclip-ffmpeg 0.7.0 (这种组合非常具体.一些较新的宝石不会与其他宝石一起使用.) 这是我的视频模型: class Video Upload has_attached_file :file,:default_sty
我有这些宝石的Rails 3.0.3:

> delayed_job 2.1.4
> delayed_pa??perclip 0.7.1
>回形针2.3.16
> paperclip-ffmpeg 0.7.0

(这种组合非常具体.一些较新的宝石不会与其他宝石一起使用.)

这是我的视频模型:

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',:acodec => 'libvorbis',:view => { :geometry => '520x390',:format => 'jpg',:time => 1 },:preview => { :geometry => '160x120',: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!除了返回真实之外,不会做任何事情. (在这种情况下,不确定“真实”是什么意思,因为它不起作用.)

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

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

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

解决方法

看起来我自己解决了这个问题,这是我做的事情造成的.

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

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

如果我浪费了任何人的时间,我道歉.希望这对某人有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读