Rails视频上传

时间:2014-01-31 23:00:53

标签: ruby-on-rails paperclip

我一直在寻找有关rails和视频的不同上传选项,Paperclip看起来相当不错,但是有没有其他人会推荐,它应该有很好的教程和文档因为我找不到任何好的回形针涉及上传视频内容的文档。

2 个答案:

答案 0 :(得分:18)

我们让Paperclip暂时处理视频


<强>系统

无论您使用CarrierWave还是Paperclip(Rails的两个主要“附件”处理程序),您都会有同样的歧义

任何上传系统只处理您的PC,Rails应用程序和放大器之间的文件数据传输。你的数据库。他们每个人(根据我的理解)。 E.G Paperclip只会从您的文件中创建一个ActiveRecord对象,并将数据保存到您服务器的public dir&amp;在db中创建一条记录


<强>代码

视频问题是使用正确的处理器,而不是正确的上传者:

#app/models/attachment.rb
has_attached_file :attachment,
    styles: lambda { |a| a.instance.is_image? ? {:small => "x200>", :medium => "x300>", :large => "x400>"}  : {:thumb => { :geometry => "100x100#", :format => 'jpg', :time => 10}, :medium => { :geometry => "300x300#", :format => 'jpg', :time => 10}}},
    processors: lambda { |a| a.is_video? ? [ :ffmpeg ] : [ :thumbnail ] }

<强>附加

您需要使用视频处理器,例如ffmpeg for Paperclip

#GemFile
gem "paperclip-ffmpeg", "~> 1.0.1"

您的系统上可能需要install ffmpeg才能让处理器在本地工作(Heroku有ffmpeg)。这样您就可以使用video_tag helper

<%= video_tag(@model.attachment.url) %>

有一个关于using ffmpeg with Paperclip here的好教程 并another tutorial here

答案 1 :(得分:0)

使用rails Carrierwave和Paperclip是最好的附件处理程序。现在 对于各种文件上传,如图像,视频,其他原始文件等,您可以使用 Cloudinary 与carrierwave。看到这个 http://cloudinary.com/documentation/rails_carrierwave